Está en la página 1de 22

Juan Antonio Roldn Daz Ral Snchez Navarro

Muchos problemas de administracin y economa estn relacionados con la optimizacin de una funcin sujeta a un sistema de igualdades o desigualdades. La funcin por optimizar es la funcin objetivo. El sistema de igualdades o desigualdades a las que est sujeta la funcin objetivo reflejan las restricciones impuestas a la solucin (o soluciones) del problema. Los problemas de esta naturaleza se llaman problemas de programacin matemtica. En particular, aquellos donde la funcin objetivo y las restricciones se expresan como ecuaciones o desigualdades lineales se llaman problemas de programacin lineal.

Un problema de programacin lineal consta de una funcin objetivo lineal por maximizar o minimizar, sujeta a ciertas restricciones en la forma de igualdades o desigualdades lineales.

Dibujar un sistema de coordenadas cartesianas en que las variables de decisin estn representadas por los ejes.
Dibujar en el sistema coordenado las restricciones del problema. Para ello notar que si una restriccin es una desigualdad, define una regin limitada por la lnea recta o plano que se obtiene al considerar la restriccin como una igualdad. Si la restriccin es una igualdad, se dibuja como una lnea recta o un plano. La interseccin de todas las regiones determina la regin factible. Determinar los puntos extremos del espacio de soluciones y evaluar la funcin objetivo en esos puntos.

Regin factible: Conjunto de todas las soluciones factibles de un problema de Programacin Lineal. Se nota = : , 0 o bien = : , 0 Punto extremo: Sean un conjunto convexo y un punto del mismo . Diremos que es un punto extremo cuando se pueda expresar como combinacin lineal de dos puntos, o tambin cuando no exista un segmento rectilneo contenido estrictamente en ; es decir, si: 1 2 : x = 1 + 1 2 0,1 es un punto extremo de

max = 21 + 2 1 + 2 2 1 , 2 0

El proceso para resolverlo grficamente es el siguiente:


Comprobar la linealidad de la funcin objetivo. Definir el conjunto de oportunidades. Calcular el vector gradiente de la funcin objetivo. Representar la curva de nivel. Desplazar la curva de nivel paralelamente en la direccin del gradiente. El ltimo punto de la solucin que choque con la recta ser la solucin ptima. El ptimo satura al menos dos restricciones.

El conjunto de oportunidades de un problema es el conjunto formado por todas sus soluciones factibles. Si un problema no tiene restricciones entonces todas las soluciones son factibles, por lo que el conjunto de oportunidades es = . El gradiente de un campo escalar es un campo vectorial. El vector gradiente de evaluado en un punto genrico del dominio de , () indica la direccin en la cual el campo vara ms rpidamente y su mdulo representa el ritmo de variacin de en la direccin de dicho vector gradiente. Dado : se llama curva de nivel de la funcin al subconjunto . La curva de nivel k de f es el conjunto de puntos del espacio en los que f toma el valor constante k. El conjunto formado por las distintas curvas de nivel de f obtenidas al variar k se llama mapa de curvas de nivel de la funcin. Una solucin ptima es una solucin factible que proporciona el mejor valor para la funcin objetivo, entendiendo por mejor el mximo si se est maximizando, o el mnimo si se est minimizando.

max = 21 + 2 1 + 2 2 1 , 2 0

Resolucin grfica de un problema de programacin lineal utilizando el programa Mathematica.

El proceso para resolverlo grficamente es el siguiente:


Comprobar la linealidad de la funcin objetivo. Definir el conjunto de oportunidades. Calcular el vector gradiente de la funcin objetivo. Representar la curva de nivel. Desplazar la curva de nivel paralelamente en la direccin del gradiente. El ltimo punto de la solucin que choque con la recta ser la solucin ptima. El ptimo satura al menos dos restricciones.

Definimos el conjunto de oportunidades como una lista de inecuaciones: 1 + 2 2 1 , 2 0 restrinciones={x0,y0,x+y2};

Las dibujamos mediante la funcin RegionPlot[ ]:


RegionPlot[restrinciones, {x,-(7/5),21/5},{y,-(7/5),21/5}]

Resolvemos la regin factible mediante la funcin Reduce[ ]: RFact=Reduce[restrinciones, {x,y},Reals];


Dibujamos en color amarillo la regin factible con la funcin RegionPlot[ ]:

RFactible=RegionPlot[RFact, {x,-(7/5),21/5},{y,-(7/5),21/5}, PlotStyle->Yellow]

Unimos los dos grficos mediante la funcin Show[ ]:


Show[Inecuaciones,RFactible]

Definimos la funcin objetivo: fobjetivo=2*x+y;


4

Definimos el vector gradiente. Para ello usamos la funcin D[ ] para hacer las derivadas parciales: vgradiente={D[fobjetivo,x], D[fobjetivo,y]}; Para dibujar la direccin del vector usamos la funcin VectorPlot[ ]: VGradiente=VectorPlot[vgradiente,{x,(7/5),21/5},{y,-(7/5),21/5}, VectorPoints> {3,3}, VectorScale ->Medium, VectorStyle>RGBColor[1,0,0]]

Unimos los grficos mediante la funcin Show[ ]:


Show[Inecuaciones, RFactible,VGradiente]

n = Length[restrinciones]; np = (n^2 - n)/2; puntos = Range[np]; restig = Table[ restrinciones[[i, 1]] == restrinciones[[i, 2]], {i, 1, n}]; k = 1; For[i = 1, i <= n - 1, i++, For[j = i + 1, j <= n, j++, puntos[[k]] = Solve[{restig[[i]], restig[[j]]}, {x, y}][[1]]; k = k + 1]]; PRFact = {}; For[k = 1, k <= np, k++, If[Table[Sum[(restrinciones /. puntos)[[i]][[j]], {j, 1, n}] == n True, {i, 1, np}][[k]] == True, PRFact = Insert[PRFact, puntos[[k]], 1]]];

Dibujamos los puntos extremos mediante la funcin ListPlot[ ]: PExtremos=ListPlot[{x,y}/.PRFact,PlotSty le-> {RGBColor[0,1,0], PointSize[0.015]}]

evalp=fobjetivo/.PRFact; VOpt=Max[evalp];

Opt={}; For[i=1,iLength[PRFact],i++,If[evalp[[i] ]VOpt,Opt=Insert[Opt,PRFact[[i]],1]]];

Print["Valor ptimo: ",VOpt];


Print["Puntos en los que se alcanza el ptimo: ",Opt]; POpt=ListPlot[{x,y}/.Opt,PlotStyle {RGBColor[1,0,0],PointSize[0.02]}]

Unimos todos los grficos anteriores:

Show[Inecuaciones,RFactible, VGradiente,PExtremos,POpt]

Dibujamos la curva de nivel con la funcin Plot[ ], como la solucin de la ecuacin que forma la funcin objetivo igualada a la solucin ptima del problema:
CurvaNivel = Plot[y /. Solve[fobjetivo == VOpt, y], {x, vista[[1]], vista[[3]]}, PlotStyle -> RGBColor[1, 0, 0]]
1

1 2

Unimos los grficos nuevamente: Show[Inecuaciones,RFactible, VGradiente,PExtremos, POpt,CurvaNivel]