TRUJILLO-PERU
INTRODUCCIÓN A LA
PROGRAMACIÓN LINEAL
La Programación Lineal es un procedimiento o algoritmo matemático mediante el cual se resuelve un problema indeterminado, formulado a través de ecuaciones lineales, optimizando la función objetivo, también lineal. Consiste en optimizar (minimizar o maximizar) una función lineal, que denominaremos función objetivo, de tal forma que las variables de dicha función estén sujetas a una serie de restricciones que expresamos mediante un sistema de inecuaciones lineales.
Historia de la programación lineal.
El problema de la resolución de un sistema lineal de inecuaciones se remonta, al menos, a Fourier, después de quien nace el método de eliminación de Fourier - Motzkin. La programación lineal se plantea como un modelo matemático desarrollado durante la Segunda Guerra Mundial para planificar los gastos y los retornos, a fin de reducir los costos al ejército y aumentar las pérdidas del enemigo. Se mantuvo en secreto hasta 1947. En la posguerra, muchas industrias lo usaron en su planificación diaria.
Los fundadores de la técnica son George Dantzig, quien publicó el algoritmo simplex, en 1947, John von Neumann, que desarrolló la teoría de la dualidad en el mismo año, y LeonidKantoróvich, un matemático ruso, que utiliza técnicas similares en la economía antes de Dantzig y ganó el premio Nobel en economía en 1975. En 1979, otro matemático ruso, LeonidKhachiyan, demostró que el problema de la programación lineal era resoluble en tiempo polinomial. Más tarde, en 1984, NarendraKarmarkar introduce un nuevo método del punto interior para resolver problemas de programación lineal, lo que constituiría un enorme avance en los principios teóricos y prácticos en el área.
El ejemplo original de Dantzig de la búsqueda de la mejor asignación de 70 personas a 70 puestos de trabajo es un ejemplo de la utilidad de la programación lineal. La potencia de computación necesaria para examinar todas las permutaciones a fin de seleccionar la mejor asignación es inmensa; el número de posibles configuraciones excede al número de partículas en el universo. Sin embargo, toma sólo un momento encontrar la solución óptima mediante el planteamiento del problema como una programación lineal y la aplicación del algoritmo simplex. La teoría de la programación lineal reduce drásticamente el número de posibles soluciones óptimas que deberán ser revisadas.
La programación lineal constituye un importante campo de la optimización por varias razones, muchos problemas prácticos de la investigación de operaciones pueden plantearse como problemas de programación lineal. Algunos casos especiales de programación lineal, tales como los problemas de flujo de redes y problemas de flujo de mercancías se consideraron en el desarrollo de las matemáticas lo suficientemente importantes como para generar por si mismos mucha investigación sobre algoritmos especializados en su solución. Una serie de algoritmos diseñados para resolver otros tipos de problemas de optimización constituyen casos particulares de la más amplia técnica de la programación lineal. Históricamente, las ideas de programación lineal han inspirado muchos de los conceptos centrales de la teoría de optimización tales como la dualidad, la descomposición y la importancia de la convexidad y sus generalizaciones. Del mismo modo, la programación lineal es muy usada en la microeconomía y la administración de empresas, ya sea para aumentar al máximo los ingresos o reducir al mínimo los costos de un sistema de producción. Algunos ejemplos son la mezcla de alimentos, la gestión de inventarios, la cartera y la gestión de las finanzas, la asignación de recursos humanos y recursos de máquinas, la planificación de campañas de publicidad, etc.
Los problemas de programación lineal del mundo real pueden tener cientos y aun miles de variables. Sin embargo, inicialmente estudiaremos el caso de Programación Lineal con 2 variables.
Observaciones:
1. Todo problema de programación lineal trata de la maximización y minimización de una función lineal en el conjunto solución de un sistema formado por desigualdades lineales.
2. Cualquier desigualdad de la forma ax + by< c tiene como conjunto solución un semiplano formado por la recta ax + by = c; junto con la parte del plano que está a un lado de la recta. Dado cualquier sistema de desigualdades lineales con x e y, se desea hallar todos los puntos (x, y) para los cuales todos las desigualdades se cumplen simultáneamente.
Definición:
El conjunto solución de un sistema de desigualdades lineales consiste en una intersección de estos semiplanos.
Ejemplo :
Sea el sistema de desigualdades lineales 2x + 3y > 6 (I)
2x + y > 2 (II) x - y < 3 (III)
Observación:
El conjunto solución no vacío de un sistema de desigualdades lineales está acotado por rectas o segmentos de rectas y que todas sus esquinas apuntan hacia fuera. Dichos conjuntos se llaman conjuntos poligonales convexos.
Definición:
Un subconjunto del plano es convexo si para cada par de puntos P y Q del conjunto el segmento de recta que los une también está en el conjunto
TEOREMA: Cualquier intersección no vacía de semiplanos es un conjunto convexo.
MAXIMIZAR Y MINIMIZAR ax +by EN UNA INTERSECCION DE SEMIPLANOS
Se considera el problema de programación lineal de maximizar o minimizar una función lineal ax + by en el conjunto solución de un sistema de desigualdades lineales. Las desigualdades se llaman restricciones y la función ax +by es la función objetivo.
Teniendo en cuenta las aplicaciones económicas a la función objetivo se le llama función de ganancia si se va a maximizar, y función de costo si se va a minimizar. En problemas aplicados siempre se considera que dos de las restricciones son x ≥ 0 e y ≥ 0.
El conjunto solución convexo de la restricciones se llama conjunto factible y cualquier punto de este conjunto es una solución factible. Nuestro fin será entonces determinar entre todas las soluciones factibles aquellas que maximicen o minimicen ax + by.
METODO GRAFICO O METODO DE LAS RECTAS DE NIVEL Los problemas de programación lineal pueden presentarse en la forma estándar, dando la función objetivo y las restricciones, o bien plantearlos mediante un enunciado. Si éste es el caso, puede seguirse el camino que indicamos a continuación, ejemplificado con el siguiente problema:
Paso 1º: Leer detenidamente el enunciado: determinar el objetivo, definir las variables y escribir la función objetivo.
El objetivo es: halla cuántos bidones de cada tipo hay que almacenar para maximizar los gastos
Suponemos que tal objetivo se consigue almacenado x bidones de aceite de girasol e y de aceite de oliva
Cómo cada bidón de aceite de girasol cuesta almacenarlo 1 unidad monetaria y lo mismo para uno de aceite, los gastos serán x + y Luego, la función objetivo es:
Maximizar la función Z = f(x, y) = x + y
En un almacén se guarda aceite de girasol y de oliva. Para atender a los clientes se han de tener almacenados un mínimo de 20 bidones de aceite de girasol y 40 de aceite de oliva y, además, el número de bidones de aceite de oliva no debe ser inferior a la mitad del número de bidones de aceite de girasol. La capacidad total del almacén es de 150 bidones. Sabiendo que el gasto de almacenaje es el mismo para los dos tipos de aceite (1 unidad monetaria). ¿Cuántos bidones de cada tipo habrá que almacenar para que el gasto sea máximo?
Paso 2º: Reordenar los datos del problema y a partir de las cantidades decididas, x e y, escribir el sistema de inecuaciones que determinan las restricciones.
Un mínimo de 20 bidones de aceite de girasol: x ≥20 Un mínimo de 40 bidones de aceite de oliva:y≥ 40
El número de bidones de aceite de oliva no debe ser inferior a la mitad del número de bidones de aceite de girasol: y ≤ x/2
La capacidad total del almacén es de 150 bidones: x + y ≤150 Además, los números de bidones deben ser cantidades positivas: x≥ 0; y ≥ 0
Paso 3º: Expresar el problema en la forma estándar. Siguiendo con el ejemplo, sería:
Maximizar: Z = f(x,y) = x + y sujeto a: x + y≤ 150
y≤ x/2
x≥ 20 ; y≥ 40
Aquí termina el planteamiento del problema. Para su resolución hay que continuar con:
Paso 4º: Representar gráficamente las restricciones y marcar claramente la región factible.
Para las restricciones anteriores debemos representar las rectas: x + y = 150 , y = x/2 , x = 20 e y = 40, obteniéndose la región factible que en la figura se encuentra coloreada.
Paso 5º: Hallar las coordenadas de los vértices del polígono obtenido. Resolviendo los sistemas : { x = 20,y = 40 } , { y = x/2 , y = 40 } , { y = x/2 , x + y = 150} , { x + y = 150, x = 20}; se obtienen los vértices: A(20,40) , B(80,40) , C(100, 50) , D(20,130)
Paso 6º: Sustituir las coordenadas de esos puntos en la función objetivo y hallar el valor máximo o mínimo.
Sustituyendo en f(x,y) = x + y, se tiene: f(20,40) = 60
f(80,40) = 120 f(100, 50) = 150 f(20,130) = 150
Como el valor máximo se obtiene en los puntos C y D, puede optarse por cualquiera de los dos, o por cualquier punto perteneciente al segmento que los une. Así, por ejemplo, se obtendría el mismo gasto con 40 bidones de aceite girasol y 110 bidones de aceite de oliva; o 90 y 60 respectivamente.
Paso 7º: También es conveniente representar las rectas de nivel para comprobar que la solución gráfica coincide con la encontrada. Esta conveniencia se convierte en necesidad cuando la región factible es no acotada.
En nuestro caso, puede comprobarse que las rectas de nivel tienen la misma pendiente que la recta límite de la restricción x + y 150 ; por tanto, hay múltiples soluciones.
Paso 8º: Por último, como en la resolución de todo problema es necesario criticar la solución: cerciorarse de que la solución hallada es lógica y correcta.
En este ejemplo, no todos los puntos del segmento CD son soluciones válidas, ya que no podemos admitir valores de x e y no enteros, como ocurriría en el punto (90.5; 59.5) .
MÉTODO ANALÍTICO O MÉTODO DE LOS VÉRTICES
El siguiente resultado, denominado teorema fundamental de la programación lineal, nos permite conocer otro método de solucionar un programa con dos variables.
En un programa lineal con dos variables, si existe una solución única que optimice la función objetivo, ésta se encuentra en un punto extremo (vértice) de la región factible acotada, nunca en el interior de dicha región. Si la función objetivo toma el mismo valor óptimo en dos vértices, también toma idéntico valor en los puntos del segmento que determinan.
En el caso de que la región factible no es acotada, la función lineal objetivo no alcanza necesariamente un valor óptimo concreto, pero, si lo hace, éste se encuentra en uno de los vértices de la región
La evaluación de la función objetivo en los vértices de la región factible nos va a permitir encontrar el valor óptimo (máximo o mínimo) en alguno de ellos.
Veámoslo con un ejemplo:
1) Hallar los puntos de corte de las rectas asociadas a las restricciones:
Calculamos las soluciones de cada uno de los seis sistemas de dos ecuaciones con dos incógnitas que se pueden formar con las cuatro restricciones: { 4x + 5y = 40 , 2x + 5y = 30}. Solución: A(5, 4) { 4x + 5y = 40 , x = 0 } Solución: B (0, 8) { 4x + 5y = 40 , y = 0}. Solución: C(10, 0) { 2x+ 5y = 30 , x = 0} Solución: D(0, 6) { 2x + 5y = 30 , y = 0}. Solución: E(15, 0) { x = 0, y = 0} Solución: O(0, 0)
2) Determinar los vértices de la región factible:
Los vértices de la región factible son aquellos puntos que cumplen todas las restricciones.
Si sustituimos los puntos en cada una de las desigualdades tenemos que:
B no cumple la segunda restricción 2x + 5y≤30 , ya que 2·0 + 5·8 = 40 . Por tanto, el punto B no es un vértice de la región factible. E no cumple la primera restricción 4x + 5y≤40 , ya que 4·15 + 5·0 =
60 . Por tanto, el punto E no es un vértice de la región factible.
Maximizar: Z = f(x,y) = 3x + 8y sujeto a: 4x + 5y ≤ 40
2x + 5y ≤ 30 x ≥ 0 , y ≥ 0
Los puntos A, C, D y O verifican todas las desigualdades, son los vértices de la región factible.
3) Calcular los valores de la función objetivo en los vértices: f(A) = f(5,4) = 3·5 + 8·4 = 47 f(C) = f(10,0) = 3·10 + 8· 0 = 30 f(D) = f(0,6) = 3·0 + 8·6 = 48 f(O) = f(0,0) = 3·0 + 8·0 = 0
La solución óptima corresponde al vértice para el que la función objetivo toma el valor máximo. En este caso es el vértice D(0,6).
PROBLEMAS DE APLICACIÓN:
1) Al maximizar x + y; x, y ∈ℝ; sujeto a las siguientes condiciones: 2x + 3y ≥ 6
2x + y ≤ 6 y≤ 4 x≥ 0, y ≥ 0
Indique la alternativa correcta después de determinar si la proposición es verdadera (V) o falsa (F).
I. Los puntos (2; 2) y (4; 1) pertenecen a la región admisible. II. La región admisible es un polígono de cuatro lados. III. El valor óptimo es 5.
A) VVF B) VVV C) VFV D) FVV E) FVF Resolución: Maximizar: x + y; x, y ∈ℝ Sujeto a: 2x + 3y ≥ 6 2x + y ≤ 6 y≤ 4 x≥ 0, y ≥ 0 Grafiquemos las restricciones:
Evaluemos en los vértices del polígono: (0; 2) ⟹ x + y = 2
(0; 4) ⟹ x + y = 4
(1; 4) ⟹ x + y = 5 (máximo – óptimo) (3; 0) ⟹ x + y = 3
Del gráfico obtenemos: I. Falso
II. Verdadero III. Verdadero
CLAVE D 2) El valor mínimo que toma la función objetivo: P(x; y) = 10x + 20y,
sujeta a las restricciones:
x + y ≥ 2 x – 2y ≤ 2 y≤ x es: A) -70 B) -20 C) 0 D) 20 E) 30 Resolución:
Nos piden: valor mínimo de: P(x; y) = 10x + 20y Sujeto a:
x + y ≥ 2 x – 2y ≤ 2 y≤ x
Graficando cada una de las desigualdades:
Ahora, para hallar el valor mínimo, evaluamos P(x; y) en los vértices de la región factible:
Por lo tanto, el valor mínimo que toma la función objetivo es 20.
3) Sea f: ℝ2ℝ una función definida por:
f(x; y) = –3x + y
El punto de la región convexa mostrada en la figura, donde f alcanza su mínimo, es: A) (2; 3) B) (2; 0) C) (0; 3) D) (6; 4) E) (4;6) Resolución: Sea: f(x; y) = –3x + y; f: ℝ2ℝ
La función f puede alcanzar los valores máximo o mínimo en los vértices de la región convexa; entonces, según la gráfica, los vértices son:
(0; 0), (1; 0), (6; 4) y (0;3) Evaluando los vértices en la función:
f(0; 0) = –3(0) + 0 = 0 f(1; 0) = –3(1) + 0 = –3
f(6; 4) = –3(6) + 4 = –14 (mínimo) f(0; 3) = –3(0) + 3 = 3 (máximo)
La función f alcanza su mínimo valor de –14 en el punto (6; 4) CLAVE D 4) Sea “u” el número de decenas de sillas y “v” el número de decenas de mesas que fabrica una empresa al día. Si la utilidad diaria está dada por 200u + 300v y se tienen las siguientes restricciones:
u + v ≤ 4 2u + 3v ≤ 10 40u + 20v ≤ 120
El número de decenas de mesas y sillas a fabricar diariamente, de modo que la empresa obtenga la mayor utilidad, es:
A) 3 y 1 B) 1 y 3 C) 2 y 2 D) 2 y 3 E) 3 y 2 Resolución:
Se tiene, la función a maximizar: U(u; v) = 200u + 300v Sujeto a:
u + v ≤ 4 (I)
2u + 3v ≤ 10 (II)
Graficando las restricciones, respectivamente, se obtiene:
Según la gráfica, observamos que sus vértices son: (0; 10/3), (3; 0) y (2; 2) Evaluando los vértices en la función:
U(0; 10/3) = 200(0) + 300(10/3) = 1000 U(3; 0) = 200(3) + 300(0) = 600 U(2; 2) = 200(2) + 300(2) = 1000
Como se obtiene el óptimo en dos vértices consecutivos, la utilidad es máxima para todos los puntos que pertenecen al segmento que une los vértices (0; 10/3) y (2; 2) de los cuales elegimos (2; 2).
CLAVE C 5) Dadas las siguientes proposiciones respecto a la programación lineal:
I. Las restricciones de desigualdad son polinomios de primer y segundo grado.
II. El punto óptimo se encuentra en la región admisible.
III. La región admisible contiene puntos, los cuales tienen en alguna de sus coordenadas valor negativo.
Es (son) correcta(s):
A) Solo I B) Solo II C) Solo III D) I y II E) II y III Resolución:
Analizando cada proposición respecto a la programación lineal:
I. Las restricciones de desigualdad siempre son de primer grado (lineal); no puede ser de segundo grado. Es INCORRECTA. II. El punto óptimo se encuentra en la región admisible, dado que
este punto es uno de los pertenecientes a la región admisible. Es CORRECTA.
III. Siempre, las coordenadas de todos los puntos de la región admisible van a tener valor positivo, nunca, un valor negativo, pues sus variables siempre mayor o igual que cero. Es INCORRECTA.