Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Carrera:
1. PROGRAMACION NO LINEAL
2. APLICACIONES DE MUESTRA
EJEMPLO
Ilustración 1
Por lo tanto el costo unitario de producir y distribuir el artículo está fijo en 𝑐 , la ganancia de la
empresa producir y vender 𝑥 unidades está dada por la 𝑓𝑢𝑛𝑐𝑖ó𝑛 𝑛𝑜 𝑙𝑖𝑛𝑒𝑎𝑙 ∶ 𝑃(𝑥) = 𝑥𝑝(𝑥) −
𝑐𝑥.
Ilustración 2
Productos de la empresa tiene una función de gran cada uno de los 𝑛 productos de la empresa
tiene una función de ganancia parecida, por lo que la función objetivo global es una suma de
funciones no lineales.
𝑛
𝑓(𝑥) = ∑ 𝑃𝑗 (𝑥𝑗 )
𝑗=𝑖
A veces se dispone de descuentos por cantidad para volúmenes grandes con lo que el costo
marginal de enviar la unidad más puede seguir un patrón como el que se muestra a
contginuacion.
Ilustración 3
En consecuencia el costo que resulta de embarcar por unidades está dado por la función no
lineal 𝐶(𝑥) qué es una función lineal por partes com pendiente igual al costo marginal, como
se muestra a continuación.
Ilustración 4
Consecuencia, si cada combinación de origen y destino tiene una función de costo similar, es
decir, si el costo de enviar 𝑥𝑖𝑗 unidades del origen 𝑖(𝑖 = 1,2,3, … , 𝑚) al destino
𝑗(𝑗 = 1,2,3, … , 𝑛) está dado por la función no lineal 𝐶𝑖𝑗 (𝑥𝑖𝑗 ), entonces la función objetivo
global que se va minimizar es.
𝑚 𝑛
Aún con esta función objetivo no lineal es normal que las restricciones sean del tipo lineales
especiales que se ajustan al modelo de problemas de transporte.
Cuando un problema de programación no lineal tiene sólo una o dos variables, se puede
representar en forma gráfi ca de una manera muy parecida al ejemplo de la 𝑊𝑦𝑛𝑑𝑜𝑟 𝐺𝑙𝑎𝑠𝑠,
de programacion lineal.
El siguiente ejemplo tiene una restriccion no lineal 9𝑥12 + 5𝑥22 ≤ 216 en lugar de la segunda y
La solución óptima sigue siendo (𝑥𝑖 , 𝑥2 ) = (2,6). La solución óptima pudo haber sido FEV con
una función objetivo diferente (𝑣𝑒𝑟𝑖𝑓𝑖 𝑞𝑢𝑒 𝑍 = 3𝑥1 + 𝑥2 ), pero el hecho de que no necesite
serlo significa que ya no se puede aprovechar la gran simplifi cación que se utiliza en
programación lineal que permite limitar la búsqueda de una solución óptima para las
soluciones FEV.
Supongamos que supongamos que 𝑍 = 54𝑥1 − 9𝑥12 + 78𝑥2 − 13𝑥22 , donde la solución
óptima es (𝑥1 , 𝑥2 ) = (3,3), que está dentro de la región factible. Por lo que es necesario que
un algoritmo general resuelva el problema de este tipo y tome en cuenta todas las soluciones
en la región factible y no sólo aquellas que están sobre la frontera.
Ilustración 6
Estos tipos de problemas se pueden mostrar de muchas formas distintas. Diferente el método
simplex para la programación lineal no dispone de un algoritmo que resuelva todos estos tipos
de especiales problemas. Sino que se han desarrollado algoritmos para algunas clases de
problemas de programación no lineal.
OPTIMIZACIÓN NO RESTRINGIDA
Estos no tienen restricciones, entonces la función objetivo es sencillamente 𝑚𝑎𝑥𝑖𝑚𝑖𝑧𝑎𝑟 𝑓(𝑥)
sobre todos los valores de x. La condición necesaria para que una solución específica de x sea
óptima es una función diferenciable.
𝜕𝑓
= 0 𝑒𝑛 𝑥 = 𝑥 ∗ , 𝑝𝑎𝑟𝑎 𝑗 = 1,2, … , 𝑛.
𝜕𝑥𝑗
este tipo.
Ilustración 8
La solución óptima de un problema con una sola variable es x igual a cero aún cuando la
derivada ahí es negativa y no cero. Como el ejemplo visto tiene una función cóncava para
maximizar sujeta a una restricción de no negatividad, su derivada será menor o igual a cero en
𝑥 igual a cero, es una condición necesaria y suficiente para que 𝑥 sea igual a cero y sea óptima.
Un problema que tiene algunas restricciones de no negatividad y que no tiene restricciones
PROGRAMACIÓN CUADRÁTICA
Estas tienen restricciones lineales, ahora son objetivo puede ser cuadrática. Entonces la única
diferencia entre esto y un problema de programación lineal es que algunos términos de la
función objetivo incluyen el cuadrado de una variable a un producto de dos variables. Se han
desarrollado muchos algoritmos para manejar este caso, el supuesto adicional de que la
función objetivo es cóncava. La programación cuadrática es muy importante porque las
formulaciones de este tipo surgen de manera natural natural en muchas aplicaciones. Sin
embargo otra razón por la que es importante es que al resolver problemas generales de
optimización restringida literalmente se puede obtener la solución de una sucesión de
aproximaciones de programación cuadrática.
PROGRAMACIÓN CONVEXA
Esta abarca una amplia clase de problemas, entre los cuales, como casos especiales, se puede
mencionar todos los tipos anteriores cuando la función objetivo es una función cóncava que
debe maximizarse.
Estos supuestos son suficientes para asegurar que un máximo local es un global
PROGRAMACIÓN SEPARABLE
Esta es un caso ese especial de la programación convexa, en donde el supuesto adicional es
La función separable es una función que cada término incluye una sola variable por lo que la
función se puede separar en la suma de funciones de varias variables individuales.
PROGRAMACIÓN NO CONVEXA
Esto incluye todos los problemas de programación no lineal que no satisfacen los supuestos de
programación convexa. Aun cuando se tenga éxito en encontrar un máximo local, no hay una
garantía de que sea también un máximo global. Entonces no se cuenta con un algoritmo que
garantice encontrar una solución óptima para todos estos problemas, sin embargo existen
algunos algoritmos adecuados para encontrar máximos locales, en especial cuando las formas
de funciones no lineales no se desvían demasiado de aquellas de su uso para programación
convexa se pueden resolver sin muchas dificultades mediante métodos especiales.
PROGRAMACIÓN GEOMÉTRICA
Cuando se aplica programación de alinear a problemas de diseño de ingeniería, muchas veces
la función objetivo y las funciones de restricción toman la forma 𝑔(𝑥) = ∑𝑁
𝑖=1 𝐶𝑖 𝑃𝑖 (𝑥) donde
𝑎𝑖1 𝑎𝑖2 𝑎𝑖𝑛
𝑃𝑖 (𝑥) = 𝑥1 𝑥2 … 𝑥𝑛 , para 𝑖 = 1,2, … , 𝑁.
En estos casos, 𝐶𝑖 y 𝑎𝑖𝑗 con las frecuencias representan las constantes físicas mientras que XJ
son las variables de diseño estas funciones por lo general son no cónvexas, por lo que las
técnicas de programación convexa no se pueden aplicar en esta forma directa a estos
problemas de programación geométrica. Pero existe un caso importante en el que el problema
se puede transformar en un problema de programación convexa equivalente. Este caso es
donde todos los coeficientes 𝐶𝑖 de cada función son estrictamente positivos o sea las funciones
son polinomios positivos generalizados y la función objetivo se tiene que minimizar.
PROGRAMACIÓN FRACCIONAL
Este procedimiento de búsqueda siempre se puede aplicar cuando 𝑓(𝑥) es cóncava, la
segunda derivada sea negativa o cero para toda 𝑥, la segunda derivada sea negativa o cero
para toda 𝑥 ∗ es que
Ilustración 9
𝑑𝑓(𝑥)
• 𝑑𝑥
> 0 𝑠𝑖 𝑥 < 𝑥 ∗
𝑑𝑓(𝑥)
• = 0 𝑠𝑖 𝑥 < 𝑥 ∗
𝑑𝑥
𝑑𝑓(𝑥)
• 𝑑𝑥
< 0 𝑠𝑖 𝑥 < 𝑥 ∗
RESUMEN
1. Seleccione la tolerancia de error de x y encuentre la cota inferior actual para x y cota
superior a la actual para x iniciales por inspección o mediante la ubicación de
cualesquiera valores respectivos de x en los cuales ha derivado hacia positiva y
negativa.
a. Itera
2. Realice la regla de detención.
PROBLEMAS DE COMPLEMENTARIEDAD
Aunque el método de bisección es un procedimiento intuitivo y directo, tiene la desventaja de
que converge de una manera relativamente lenta hacia una solución óptima. Para reducir esta
tolerancia al error a menos de 0.0001 se requerirían otras siete iteraciones.
RESUMEN
1. Seleccionar ∈ encontrar la solucion de prueba inicial 𝑥𝑖 por inspeccion. Establecer 𝑖 =
1.
2. Iterar
a. Calcular 𝑓 ′ (𝑥𝑖 ) y 𝑓 ′′ (𝑥𝑖 )
𝑓′ (𝑥 )
b. Establecemos 𝑥𝑖+1 = 𝑥𝑖 − 𝑓′′ (𝑥𝑖 )
𝑖
3. Realizmos regla de detencion.
Existen varios procedimientos de busqueda para serolver estos problemas. Uno de estos “el
procedimiento de busqueda del gradiante”, este identifica y utiliza la direccion de mivimiento,
desde la solucion de prueba actual, maximiza a la taza actual se incrementa f(x). esta idea es
caracteristica central de muchos algoritmos que utilizan para llevar acabo una optimizacion
restringida.
METODO DE BISECCION
1. Elejimos ∈ y cualquier solucion de prueba inicial x’. Vaya a la regla de detencion.
2. Iteracion
𝑑𝑓(𝑥)
a. Evaluar 𝑑𝑥
para x=x’
𝑑𝑓(𝑥)
b. Evaluar 𝑑𝑥
≥ 0 redefina 𝑥=x’
𝑑𝑓(𝑥)
c. Evaluar 𝑑𝑥
≤ 0 redefina 𝑥=x’
𝑥+̇𝑥̅
d. Seleccionar una nueva 𝑥 ′ = 2
3. Realizmos regla de detencion.
Aquí La meta era alcanzar, en algún momento, un punto en el que la derivada fuera de cero. Ya
que se tienen inumerables direcciones hacia donde moverse, esto corresponde a las tasas de
proporcionales posibles donde las respectivas variables pueden variar.
Suponga que 𝑓(𝑥), 𝑔1 (𝑥), 𝑔2 (𝑥), . . , . . 𝑔𝑚 (𝑥) Son funciones diferenciables que satisfacen
ciertas condiciones de regularidad. Entonces, 𝑋 ∗= (𝑥1 ∗, 𝑥2 ∗, . . , 𝑥𝑚 ∗)puede ser una solución
óptima para el problema de programación no lineal, sólo si existen m números u1,u2,..um, que
satisfagan todas las siguientes condiciones KKT:
Debe hacerse notar que el cumplimiento de estas condiciones no garantiza que la solución sea
óptima. Como se resume en la última columna de la tabla 12.4, son necesarios ciertos
supuestos de convexidad adicionales para obtener esta garantía. Estos supuestos se
establecen de manera formal en la siguiente extensión del teorema.
EJEMPLO:
Maximizar 𝑓(𝑥) = l n(𝑥1 + 1) + 𝑥2 , sujeta a 2𝑥1 + 𝑥2 ≤ 3 y 𝑥1 ≥0, 𝑥2 ≥0,
donde ln denota el logaritmo natural. De esta forma, m=1 (una restricción funcional) y
𝑔1 (x) = 2𝑥1 + 𝑥2 , de manera que 𝑔1 (𝑥) es convexa. Aún más, es fácil verificar que 𝑓(𝑥) es
cóncava. Entonces se puede aplicar el corolario, por lo que cualquier solución que satisfaga las
condiciones KKT será en definitiva una solución óptima. Al aplicar las fórmulas en el teorema,
se obtienen las siguientes condiciones KKT para este ejemplo:
1
1. (𝑗 = 1). 𝑥 − 2𝑢 ≤ 10.
1
2. (𝑗 = 1). 𝑥1 (1𝑥1 ± 2𝑢1 ) = 0.
1. (𝑗 = 2). 1 − 𝑢1 ≤ 0.
2. (𝑗 = 2). 𝑥2 (1 − 𝑢1 ) = 0.
3. 2𝑥1 + 𝑥2 − 3 ≤ 0.
4. 𝑢1(2𝑥1 + 𝑥2 − 3) = 0.
5. 𝑥1 ≥ 0, 𝑥1 ≥ 0.
6. 𝑢1 ≥ 0.
A continuación se describen los pasos para resolver las condiciones KKT para este ejemplo.
8. PROGRAMACION CUADRATICA
Para concretar, primero considere el ejemplo anterior. A partir de la forma que se presentó en
la sección anterior, sus condiciones KKT son las siguientes.
9. PROGRAMACION SEPARABLE
Ahora se estudiará otra clase llamada programación separable, para la que se puede encontrar
una aproximación tan cercana como se quiera con un problema de programación lineal que
tiene un número mayor de variables. La programación separable supone que la función
objetivo 𝑓 (𝑥) es cóncava, todas las restricciones 𝑔𝑖(𝑥) son convexas y todas estas funciones
son funciones separables (lo que signifi ca que cada término incluye una sola variable). Sin
embargo, para simpli-fi car la presentación, esta sección se centra en el caso especial en el que
las funciones 𝑔𝑖(𝑥) convexas y separables, en realidad son funciones lineales como las de
programación lineal. En consecuencia, sólo la función objetivo requerirá un tratamiento
especial.
Las curvas cóncavas de la ganancia se presentan con mucha frecuencia. Por ejemplo, puede ser
posible vender una cantidad limitada de algún producto a un cierto precio y después una
cantidad adicional a un precio menor, y tal vez, otra cantidad adicional a un precio todavía
menor. Deigual manera, puede ser necesario comprar materias primas a fuentes cada vez más
costosas. Otra situación común es aquella en la que debe emplearse un proceso de producción
más caro, para aumentar la tasa de producción sobre cierta cantidad.
Este tipo de situaciones puede conducir a cualquiera de las curvas de ganancia que se mues-
tran en la fi gura 12.15. En el caso 1, la pendiente decrece por intervalos, de manera que
𝑓𝑗 (𝑥𝑗 ) es una función lineal por partes. En el caso 2, la pendiente puede decrecer en forma
continua al aumentar 𝑥𝑗 , de manera que 𝑓𝑗 (𝑥𝑗 ) es una funcióncóncava general. Cualquier
función de este tipo se puede aproximar tanto como se quiera por unafunción lineal por partes
y este tipo de aproximación se usa, según sea necesario, para problemas de programación
separable.
Ilustración 11
Ilustración 12
En esta sección se presentarán de manera breve algunos tipos de enfoques que se utilizan para
resolver el problema general de programación convexa [donde la función objetivo 𝑓(𝑥) que se
debe maximizar es cóncava y las funciones de restricción 𝑔𝑖(𝑥) son convexas] y después se
presentará un ejemplo de un algoritmo para programación convexa. No existe un algoritmo
estándar único que se pueda usar siempre para resolver problemas de programación convexa.
Se han desarrollado muchos algoritmos diferentes, cada uno con ventajas desventajas, y la
investigación continúa activa en esta área. En términos generales, la mayor parte de estos
algoritmos cae dentro de alguna de las tres categorías siguientes.
Una categoría la constituyen los algoritmos de gradiente, en los que se modifi ca de alguna
manera el procedimiento de búsqueda del gradiente de la sección 12.5 para evitar que la
trayectoria de búsqueda penetre la frontera de restricción. Por ejemplo, un método popular es
el método de gradiente reducido generalizado (GRG). El Excel Solver emplea el método GRG
para resolver problemas de programación convexa. (Como se explica en la sección siguiente, el
Premium Solver también incluye una opción evolutiva que fue diseñada para tratar con
problemas de programación no convexa.)
hay muchos tipos diferentes de problemas de programación no convexa. Algunos son mucho
más difíciles de resolver que otros.
Por ejemplo, un problema de maximización donde la función objetivo está cerca de ser
convexa por lo general es mucho más difícil de resolver que uno donde la función objetivo es
casi cóncava.
Como ejemplo, LINDO Systems (cuyos procedimientos son LINDO, LINGO y What’s Best!) ha
incorporado un optimizador global en el solucionador avanzado que comparten algunos de sus
productos de software. En particular, LINGO y What’s Best! tienen una función de inicio
múltiple para generar de manera automática un número de puntos de inicio para su
solucionador de programación no lineal con el fi n de encontrar con rapidez una buena
situación. Si se selecciona la opción global,en seguida estos paquetes emplean el optimizador
global. Este optimizador convierte un problema de programación no convexa (incluso aquellos
cuya formulación involucra funciones lógicas como IF, AND, OR y NOT) en algunos
subproblemas que son solturas de programación convexa de partes del problema original.
Después se utiliza la técnica de ramifi cación y acotamiento para buscar de manera exhaustiva
entre los subproblemas. Una vez que el procedimiento llega a su terminación, se garantiza que
la función que se encuentre sea una solución óptima global. (La otra conclusión posible es que
el problema no tenga soluciones factibles.) La versión para estudiantes de este optimizador
global se incluye en la versión de LINGO que se proporciona en el sitio en internet de este
libro. Sin embargo, está limitado a problemas relativamente pequeños (con un máximo de
cinco variables). La versión profesional del optimizador global ha resuelto algunos problemas
mucho más grandes.
CONCLUCIONES
Algunas veces es viable reformular las no linealidades para que se ajusten al formato de
programación lineal, como se puede hacer con los inconvenientes de programación separable.
A la inversa del caso del procedimiento simplex para programación lineal, no existe un
algoritmo eficiente que se logre usar para solucionar todos los problema de programación no
lineal. Por cierto, ciertos de dichos inconvenientes son imposibles de solucionar
satisfactoriamente por ningún procedimiento, empero se hicieron enormes progresos en
ciertas clases relevantes de inconvenientes que integran programación cuadrática,
programación convexa y ciertos tipos especiales de programación no convexa, Se dispone de
una extensa variedad de algoritmos que casi continuamente poseen un óptimo manejo en
dichos casos.
REFERENCIAS