nonlinear programming, solved problem
TRANSCRIPT
Nonlinear ProgrammingG. Edgar Mata Ortiz
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.
Nonlinear Programming•Programación lineal
•Con la finalidad de comparar, vamos a comentar un ejemplo de programación lineal.
Nonlinear Programming•Programación lineal
• En esta forma de optimización, las relaciones entre variables y constantes son lineales.
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.
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?
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.
Nonlinear Programming• Ejemplo de programación lineal
• Incluso la función objetivo es lineal.
Nonlinear Programming• La solución se obtiene resolviendo
sistemas de ecuaciones lineales
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
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
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
Nonlinear Programming•Graficar la función objetivo:
• z = 16x+10y – 0.08x2
• Es necesario despejar la variable independiente y, (considerando z = 1,300).
16𝑥 + 10𝑦 − 0.08𝑥2 = 130010𝑦 = −16𝑥 + 0.08𝑥2 + 1300
𝑦 =−16𝑥 + 0.08𝑥2 + 1300
10𝑦 = −1.6𝑥 + 0.008𝑥2 + 130
Nonlinear Programming• Tabulación para graficar la función objetivo:
𝑦 = −1.6𝑥 + 0.008𝑥2 + 130
x y0 −1.6𝑥 + 0.008𝑥2 + 130 = −1.6(0) + 0.008(0)2+130 = 130
20 −1.6𝑥 + 0.008𝑥2 + 130 = −1.6(20) + 0.008(20)2+130 = 101.2
40 −1.6𝑥 + 0.008𝑥2 + 130 = −1.6(40) + 0.008(40)2+130 = 78.8
60 −1.6𝑥 + 0.008𝑥2 + 130 = −1.6(60) + 0.008(60)2+130 =
80 −1.6𝑥 + 0.008𝑥2 + 130 = −1.6(80) + 0.008(80)2+130 =
100 −1.6𝑥 + 0.008𝑥2 + 130 = −1.6(100) + 0.008(100)2+130 =
120 −1.6𝑥 + 0.008𝑥2 + 130 = −1.6(120) + 0.008(120)2+130 =
140 −1.6𝑥 + 0.008𝑥2 + 130 = −1.6(140) + 0.008(140)2+130 =
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.
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.
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.
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?
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:
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.
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.
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.
Nonlinear Programming• Programación cuadrática en Solver de Excel.
• El primer paso es introducir los datos de las restricciones en forma de tabla.
Nonlinear Programming• Programación cuadrática en Solver de Excel.
• Agregar los coeficientes de la función objetivo.
Nonlinear Programming• Programación cuadrática en Solver de Excel.
• Agregar los coeficientes de la función objetivo.
Coeficientes de x, y.
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.
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.
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.
Nonlinear Programming• Programación cuadrática en Solver de Excel.
• Elegir celdas para los valores de x, y.
Coeficientes de x, y.
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.
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.
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.
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
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.
Nonlinear Programming• Programación cuadrática en Solver de Excel.
• Fórmula de la celda que se va a maximizar:
Nonlinear Programming• Programación cuadrática en Solver de Excel.
Nonlinear Programming• Una vez que se completa la hoja de Excel con
todas las fórmulas, se emplea SOLVER.
Nonlinear Programming• Datos necesarios para resolver el problema.
Nonlinear Programming• Datos necesarios para resolver el problema.
Nonlinear Programming• Solución generada por SOLVER.
Gracias• https://www.facebook.com/licemata
• https://twitter.com/licemata
• Twitter: @licemata
• http://licmata-math.blogspot.mx/
• http://www.scoop.it/t/mathematics-learning
• http://www.spundge.com/@licmata
• http://www.slideshare.net/licmata
• www.freelibros.org