Programación lineal

Anuncio
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 Leonid
Kantoró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, Leonid
Khachiyan, demostró que el problema de la programación lineal era resoluble en tiempo
polinomial. Más tarde, en 1984, Narendra Karmarkar 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.
Esquema práctico
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:
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 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
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
Paso 3º: Expresar el problema en la forma estándar.
Siguiendo con el ejemplo, sería:
Maximizar:
sujeto a:
Z = f(x,y) = x + y
x + y 150
y x/2
x 20 ; y 40
0;y
0
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
cunado 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) .
Descargar