programación lineal

14

Click here to load reader

Upload: danile889l

Post on 13-Jun-2015

11.134 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Programación lineal

PROGRAMACIÓN LINEAL

Page 2: Programación lineal

UN POCO DE HISTORIA La Programación Lineal es una teoría matemática desarrollada en el siglo XX.

Los matematicos que han intervenido en la creación y desarrollo de la Programación Lineal han sido:

Leonid Vitalevich Kantorovitch, que en 1939 publica una monografía titulada "Métodos matemáticos de organización y planificación de la producción".

Tjalling Charles Koopmans, que junto con el anterior estudiaron entre 1941 y 1942 el conocido ahora como problema del transporte. Ambos recibieron el premio Nobel de Economía en 1975.

George Joseph Stigler, que en 1945 planteó el problema del régimen alimenticio optimal, conocido ahora como problema de la dieta.

George Bernard Dantzig, que formuló en 1947 el enunciado general al que se reduce cualquier problema de Programación Lineal y autor del método del simplex para la resolución de problemas.

John von Neumann, que en 1947 relacionó los problemas de Programación Lineal con la teoría de Matrices.

Page 3: Programación lineal

DEFINICIÓN Y TERMINOLOGIA

Un problema de Programación Lineal consiste en optimizar (maximizar o minimizar) la función:

z = F ( x1, x2, ... ,xn ) = c1x1 + c2x2 + ... + cnxn sujeto a: a11x1 + a12x2 + . . . + a1nxn ≤ = ≥ b a21x1 + a22x2 + . . . + a2nxn ≤ = ≥ b2

. . . am1x1 + am2x2 + . . . + amnxn ≤ = ≥ bm

x1 , x2 , . . . , xn ≥ 0 A la función z = F ( x1, x2, ... ,xn ) = c1x1 + c2x2 + ... + cnxn se le denomina función objetivo o

función criterio. Los coeficientes c1, c2, ... , cn son números reales y se llaman coeficientes de beneficio o

coeficientes de costo. Son datos de entrada del problema. x1, x2, ... , xn son las variables de decisión (o niveles de actividad) que deben determinarse. Las desigualdades ai1x1 + ai2x2 + . . . + ainxn ≤ bi , con i = 1, ... , m se llaman restricciones. Los coeficientes aij , con i = 1, ... , m y j = 1, ... , n son también números reales conocidos y se les

denomina coeficientes tecnológicos. El vector del lado derecho, es decir los términos bi , con i = 1, ... , m, se llama vector de

disponibilidades o requerimientos y son también datos conocidos del problema. Las restricciones xj ≥ 0 con j = 1, ... , n se llaman restricciones de no negatividad. Al conjunto de valores de (x1, x2, ... ,xn) que satisfacen simultáneamente todas las restricciones se

le denomina región factible. Cualquier punto dentro de la región factible representa un posible programa de acción.

La solución óptima es el punto de la región factible que hace máxima o mínima la función objetivo.

Page 4: Programación lineal

DEFINICIÓN Y TERMINOLOGÍA En un problema de Programación Lineal, según sean las restricciones, se

obtendrán poliedros diferentes, acotados o no, y según sea la posición de la función objetivo respecto de dicho poliedro se pueden originar diferentes situaciones. Según el tipo de soluciones que presenten un problema de Programación Lineal puede ser:

Factible: si existe la región factible. En este caso nos podemos encontrar: Óptimo finito y único. La solución óptima está formada por un único punto

con coordenadas reales. Múltiples óptimos. Un problema de Programación Lineal puede tener más de

un óptimo. Además, o bien el problema tiene un único óptimo, o bien, tiene infinitos óptimos.

Óptimo infinito. Un problema de Programación Lineal puede tener un óptimo no finito, es decir, la función objetivo puede tomar, un valor tan grande o tan pequeño como se quiera sin abandonar la región factible.

Región factible no acotada, óptimo finito. La no acotación de la región factible no implica necesariamente óptimo infinito. Puede ocurrir que la función objetivo alcance el óptimo en la zona acotada de la región factible.

Región factible no acotada, óptimo finito e infinito. Puede darse el caso que todos los puntos de una de las semirrectas que determinan la región factible no acotada sean solución del problema.

No factible. Región factible vacía. El conjunto de restricciones de un problema de Programación Lineal puede ser incompatible, conduciendo a una región factible vacía.

Page 5: Programación lineal

INECUACIONES LINEALES CON DOS INCÓGNITAS

Una inecuación lineal con dos incógnitas es una expresión de alguna de las siguientes formas:

ax+by<0 ax+by≤0 ax+by>0 ax+by≥0 Una ecuación lineal con dos incógnitas es una expresión de la forma:

ax+by=c. Representa un sistema compatible indeterminado con un parámetro. Tiene infinitas soluciones. Las soluciones son todos los puntos de la recta de ecuación ax+by=c.

