Investigacion
SELECTIVIDAD 2003 MATEMÁTICAS APLICADAS A LAS CC.SS.
Tema : PROGRAMACIÓN LINEAL
Prof. M.Díaz-Pinés Preparación de las Pruebas de Acceso ( P. A. U.)
PROGRAMACIÓN LINEAL PROBLEMA DE LA DIETA Problema nº 4 " Se necesita una dieta que proporcione a un animal 3000 calorías y 80 unidades de proteínas por día. En el mercado hay dos alimentos básicos que pueden usarse parapreparar la dieta. El alimento I cuesta 20 Pta / kg, contiene 600 calorías y 2 unidades de proteínas. El alimento II cuesta 10 Pta / kg, contiene 50 calorías y 8 unidades de proteínas. Determina la combinación de alimentos más barata que satisfaga las necesidades de la dieta " ( PAU , Burgos ) NB / Vamos a denominar A y B a los "alimentos " denominados I y II en el enunciado P )Planteamiento p0 ) Se estudia el conjunto en que operaremos p1 ) Desigamos por x la cantidad del alimento I y por y la del alimento II p2 ) Hacemos la Tabla o matriz siguiente :
> matrix(4,5,[Alimento, Kg , Cal , Prot, Importe,A,x,cal[A],prot[A],Coste[A],B, y, cal[B],prot[B],Coste[B],Totales, Kg, Cal,Prot,Importe]);
Alimento A B Totales
Kg x y Kg
Cal calA calB Cal
ProtprotA protB Prot
Importe CosteA CosteB Importe
p3 ) Se detereminan las restricciones, tendiendo en cuenta las limitaciones o topes que implica la dieta p4 ) Se forma la función objetivo que aquí será de coste p6 ) Se aplica el tratamiento matemático propio de la Programació Lineal R ) RESOLUCIÓN
> matrix(4,5,[Alimento, Kg , Cal , Prot, Importe,A,x,600*x,2*x,20*x,B, y,50*y,8*y,10*y,Totales, x+y, 600*x+50*y,2*x+8*y,20*x+10*y]);
Alimento A B Totales
Kg x y x+y
Cal 600 x 50 y 600 x + 50 y
Prot 2x 8y 2x+8y
Importe 20 x 10 y 20 x + 10 y
p0 ) El conjunto numérico en que hemos de operar puede ser no está claro en el enunciado, pues podemos operar con número de Kg, o fracciones de Kg, incluso gramos. Para evitardificultades, consideremos que operamos en ℜ , con números reales, y por tanto con decimales Determinación de las restricciones El cuadro o matriz de datos anterior nos permite fijarlas, ateniéndonos a las condiciones del enunciado : r1 ) Las calorías han de ser al menos 3000 : 3000 ≤ 600 x + 50 y r2 ) Las proteínas han de ser, al menos, 80 : 80 ≤ 2 x + 8 y
r3 ) y r4 ) De modo implícito,nos dicen que las cantidades de uno y otro alimento no pueden ser negativas : 0≤x 0≤y Determinación de la función objetivo ( coste ) Para esos Kg y con los precios dados : f( x, y ) = 20 x + 10 y Ya tenemos el Problema en forma matemática : Hallar el mínimo de la función f( x, y ) = 20 x + 10 y con las restricciones : r1 ) 3000 ≤ 600 x + 50 y r2 ) 80 ≤ 2 x + 8 y r3 ) 0 ≤ x r4 ) 0 ≤ yResolución del problema de Programación Lineal Podemos sustituir las restricciones por otras equivalentes : r1 ) 60 ≤ 12 x + y r2 ) 40 ≤ x + 4 y Las restricciones dan como fronteras las rectas : y = 60 − 12 x , y = 10 − El vector gradiente es w = [ 20, 10 ]
> restart:with(plots): > c1:=(j,r)->plot({seq([h,t,t=j..r],h=j..r)},color=cyan): >c2:=(j,r)->plot({seq([t,h,t=j..r],h=j..r)},color=cyan): > cu:=(j,r)->plots[display]({c1(j,r),c2(j,r)}): > g1:=plottools[arrow]([0,0],[20,10],0.02,0.1,0.08,color=green): > g2:=plot({60-12*x,10-x/4},x=-10..60,y=-10..60,scaling=constrained,color=blue): > plots[display]({g1,g2},axes=normal);
x 4
,
60 50 40 y 30 20 10
-10
0 -10
10
20
30 x
40
50
60
y = 8 − x, y = 4 − x, y = 3 − Región factible Hay que añadir lasrestricciones 0 ≤ x , 0 ≤ y
> r[1]:=60=0; > inequal({r[1],r[2],r[3],r[4]},x=-10..80,y=-10..100,optionsfeasible=(color=yellow),optionsexcluded=(color=none),scaling=constrained);
1 2
x
r1 := 60 ≤ 12 x + y r2 := 40 ≤ x + 4 y r3 := 0 ≤ x r4 := 0 ≤ y
100
80
60
40
20
0
20
40
60
80
La restricción r1 es superflua porque está incluída en r2
>...
Regístrate para leer el documento completo.