Este documento presenta una introducción a la programación lineal, entera y no lineal. Explica conceptos como el método gráfico, método simplex, dualidad, análisis de sensibilidad y métodos para resolver problemas de programación entera y no lineal como branch and bound y gradiente descendente. También incluye ejemplos y referencias bibliográficas sobre estos temas.
3. El Modelo de Programación Lineal, es una representación simbólica de la realidad que se
estudia, o del problema que se va a solucionar. Se forma con expresiones de
lógicas matemáticas, conteniendo términos que significan contribuciones: a
la utilidad (con máximo) o al costo (con mínimo) en la Función Objetivo del modelo. Y
al consumo de recursos disponibles (con desigualdades = ó = e igualdades =) en las
restricciones.
Modelos Matemáticos de Programación Lineal de: Maximización y Minimización, los
cuales estarán indicados en la Función Objetivo del Modelo.
4. Es un procedimiento de solución de problemas
de programación lineal, muy limitado en cuanto
al número de variables (2 si es un gráfico 2D y
3 si es 3D) pero muy rico en materia de
interpretación de resultados e incluso análisis
de sensibilidad.
El procedimiento consiste en trazar
las ecuaciones de las restricciones en
un eje de coordenadas X1, X2 para
tratar de identificar el área de
soluciones factibles (soluciones que
cumplen con todas las restricciones).
5. El Método Simplex es un método analítico de
solución de problemas de programación lineal
capaz de resolver modelos más complejos que
los resueltos mediante el método gráfico sin
restricción en el número de variables.
El Método Simplex es un método iterativo que
permite ir mejorando la solución en cada paso.
La razón matemática de esta mejora radica en
que el método consiste en caminar del vértice
de un poliedro a un vértice vecino de manera
que aumente o disminuya (según el contexto de
la función objetivo, sea maximizar o
minimizar), dado que el número de vértices que
presenta un poliedro solución es finito siempre
se hallará solución.
6.
7. Esta estrategia algorítmica se aplica cuando luego de llevar un modelo de
programación lineal a su forma estándar no se dispone de una solución
básica factible inicial.
Fase 1: Consideramos 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. Luego se debe resolver utilizando el Método
Simplex un nuevo problema que considera como
función objetivo la suma de las variables auxiliares. Si el
valor óptimo alcanzado al finalizar la Fase 1 es cero ir a
la Fase 2. En caso contrario, no existe solución factible.
Fase 2: Resolver a través del Método
Simplex el problema original a partir de la
solución básica factible inicial hallada en la
Fase1.
8. Cada problema de programación
lineal tiene un segundo problema
asociado con el. Uno se denomina
primal y el otro dual. Los 2 poseen
propiedades muy relacionadas, de tal
manera que la solución óptima a un
problema proporciona información
completa sobre la solución óptima
para el otro.
se aplica para resolver problemas que empiezan con
factibilidad dual, es decir, óptimos pero infactibles. Es un
proceso iterativo que puede generar varias aproximaciones a la
solución a través de distintas tablas de solución. Se puede
identificar cuando se ha llegado a la solución óptima.
9. La dualidad en programación lineal provee de
resultados teóricos interesantes que justifican
su uso como herramienta alternativa y
complementaria de resolución.
La dualidad permite realizar
importantes interpretaciones
económicas de los problemas de
programación lineal.
10. El análisis de sensibilidad o postoptimal para
los modelos de Programación Lineal, tiene por
objetivo identificar el impacto que resulta en
los resultados del problema original luego de
determinadas variaciones en los parámetros,
variables o restricciones del modelo, sin que
esto pase por resolver el problema nuevamente.
Es decir, ya sea si resolvemos nuestro modelo
gráficamente o utilizando el Método Simplex,
lo que se busca es que estas variaciones o
sensibilidad hagan uso de la solución y valor
óptimo actual, sin tener la necesidad de
resolver para cada variación un nuevo
problema.
11. 1. En Excel 2010 y versiones posteriores,
vaya a Archivo > Opciones.
2. Haga clic en Complementos y, en el
cuadro Administrar, seleccione
Complementos de Excel.
3. Haga clic en Ir.
4. En el cuadro Complementos
disponibles, active la casilla
Solver y, a continuación, haga
clic en Aceptar.
12. Para ejemplificar respecto al uso de Solver
utilizaremos el siguiente modelo de
Programación Lineal:
Paso 1: Abrir una planilla de cálculo de Excel y
definir las variables de decisión y la función
objetivo. En este ejemplo se han marcado con
amarillo y verde las variables de decisión y
función objetivo respectivamente sólo para
facilitar la comprensión. Es importante notar
que la función objetivo (celda F4) será siempre
una fórmula que depende de los parámetros de
la función objetivo (celdas B5, C5, D5) y las
variables de decisión (B4, C4, D4)
13. Paso 2: Se definen las restricciones del
modelo. La columna en amarillo bajo
el titulo "Laso Izq" es una fórmula de
los parámetros y las variables de
decisión en las respectivas
restricciones. Por ejemplo, la fórmula
incorporada en E9 es simplemente:
15X + 7,5Y + 5Z. La celda F9 es el
lado derecho de dicha restricción y
corresponde a una constante (315).
Paso 3: Ingresamos a la Opción Solver
(Ver Instalacion Solver de Excel). Luego
definimos la celda objetivo (función
objetivo), el valor que buscamos
(máximización o minimización), las celdas
que deseamos cambiar (variables de
decisión) y las restricciones. Para nuestro
ejemplo está será la pantalla que se debe
obtener:
14. Paso 4: Accedemos a "Opciones..." y
seleccionamos "Adoptar modelo lineal"y
"Adoptar no negativos". Finalmente
seleccionamos "Aceptar" y luego "Resolver".
Paso 5: Si el proceso se ha desarrollado
en forma correcta la planilla de cálculo
se actualizará y se obtendrán los
siguientes resultados. Solución Óptima:
X=4, Y=10, Z=36. Valor Óptimo:
V(P)=6.620. Se recomienda requerir el
informe de sensibilidad tal como se
muestra en la imagen de abajo.
15. Paso 6: La imagen a continuación ha sido levemente editada y corresponde al
informe de sensibilidad. Por ejemplo, el parametro que actualmente acompaña a X
en la función objetivo es 200, sin embargo, si este valor varía entre [120,240] se
conservará la actual solución óptima. En cuanto a las restricciones podemos decir,
por ejemplo, que si el lado derecho de la segunda restricción (actualmente este
lado derecho es igual a 110) aumenta a 120, es nuevo valor óptimo será
V(P)=6.620 + 10*10 =6.720, es decir, el valor óptimo aumentará en forma
proporcional al precio sombra de dicha restricción. Se recomienda revisar la
sección de Análisis de Sensibilidad para reforzar estos conceptos.
17. es aquel cuya solución óptima tiene sentido solamente si una parte o todas las variables
de decisión toman valores restringidos a números enteros, permitiendo incorporar en el
modelamiento matemático algunos aspectos que quedan fuera del alcance de los modelos
de Programación Lineal.
Los modelos de Programación Entera se pueden clasificar en 2 grandes áreas:
18. En esta categoría encontramos aquellos
modelos de Programación Entera que
consideran exclusivamente variables de
decisión que adoptan valores enteros o
binarios
A esta categoría pertenecen aquellos problemas
de optimización que consideran variables de
decisión enteras o binarias pero no de forma
exclusiva. De esta forma un problema de PEM
puede considerarse como un híbrido entre
distintas categorías de modelamiento, siendo un
caso típico aquel que considera la mezcla de
variables enteras y variables continuas (estas
últimas características de los modelos de
Programación Lineal).
1. Incorporación de Costos
Fijos
2. Problemas de Localización y
Transporte
3. Problema de Generación
Eléctrica
EJEMPLOS
1. Problema de Asignación
2. Problema de Corte de Rollos
3. Selección de Invitados a una
Boda
4. Programación de la
Explotación Forestal
5. Problema de la Mochila
EJEMPLOS
19. El método de Branch and Bound (en español
Ramificación y Acotamiento) aborda la
resolución de modelos de programación
entera a través de la resolución de una
secuencia de modelos de programación
lineal que consituirán los nodos o
subproblemas del problema entero.
Si bien el procedimiento es extendible a un
número mayor de variables, para efectos
prácticos ilustraremos su aplicación para
modelos de programación entera en 2 variables.
21. es el proceso de resolución de un sistema de igualdades y desigualdades
sujetas a un conjunto de restricciones sobre un conjunto de variables reales
desconocidas, con un función objetivo a maximizar (o minimizar), cuando
alguna de las restricciones o la función objetivo no son lineales.
Modelos Matemáticos de
Programación no Lineal de:
OPTIMIZACIÓN NO RESTRINGIDA
OPTIMIZACIÓN RESTRINGIDA LINEALMENTE
PROGRAMACIÓN CUADRÁTICA
PROGRAMACIÓN CONVEXA
PROGRAMACIÓN SEPARABLE
PROGRAMACIÓN NO CONVEXA
ROGRAMACIÓN GEOMÉTRICA
PROGRAMACIÓN FRACCIONAL
22. (conocido también como método de Cauchy o del descenso
más pronunciado) consiste en un algoritmo específico para la
resolución de modelos de PNL sin restricciones, perteneciente
a la categoría de algoritmos generales de descenso, donde la
búsqueda de un mínimo esta asociado a la resolución
secuencial de una serie de problemas unidimensionales.
Los pasos asociados a la
utilización del método del
gradiente o descenso más
pronunciado consiste en:
23. El método de multiplicadores de Lagrange (el
cual es generalizado por las condiciones de
optimalidad de Karush-Kuhn-Tucker) permite
abordar la resolución de modelos de
programación no lineal que consideran
restricciones de igualdad.
En este sentido y como resulta natural, el
dominio de soluciones factibles considerará
exclusivamente aquellas soluciones que
permiten verificar el cumplimiento de la
igualdad de dichas restricciones.
Por el contrario, un problema de
optimización que considera inecuaciones
como restricciones, sólo requiere que éstas
se cumplan y no necesariamente se deberá
forzar el cumplimiento de ellas en
igualdad (activas).
24. Las condiciones de Karush-Kuhn-Tucker (también conocidas como las condiciones
KKT o Kuhn-Tucker) son requerimientos necesarios y suficientes para que la solución
de un problema de programación matemática sea óptima. Es una generalización del
método de los multiplicadores de Lagrange.
Hallar el Lagrangeano de la función.
Derivar el Lagrangeano sólo respecto a variables de la función.
Plantear las ecuaciones:
Derivadas=0
λj(Restricciones)=0
Restricciones con desigualdad
λj con desigualdad de acuerdo a la tabla
Planteamiento de casos para λj y desarrollo para cada uno de ellos.
Al conseguir los valores óptimos de cada variable para cada caso, se evalúan los
mismos en el conjunto de ecuaciones planteadas, las cuales deben satisfacer para
optar a solución del problema.
En caso de tener dos o más casos cuyos valores óptimos de las variables cumplan
con las ecuaciones planteadas, se elige en caso de maximización, aquellos valores
que maximicen la función objetivo.
25. El método o algoritmo de Frank Wolfe fue
propuesto en 1956 por Marguerite Frank y
Philip Wolfe y se aplica a problemas de
optimización matemática con una función
objetivo no lineal convexa y cuyo dominio
de soluciones factibles esta compuesto
exclusivamente por restricciones lineales,
es decir, es un conjunto convexo (en
consecuencia el problema es convexo).
26. Avriel, Mordecai (2003). Nonlinear Programming: Analysis and Methods. Dover
Publishing. ISBN 0-486-43227-0.
Bazaraa, Mokhtar S. and Shetty, C. M. (1979). Nonlinear programming. Theory and
algorithms. John Wiley & Sons. ISBN 0-471-78610-1.
Nocedal, Jorge and Wright, Stephen J. (1999). Numerical Optimization. Springer.
ISBN 0-387-98793-2.
Bertsekas, Dimitri P. (1999). Nonlinear Programming: 2nd Edition. Athena Scientific.
ISBN 1-886529-00-0.
W. Karush (1939). Minima of Functions of Several Variables with Inequalities as Side
Constraints. M.Sc. Dissertation. Dept. of Mathematics, Univ. of Chicago, Chicago,
Illinois.
H. W. Kuhn,Tucker, A. W., Proceedings of 2nd Berkeley Symposium, Nonlinear
programming, University of California Press, 1951, Berkeley
Bibliografía
Avriel, Mordecai (2003). Nonlinear Programming: Analysis and Methods. Dover
Publishing. ISBN 0-486-43227-0.
R. Andreani, J. M. Martínez, M. L. Schuverdt, On the relation between constant
positive linear dependence condition and quasinormality constraint qualification.
Journal of optimization theory and applications, vol. 125, no2, pp. 473-485 (2005).
Véase también