La Programación Lineal (PL) es una de las principales ramas de la Investigación Operativa. En esta categoría se consideran todos aquellos modelos de optimización donde las funciones que lo componen, es decir, función objetivo y restricciones, son funciones lineales en las variables de decisión.
Los modelos de Programación Lineal por su sencillez son frecuentemente usados para abordar una gran variedad de problemas de naturaleza real en ingeniería y ciencias sociales, lo que ha permitido a empresas y organizaciones importantes beneficios y ahorros asociados a su utilización.
Un modelo de Programación Lineal (PL) considera que las variables de decisión tienen un comportamiento lineal, tanto en la función objetivo como restricciones del problema. En este sentido, la Programación Lineal es una de las herramientas más utilizadas en la Investigación Operativa debido a que por su naturaleza se facilitan los cálculos y en general permite una buena aproximación de la realidad.
Los Modelos Matemáticos se dividen básicamente en Modelos Determistas (MD) o Modelos Estocásticos (ME). En el primer caso (MD) se considera que los parámetros asociados al modelo son conocidos con certeza absoluta, a diferencia de los Modelos Estocásticos, donde la totalidad o un subconjunto de los parámetros tienen una distribución de probabilidad asociada. Los cursos introductorios a la Investigación Operativa generalmente se enfocan sólo en Modelos Determistas.
Un modelo de programación lineal proporciona un método eficiente para determinar una decisión óptima, (o una estrategia óptima o un plan óptimo) escogida de un gran número de decisiones posibles.
En todos los problemas de Programación Lineal, el objetivo es la maximación o minimización de alguna cantidad.
Construcción de los Modelos de Programación Lineal
De forma obligatoria se deben cumplir los siguientes requerimientos para construir un modelo de Programación Lineal.
Requerimiento 1. Función objetivo. (F.O).
Debe haber un objetivo (o meta o blanco) que la optimización desea alcanzar.
Requerimiento 2. Restricciones y decisiones.
Debe haber cursos o alternativas de acción o decisiones, uno de los cuáles permite alcanzar el objetivo.
Requerimiento 3. La F.O y las restricciones son lineales.
Deben utilizarse solamente ecuaciones lineales o desigualdades lineales.
Modelo standard de Programación Lineal
Optimizar Z = C1X1+ C1X2 +….+ Cn Xn). Función objetivo.
Sujeta a a11X1+ a11X2 +…..+ a1nXn) £ b1
a21X1+ a21X2 +…..+ a2nXn) £ b1
Restricciones
am1X1+ am1X2 +…..+ amnXn) £ bm
Debiendo ser
X1 ³ 0, X2 ³ 0, ….. Xn ³ 0
Donde :
Xj : variables de decisión, j = 1,2.., n.
n : número de variables.
m : número de restricciones.
aij , bi , cj constantes, i = 1,2.., m.
Pasos para la construcción del modelo
- Definir las variables de decisión.
- Definir el objetivo o meta en términos de las variables de decisión.
- Definir las restricciones.
- Restringir todas las variables para que sean no negativas.
EL METODO SIMPLEX PARA SOLUCIÓN DE PROBLEMAS DE PROGRAMACIÓN LINEAL
Es un procedimiento iterativo que permite ir mejorando la solución a cada paso. El proceso concluye cuando no es posible seguir mejorando más dicha solución. Partiendo del valor de la función objetivo en un vértice cualquiera, el método consiste en buscar sucesivamente otro vértice que mejore al anterior. La búsqueda se hace siempre a través de los lados del polígono (o de las aristas del poliedro, si el número de variables es mayor). Cómo el número de vértices (y de aristas) es finito, siempre se podrá encontrar la solución. El método del simplex se basa en la siguiente propiedad: si la función objetivo, f, no toma su valor máximo en el vértice A, entonces hay una arista que parte de A, a lo largo de la cual f aumenta. |
El Método Simplex publicado por George Dantzig en 1947 consiste en un algoritmo iterativo que secuencialmente a través de iteraciones se va aproximando al óptimo del problema de Programación Lineal en caso de existir esta última.
La primera implementación computacional del Método Simplex es el ano 1952 para un problema de 71 variables y 48 ecuaciones. Su resolución tarda 18 horas. Luego, en 1956, un código llamado RSLP1, implementado en un IBM con 4Kb en RAM, admite la resolución de modelos con 255 restricciones.
El Método Simplex hace uso de la propiedad de que la solución óptima de un problema de Programación Lineal se encuentra en un vértice o frontera del dominio de puntos factibles (esto último en casos muy especiales), por lo cual, la búsqueda secuencial del algoritmo se basa en la evaluación progresiva de estos vértices hasta encontrar el óptimo. Cabe destacar que para aplicar el Método Simplex a un modelo lineal, este debe estar en un formato especial conocido como formato estándar el cual definiremos a continuación.
FORMA ESTÁNDAR DE UN MODELO DE PROGRAMACIÓN LINEAL
Consideremos un modelo de Programación Lineal en su forma estandar, que denotaremos en lo que sigue por:
Min c1x1 + c2x2 + ... + cnxn
sa a11x1 + a12x2 + ... + a1nxn = b1
a21x1 + a22x2 + ... + a2nxn = b2
... ... ...
am1x1 + am2x2 + ... + amnxn = bm
xi >= 0, i = 1, 2, ..., n y m <= n
Matricialmente escrito como:
Min cTx
s.a Ax = b
x >= 0
No existe pérdida de generalidad en asumir que un modelo de PL viene dado en su forma estándar:
EJEMPLO
P) Max 9u + 2v + 5z
sa 4u + 3v + 6z <= 50
u + 2v - 3z >= 8
2u - 4v + z = 5
u,v >= 0
z e IR
- Siempre es posible llevar un problema de maximización a uno de minimización. Si f(x) es la función objetivo a maximizar y x* es la solución óptima f(x*) >= f(x), para todo x factible. -f(x*) <= - f(x), para todo x factible. En consecuencia: x* es también mínimo de -f(x)
- Cada restricción del tipo <= puede ser llevada a una ecuación de igualdad usando una (nueva) variable de holgura no negativa, con coeficiente nulo en la función objetivo.
- Cada restricción del tipo >= puede ser llevada a una ecuación de igualdad usando una (nueva) variable de exceso no negativa, con coeficiente nulo en la función objetivo.
- Siempre es posible escribir una variable libre de signo como la diferencia de dos variables no negativas.
Considerando la siguiente notación: u = x1, v = x2, z = x3 - x4, s1 = x5 (holgura), s2 = x6 (exceso), el problema P) puede ser escrito en forma equivalente como:
Min - 9x1 - 2x2 - 5x3 + 5x4 + 0x5 + 0x6
sa: 4x1 + 3x2 + 6x3 - 6x4 + x5 = 50
x1 + 2x2 - 3x3 + 3x4 - x6 = 8
2x1 - 4x2 + x3 - x4 = 5
xi >= 0, i=1,2,3,4,5,6.
EJEMPLO:
Resolver el siguiente problema de Programación Lineal utilizando el Método Simplex:
Max 40*X1 + 60*X2
s.a. 2*X1 + 1*X2 <= 70
1*X1 + 1*X2 <= 40
1*X1 + 3*X2 <= 90
X1 >= 0 X2 >= 0
Para poder aplicar el Método Simplex, es necesario llevar el modelo a su formato estándar, para lo cual definimos X3, X4, X5 >= 0 como las respectivas variables de holgura para la restricción 1, 2 y 3. De esta forma queda definida la tabla inicial del método de la siguiente forma:
X1 | X2 | X3 | X4 | X5 |
|
2 | 1 | 1 | 0 | 0 | 70 |
1 | 1 | 0 | 1 | 0 | 40 |
1 | 3 | 0 | 0 | 1 | 90 |
-40 | -60 | 0 | 0 | 0 | 0 |
En esta situación, las variables de holgura definen una solución básica factible inicial, condición necesaria para la aplicación del método. Luego, se verifican los costos reducidos de las variables no básicas (X1 y X2 en la tabla inicial) y se escoge como variable que entra a la base aquella con el costo reducido "más negativo". En este caso, X2.
Luego, para escoger que variable básica deja la base debemos buscar el mínimo cuociente entre el lado derecho y los coeficientes asociados a la variable entrante en cada fila (para aquellos coeficientes > 0 marcados en rojo en la tabla anterior). El mínimo se alcanza en Min {70/1, 40/1, 90/3} = 30 asociado a la tercera fila, el cual corresponde a la variable básica actual X5, en consecuencia, X5 deja la base. En la posición que se alcanza el mínimo cuociente lo llamaremos "Pivote" (marcado con rojo) el cual nos servirá para realizar las respectivas operaciones filas, logrando la siguiente tabla al cabo de una iteración:
X1 | X2 | X3 | X4 | X5 |
|
5/3 | 0 | 1 | 0 | -1/3 | 40 |
2/3 | 0 | 0 | 1 | -1/3 | 10 |
1/3 | 1 | 0 | 0 | 1/3 | 30 |
-20 | 0 | 0 | 0 | 20 | 1800 |
El valor de la función objetivo luego de una iteración ha pasado de 0 a 1.800. Se recomienda al lector hacer una representación gráfica del problema y notar como las soluciones factibles del método corresponden a vértices del dominio de puntos factibles.
La actual tabla no corresponde a la solución óptima del problema P) debido a que existe una variable no básica con costo reducido negativo, por tanto X1 entra a la base. Posteriormente, mediante el criterio del mínimo cuociente calculamos la variable que debe dejar la base: Min {40/(5/3), 10/(2/3), 30/(1/3)} = 15, asociado a la fila 2 (variable básica actual X4), por tanto X4 deja la base. Obtenido lo anterior se aplica una iteración del método:
X1 | X2 | X3 | X4 | X5 |
|
0 | 0 | 1 | -5/2 | 1/2 | 15 |
1 | 0 | 0 | 3/2 | -1/2 | 15 |
0 | 1 | 0 | -1/2 | 1/2 | 25 |
0 | 0 | 0 | 30 | 10 | 2100 |
Finalmente se alcanza la solución óptima del problema P) y se verifica que los costos reducidos asociados a las variables no básicas (X4 y X5 son mayores o iguals que cero). Notése que la existencia de un costo reducido igual a cero para una variable no básica en esta etapa define un problema con "infinitas soluciones".
La solución alcanzada es X1* = 15, X2* = 25 con V(P*) = 2.100. Adicionalmente, los costos reducidos asociados a las variables no básicas definen el precio sombra asociado a las restricciones 1, 2 y 3, respectivamente, lo cual es equivalente a la obtención del precio sombra mediante el método gráfico. Dejaremos para una posterior presentación, la forma de calcular el intervalo de variación para el lado derecho que permite la validez del precio sombra, utilizando la tabla final del Método Simplex.
MÉTODO SIMPLEX DE 2 FASES
Esta estrategia se utiliza cuando no es inmediata una solución básica factible inicial en las variables originales del modelo.
FASE 1: Se considera un problema auxiliar que resulta de agregar tantas variables auxiliares a las restricciones del problema, de modo de obtener una solución básica factible. Resolver por Simplex un problema que considera como función objetivo la suma de las variables auxiliares. Si el valor óptimo es cero, seguir a la Fase II, en caso contrario, no existe solución factible.
FASE 2: Resolver por Simplex el problema original a partir de la solución básica factible inicial hallada en la Fase I.
P) Max 2X1 + X2
sa 10X1 + 10X2 <= 9
10X1 + 5X2 >= 1
X1, X2 >= 0
Se debe agregar X3 como variable de holgura de la restricción 1, X4 como variable de exceso de la restricción 2 y X5 variable auxiliar para poder comenzar la Fase 1. (Nótese que solo agregando X3 como variable de holgura a la restricción 1 y X4 como variable de exceso a las segunda restricción no se obtiene una solución básica factible inicial, en particular X4<0).
F1) Min X5
sa ...............10X1 + 10X2 + X3 = 9
10X1 + 5X2 - X4 + X5 = 1
X1, X2, X3, X4, X5 >= 0
La tabla inicial asociada a la Fase I queda en consecuencia definida de la siguiente forma:
X1 | X2 | X3 | X4 | X5 |
|
10 | 10 | 1 | 0 | 0 | 9 |
10 | 5 | 0 | -1 | 1 | 1 |
0 | 0 | 0 | 0 | 1 | 0 |
Luego, se debe hacer 0 el costo reducido de X5, obteniendo la siguiente tabla inicial para hacer el uso de Simplex:
X1 | X2 | X3 | X4 | X5 |
|
10 | 10 | 1 | 0 | 0 | 9 |
10 | 5 | 0 | -1 | 1 | 1 |
-10 | -5 | 0 | 1 | 0 | -1 |
Se escoge X1 como variable que entra a la base al tener el costo reducido más negativo. Posteriormente, mediante el criterio del mínimo cuociente se selecciona la variable que sale de la base: Min {9/10; 1/10} = 1/10, X5 sale de la base:
X1 | X2 | X3 | X4 | X5 |
|
0 | 5 | 1 | 1 | -1 | 8 |
1 | 1/2 | 0 | -1/10 | 1/10 | 1/10 |
0 | 0 | 0 | 0 | 1 | 0 |
Se obtiene la solución óptima de la Fase I, con valor óptimo cero. Luego iniciamos la Fase II del método tomando X1 y X3 como variables básicas iníciales.
FASE 2: Resolver por Simplex el problema original a partir de la solución básica factible inicial hallada en la Fase I.
X1 | X2 | X3 | X4 |
|
0 | 5 | 1 | 1 | 8 |
1 | 1/2 | 0 | -1/10 | 1/10 |
-2 | -1 | 0 | 0 | 0 |
Hacemos cero los costos reducidos de las variables básicas:
X1 | X2 | X3 | X4 |
|
0 | 5 | 1 | 1 | 8 |
1 | 1/2 | 0 | -1/10 | 1/10 |
0 | 0 | 0 | -1/5 | 1/5 |
X4 entra a la base. Por el criterio del mínimo cociente, el pivote se encuentra en la fila 1, por tanto X3 sale de la base:
X1 | X2 | X3 | X4 |
|
0 | 5 | 1 | 1 | 8 |
1 | 1 | 1/10 | 0 | 9/10 |
0 | 1 | 1/5 | 0 | 9/5 |
Donde la solución óptima es: X1=9/10 X2=0 Con valor óptimo V(P) = 9/5.
Bibliografía:
· Monografías .com Herramientas para la toma decisiones: La Programación Lineal
url: http://www.monografias.com/trabajos6/proli/proli.shtml
· Programación lineal.net Programación lineal
url: http://www.programacionlineal.net/
· INVESTIGACIÓN DE OPERACIONES CURSO DE LA ESCUELA DE ADMINISTRACIÓN Y CONTADURÍA UNIVERSIDAD SANTA MARIA Curso Dictado por el Dr. Ing. Franco Bellini M.
url: http://www.investigacion-operaciones.com/operaciones.htm
No hay comentarios:
Publicar un comentario