Esta recta divide al plano en dos semiplanos. Todos los puntos de uno de estos semiplanos verifican ax+by<0 y todos los puntos del otro semiplano verifican ax+by>0.

Actividad Resuelve en tu cuaderno las siguientes inecuaciones y comprueba

después el resultado gráficamente: a) x - y < 3 b) -x + 2y ≤ 8 c) 3x + 4y > -12 d) -4x + y ≥ 2

Page 6: Programación lineal

SISTEMA DE INECUACIONES LINEALES CON DOS INCÓGNITAS Para resolver un problema de Programación

Lineal tenemos que representar la región factible resolviendo el sistema de inecuaciones formado por el conjunto de restricciones.

Un sistema de inecuaciones lineales está formado por un conjunto de inecuaciones lineales. Para resolverlo tendremos que resolver cada una de las inecuaciones que lo forman y después encontrar la intersección de todos los semiplanos solución (región factible). La región factible, si es no vacía, siempre será un conjunto convexo (dados dos puntos cualesquiera de ella, el segmento que los une también está contenido).

Page 7: Programación lineal

REGIÓN FACTIBLE

Page 8: Programación lineal

MÉTODOS DE SOLUCIÓN. Ya hemos representado la región factible y hemos calculado sus vértices.

Ahora vamos a calcular el máximo o el mínimo de la función objetivo en la región factible. Nos encontramos con dos procedimientos.

8.1. Procedimiento analítico. Este procedimiento únicamente es válido para problemas con regiones

factibles acotadas. Para resolver un problema de Programación Lineal mediante el procedimiento analítico, necesitamos conocer el siguiente teorema.

Teorema fundamental de la Programación lineal Si un problema de Programación Lineal tiene región factible no vacía,

entonces, si existe el óptimo (máximo o mínimo) de la función objetivo, se encuentra en un punto extremo (vértice) de la región factible.

Si una función alcanza el valor óptimo en dos vértices consecutivos de la región factible, entonces alcanza también dicho valor óptimo en todos los puntos del segmento que determinan ambos vértices.

Teniendo en cuenta el teorema anterior, para calcular el máximo o el mínimo de una función, será suficiente con evaluar la función objetivo en todos los vértices de la región factible y quedarnos con el que proporciona el valor óptimo.

Page 9: Programación lineal

PROCEDIMIENTO GRÁFICO

Este procedimiento es válido tanto para problemas con regiones factibles acotadas como no acotadas. Como los problemas que vamos a estudiar tienen dos variables, es posible efectuar una representación gráfica en el plano y encontrar gráficamente la solución. Sin embargo, este procedimiento no es generalizable para un número cualquiera de variables.

Cualquier punto de la región factible es una solución factible para el problema de Programación Lineal, sin embargo, nos interesa encontrar en cualquier problema la solución óptima. Para encontrarla hacemos F(x,y)=0 y representamos la recta que se obtiene llamada recta de beneficio nulo. Posteriormente recorremos la región factible con rectas paralelas a la que hemos representado, llamadas líneas de nivel o rectas de beneficio constante. Observamos como varía la función objetivo al desplazar las rectas de nivel en un sentido o en otro y los últimos puntos de contacto de estas rectas con la región factible proporcionan el valor o valores máximos y mínimos.

Page 10: Programación lineal

Aunque surgió como aplicación a cuestiones de carácter logístico y militar, es la industria y la economía donde, posteriormente ha encontrado sus aplicaciones más importantes.

Así, por ejemplo, la Programación Lineal permite resolver problemas de mezclas, nutrición de animales, distribución de factorías, afectación de personal a distintos puestos de trabajo, almacenaje, planes de producción, escalonamiento de la fabricación, problemas de circulación, planes de optimización de semáforos, estudios de comunicaciones internas, etc.

Veamos algunas de las aplicaciones más importantes:

Page 11: Programación lineal

1 EJEMPLO EL PROBLEMA DEL TRANSPORTE Trata de organizar el reparto de cualquier tipo de

mercancías con un coste mínimo de tiempo, de dinero o de riesgo (por ejemplo, el transporte de mercancías peligrosas).

Se dispone de m centros de producción u orígenes (Oi), con sus respectivas ofertas; y n centros de consumo o destino (Dj), con sus demandas correspondientes. A su vez, son conocidos los costes de envío (cij), desde cada origen a cada destino.

