Está en la página 1de 1

Programación Lineal

21. Un nutricionista informa a un individuo que, en cualquier tratamiento que siga, no debe ingerir diariamente más de
240 mg de hierro ni más de 200 mg de vitamina B. Para ello están disponibles píldoras de dos marcas, P y Q. Cada
píldora de la marca P contiene 40 mg de hierro y 10 mg de vitamina B, y cuesta 6 céntimos de euro; cada píldora de la
marca Q contiene 10 mg de hierro y 20 mg de vitamina B, y cuesta 8 céntimos de euro. Entre los distintos tratamientos,
¿cuál sería el de máximo coste diario?
Marca P Marca Q Limite
Hierro 40 10 240
Vitamina B 10 20 200
Costo 0.06 0.08
Ecuación objetivo:

𝐹(𝑥, 𝑦) = 0.06𝑃 + 0.08𝑄


Restricciones:

40𝑃 + 10𝑄 ≤ 240


10𝑃 + 20𝑄 ≤ 200
𝑥≥0
𝑦≥0
import pulp as pl #importa la librería de programación lineal

#obtener el beneficio máximo


problema = pl.LpProblem("Beneficio_máximo",pl.LpMaximize)

#variables
P = pl.LpVariable('P',0,cat="Integer")#crea la variable 0<=P, int
Q = pl.LpVariable('Q',0,cat="Integer")#crea la variable 0<=Q, int

#restricciones
r1 = 40*P + 10*Q <= 240 #dosis maxima de hierro
r2 = 10*P + 20*Q <= 200 #dosis maxima de vitamina B

#se añaden las restricciones al problema


problema += r1
problema += r2

#ecuacion objetivo
a = 0.06 #coeficiente de P
b = 0.08 #coeficiente de Q
c = 0 #coeficiente independiente

#se añade la ecuacion objetivo al problema


problema += a*P + b*Q + c

#resolver
problema.solve()

#la ecuacion objetivo evaluada en el punto obtenido


beneficio = a*P.varValue + b*Q.varValue +c

#mostrar resultado
print(f"Costo máximo = {beneficio} euros al dia, comprando:\n"
f"{int(P.varValue)} pildoras P\n"
f"{int(Q.varValue)} pildoras Q")

También podría gustarte