2. Nonlinear Programming
•¿Qué es Programación no Lineal?
•Es un método para obtener el resultado
óptimo con base en un modelo
matemático en el que NO todas las
relaciones entre variables y constantes
pueden expresarse linealmente.
Algunas relaciones pueden
ser lineales, pero NO todas.
5. Nonlinear Programming
•Ejemplo de programación lineal
•Una planta industrial emplea tres
máquinas M1, M2 y M3 para fabricar dos
artículos A1 y A2. Para la fabricación de
A1 se requieren dos horas en la máquina
M1, una hora en la M2 y tres horas en la
M3; para el producto A2 hace falta una
hora en la máquina M1, una hora en la
M2 y 5 horas en la M3.
6. Nonlinear Programming
•Ejemplo de programación lineal
•Se dispone de 180 horas en la máquina
M1, 110 en la M2 y 480 en la M3. La
ganancia obtenida por cada pieza del
artículo A1 es de $50 y por cada pieza
del artículo A2 es de $40.
•¿Cuántas piezas de cada artículo deben
fabricarse para que la ganancia sea la
máxima posible?
7. Nonlinear Programming
•Ejemplo de programación lineal
•El problema es planteado y se obtiene un
modelo en el que todas las expresiones
algebraicas son lineales.
10. Nonlinear Programming
•Un caso típico de programación no lineal
se presenta cuando las restricciones son
lineales, pero la función objetivo no lo es.
•Por ejemplo:
•¿Qué sucede si, con los datos del
problema anterior, la función objetivo es
cuadrática?
•z = 16x+10y – 0.08x2
11. Nonlinear Programming
•El modelo del problema quedaría:
•Maximizar: z = 16x+10y – 0.08x2
•Sujeto a las restricciones:
• 2x + y ≤ 180
• x + y ≤ 110
• 3x + 5y ≤ 480
• x≥0, y ≥ 0
12. Nonlinear Programming
•Una buena forma de comprender el
problema consiste en trazar la gráfica de
la función objetivo sobre el mismo plano
en el que se encuentran las restricciones.
•z = 16x+10y – 0.08x2
Para poder trazar la gráfica,
asigna un valor de z = 1,300.
Observa el comportamiento de
la curva obtenida
15. Nonlinear Programming
•z = 16x+10y – 0.08x2
El área de soluciones factibles no
cambia, ya que solamente se
modificó la función objetivo, no las
restricciones.
16. Nonlinear Programming
•z = 16x+10y – 0.08x2
A(0, 96)
B(0, 0)
C(90, 0)
D(70, 40)
E(35, 75)
El área de soluciones factibles no
cambia, ya que solamente se
modificó la función objetivo pero
no las restricciones.
17. Nonlinear Programming
•z = 16x+10y – 0.08x2
Debido a la
curvatura de la
función objetivo,
la solución
óptima no
necesariamente
se encontrará en
un vértice del
área de
soluciones
factibles.
18. Nonlinear Programming
• ¿Cómo determinar la solución óptima?
• ¿Cómo sabemos si existe dicha solución
óptima?
• En caso de que exista, ¿es única esta solución
óptima?
19. Nonlinear Programming
• Existen muchos tipos de problemas de
programación no lineal, dependiendo de las
características de las funciones involucradas;
restricciones y función objetivo.
• Existen varios algoritmos para resolver cada
uno de los diferentes tipos de problemas.
• El ejemplo planteado recibe el nombre de:
20. Nonlinear Programming
• Programación cuadrática
• Se distingue de la programación lineal porque,
aunque tiene restricciones lineales, la función
objetivo es cuadrática.
• La solución de este tipo de problemas es
importante porque numerosas aplicaciones se
ajustan al modelo y, muchas otras, se pueden
resolver mediante una sucesión de
aproximaciones de programación cuadrática.
21. Nonlinear Programming
• Programación cuadrática
• Si se cumplen las condiciones:
• Karush – Kuhn – Tucker (KKT) es posible
resolver estos problemas mediante una
versión modificada del algoritmo simplex.
• La modificación al método simplex consiste en
agregar una regla de entrada restringida:
• Al elegir la variable básica entrante, se excluye cualquier
variable no básica cuya variable complementaria sea
básica.
22. Nonlinear Programming
• Uso de software
• La mayoría de los algoritmos para resolver
problemas de programación lineal forman
parte de diversos programas de computadora.
• En las siguientes diapositivas se muestra el
proceso seguido para determinar la solución
óptima empleando la herramienta SOLVER de
Excel.
23. Nonlinear Programming
• Programación cuadrática en Solver de Excel.
• El primer paso es introducir los datos de las
restricciones en forma de tabla.
26. Nonlinear Programming
• Programación cuadrática en Solver de Excel.
• Agregar los coeficientes de la función objetivo.
Coeficientes de x, y.
Coeficientes de x2, y2.
27. Nonlinear Programming
• Programación cuadrática en Solver de Excel.
• Agregar los coeficientes de la función objetivo.
• El coeficiente de y2 es cero, porque la función
objetivo no contiene dicho término.
28. Nonlinear Programming
• Programación cuadrática en Solver de Excel.
• Agregar los coeficientes de la función objetivo.
• El coeficiente de y2 es cero, porque la función
objetivo no contiene dicho término.
30. Nonlinear Programming
• Programación cuadrática en Solver de Excel.
• Elegir celdas para los valores de x, y.
Coeficientes de x, y.
Coeficientes de x2, y2.
31. Nonlinear Programming
• Programación cuadrática en Solver de Excel.
• Elegir celdas para los valores de x, y.
Los valores de x, y se irán
cambiando para maximizar
la función objetivo
Coeficientes de x, y.
Coeficientes de x2, y2.
32. Nonlinear Programming
• Programación cuadrática en Solver de Excel.
• Agregar una tabla que, mediante fórmulas,
calculará la cantidad de recursos empleados
con base en los valores de x, y.
33. Nonlinear Programming
• Programación cuadrática en Solver de Excel.
• Las fórmulas que se emplearán son:
• Las celdas C4, C5, C6, D4, D5, D6 hacen referencia a la tabla de datos de
las restricciones anotadas en la parte superior de la hoja de Excel
34. Nonlinear Programming
• Programación cuadrática en Solver de Excel.
• También hace falta una celda en la que se
calcula el valor de la función objetivo.