El objetivo del problema del transporte es determinar cuántas unidades de producto deben enviarse desde cada origen hasta cada destino de forma que se minimicen los costes totales de distribución, se satisfaga la demanda de cada destino y no se exceda la capacidad de oferta de cada uno de los orígenes. (El total de unidades que salen de los centros de origen debe ser igual al total de unidades que llegan a los centros de destino

Page 12: Programación lineal

EL ALGORITMO DEL SIMPLEX. Según el teorema fundamental de la Programación Lineal, si un problema de

Programación Lineal tiene solución óptima finita, ésta se alcanza en un vértice de la región factible. Los vértices se obtienen como solución de sistemas de ecuaciones lineales determinados por las restricciones. Al haber un número finita de restricciones, hay también un número finito de vértices. Por tanto la solución del problema se puede obtener evaluando la función objetivo en un número finito de puntos.

Sin embargo, el número de vértices de la región factible puede ser muy grande y por tanto el cálculo de la solución óptima puede resultar bastante entretenido. Sería interesante un procedimiento que escoja unos cuantos vértices sin necesidad de trabajar con todos. Esto el lo que intenta el algoritmo del simplex descubierto por G. B. Dantzig. El nombre del método es debido a que en una de sus primeras aplicaciones, la región factible estaba formada por un "simplex", es decir, un poliedro convexo generado por (n+1) puntos de Rn, no situados en una misma variedad lineal (n-1)-dimensional.

Este procedimiento parte de un vértice cualquiera y mediante algoritmos se va pasando a vértices adyacentes que mejoran el valor de la función objetivo en el vértice anterior, obteniendo la solución óptima en un número de pasos bastante inferior al de evaluar la función objetivo en todos los vértices.

Por ejemplo, supongamos que una hormiga se encuentra con la estructura de un complicado poliedro convexo y quiere subir al vértice situado en lo más alto siguiendo las aristas del poliedro. ¿Cuál es la forma más rápida de conseguirlo? Parece lógico que desde el suelo escoja la arista con más pendiente y suba por ella hasta llegar al vértice en el que finaliza. Después escoger de todas las aristas que salen de dicho vértice la que tiene mayor inclinación y subir por ella hasta un nuevo vértice. Repitiendo este procedimiento llegará al vértice más alto en el menor número de pasos posible.

Page 13: Programación lineal

EJERCICIOS . Un ave de rapiña necesita para subsistir al día 30 unidades de proteínas, 20 de grasas y 8

de vitaminas. Sus presas son dos tipos de animales: ratones que le proporcionan 3 unidades de proteínas, 4 de grasas y 1 de vitaminas y palomas que le proporcionan 6 unidades de proteínas, 2 de grasas y 1 de vitaminas. Si cazar y comer un ratón le cuesta 7 unidades de energía y una paloma le cuesta 12 unidades de energía, ¿ cuántas presas de cada clase debe cazar para satisfacer sus necesidades con el menor gasto de energía ?

2. Con 80 kg de acero y 120 de aluminio se quieren fabricar bicicletas de montaña y de paseo que se venderán a 200 euros y 150 euros respectivamente. Para la de montaña son necesarios 1 kg de acero y 3 de aluminio y para la de paseo 2 kg de cada uno de los metales. ¿ Cuántas bicicletas de paseo y cuántas de montaña se deben fabricar para obtener el máximo beneficio ?

3. Para abonar un parcela de huerta se necesitan, por lo menos, 8 kg de nitrógeno y 12 kg de fósforo. Se dispone de un producto M cuyo precio es de 3 euros por kilogramo y que contiene un 10 % de nitrógeno y un 30 % de fósforo y otro producto N que contiene un 20 % de nitrógeno y un 20 % de fósforo, y cuyo precio es de 4 euros por kilogramo. ¿ Qué cantidades se deben tomar de M y N para abonar la parcela con el menor gasto posible ?

4. Un comerciante desea comprar dos tipos de frigoríficos, F1 y F2. Los del tipo F1 cuestan 300 euros y los del tipo F2, 500 euros. Solo dispone de sitio para 20 frigoríficos y de 7000 euros para hacer las compras. ¿ Cuántos frigoríficos ha de comprar de cada tipo para obtener beneficios máximos en la venta posterior, sabiendo que en cada frigorífico gana el 30 % del precio de compra ?

5. Una industria vinícola produce vino y vinagre. El doble de la producción de vino es siempre menor o igual que la producción de vinagre más cuatro unidades. Además el triple de la producción de vinagre más cuatro veces la producción de vino es siempre menor o igual que 18 unidades. Hallar el número de unidades de cada producto que se deben producir para alcanzar un beneficio máximo, sabiendo que cada unidad de vino deja un beneficio de 8 euros y cada unidad de vinagre 2 euros.

Page 14: Programación lineal

BIBLIOGRAFÍAS

1. Título: "Programación lineal y métodos de optimización".

Autor: Eduardo Ramos Méndez. Universidad Nacional de Educación a Distancia.

Madrid. 1997. 2. Libros de texto de Matemáticas de C.O.U.

Opciones C y D. Autores: varios Editoriales: Anaya, Ecir, Edelvives, SM. 3. Libros de texto de Matemáticas aplicadas a las

Ciencias Sociales. Autores: varios Editoriales: Editex, Mc Graw-Hill, Santillana, SM.