Professional Documents
Culture Documents
UNIDAD III
PROGRAMACIÓN NO LINEAL
I. INTRODUCCIÓN
Los siguientes ejemplos ilustran unos cuantos de los muchos tipos importantes de problemas a los que
se ha aplicado la programación no lineal.
Otra razón por la que pueden surgir no linealidades en la función objetivo es que el costo marginal de
producir otra unidad más de un producto dado puede variar con el nivel de producción. Por ejemplo, el
costo marginal puede disminuir cuando aumenta el nivel de producción, gracias al efecto de curva de
aprendizaje (mayor eficiencia con más experiencia). Por otro lado, pueden aumentar a causa de ciertas
2
medidas especiales, como tiempos extra o instalaciones de producción más costosas, necesarias para
aumentar la producción.
La no linealidad también puede surgir en las funciones de restricción g i (x ) en forma bastante
parecida. Por ejemplo, si existe una restricción de presupuesto sobre el costo total de producción, la
función de costo será no lineal si el costo marginal de producción varía como se acaba de describir.
Para restricciones sobre otro tipo de recursos, g i (x ) será no lineal siempre que el uso del recurso
correspondiente no sea estrictamente proporcional a los niveles de los respectivos productos.
Los problemas de programación no lineal se presentan de muchas formas distintas. Al contrario del
método símplex para programación lineal, no se dispone de un algoritmo que resuelva todos estos tipos
especiales de problemas. En su lugar, se han desarrollado algoritmos para algunas clases (tipos
especiales) de problemas de programación no lineal. Se introducirán las clases más importantes y
después se describirá cómo se pueden resolver algunos de estos problemas.
Optimización no restringida
Los problemas de optimización no restringida no tienen restricciones, por lo que la función objetivo es
sencillamente
Maximizar f(x)
Sobre todos los valores x= (x1, x2,…, xn). La condición necesaria para que una solución específica x= x*
sea óptima cuando f(x) es una función diferenciable es
∂f
=0 en x= x* para j= 1, 2,..., n.
∂x j
Cuando f(x) es cóncava, esta condición también es suficiente, con lo que la obtención de x* se reduce a
resolver el sistema de las n ecuaciones obtenidas al establecer las n derivadas parciales iguales a cero.
Por desgracia, cuando se trata de funciones no lineales f (x), estas ecuaciones suelen ser no lineales
también, en cuyo caso es poco probable que se pueda obtener una solución analítica simultánea
Cuando una variable X: tiene una restricción de no negatividad, x¡ >= 0, la condición necesaria (y tal
vez) suficiente anterior cambia ligeramente a
∂f
∂x j
donde a) <= 0 en x = x* si xj*=0 y b) = 0 en x = x* si xj*>0
para cada j de este tipo. Donde la solución óptima de un problema con una sola variable es x = 0 aun
cuando la derivada ahí es negativa y no cero. Como este ejemplo tiene una función cóncava para
maximizar sujeta a una restricción de no negatividad, el que su derivada sea menor o igual a 0 en x = 0,
es una condición necesaria y suficiente para que x = 0 sea óptima.
Un problema que tiene algunas restricciones de no negatividad y que no tiene restricciones funcionales
es un caso especial (m = 0) de la siguiente clase de problemas.
La teoría de optimización clásica considera el uso del cálculo diferencial para determinar puntos de
máximos y mínimos (extremos) para funciones restringidas y no restringidas. Los métodos expuestos
pueden no ser adecuados para cálculos numéricos eficientes. Sin embargo, la teoría subyacente
proporciona la base para visualizar la mayoría de los algoritmos de programación no lineal
Un punto extremo de una función f(x) define un máximo o un mínimo de la función. Matemáticamente,
un punto x0 = (x1,...xj,...xn) es un máximo si
f(X0+h) <=f(X0)
para toda h = (h1,….hj, ,...hn) y es suficientemente pequeña para toda j.
En otras palabras, X0 es un valor máximo si el valor de f en cada punto de la proximidad de X0 no es
mayor que f(x). En forma parecida, X0 es un mínimo si para h, tal como se definió anteriormente,
F(x6)=max{f(x1), f(x3), f(x6)}
La figura ilustra los máximos y mínimos de una función f (x) de una sola variable dentro del
intervalo [a, b]. [El intervalo a<= x <= b no significa que no haya restricciones sobre f(x)]. Los puntos
x1, x2, x3, x4, x5, x6 son extremos de f(x), esto incluye a x1, x3, x6, como máximos, y x2 y x4 como mínimos
ya que f(x6) es un máximo global o absoluto, mientras que f(x1) y f(x3) son máximos locales o relativos.
De igual manera f(x4) es un mínimo local y f(x2) es un minino global.
Aunque x1 (en la figura) es un punto máximo, se diferencia de los otros máximos locales porque el
valor de f correspondiente a por lo menos un punto en el entorno de x1 es igual a f(x1). En este aspecto,
x1 se llama máximo débil comparado con x3, por ejemplo, donde f(x3) define un máximo fuerte. Un
máximo débil por consiguiente, implica (un numero infinito) de máximos alternativos. Pueden
obtenerse resultado similares para el mínimo débil en x4, En general, X0 es un máximo débil si f(X0+h)
<=f(X0), y un máximo fuerte si f(X0+h) <f(X0), donde h es tal como se definió anteriormente.
Una observación interesante acerca de los extremos en la figura es que la primera derivada de
f(pendiente) se anula en estos puntos. Sin embargo, esta propiedad no es única de los extremos. Por
ejemplo, la pendiente de f(x) en x5 es cero.
Debido a que una primera derivada (generalmente, el gradiente) que se hace cero tiene un papel
importante en la identificación de los máximos y mínimos, es esencial definir de manera separada
puntos tales como x5. Estos puntos se conocen como de inflexión [o en casos especiales de silla]. SI un4
punto con pendiente (gradiente) cero no es un extremo (máximo o mínimo), entonces debe ser,
automáticamente, un punto de inflexión.
Problema de programación
no restringida de una variable
cuando la función es cóncava.
5
La idea que fundamenta el procedimiento de búsqueda en una dimensión es muy intuitiva; se
basa en el hecho de que la pendiente (derivada) sea positiva o negativa en una solución prueba indica
definitivamente si la mejora está a la derecha o a la izquierda, respectivamente. Así, si la derivada
evaluada para un valor específico de x es positiva, entonces x* debe ser más grande que esta x (vea la
figura 2), con lo que x se convierte en una cota inferior para las soluciones prueba que en adelante se
tomarán en cuenta. Por el contrario, si la derivada es negativa, entonces x* debe ser más chica que esta
x, y x se convierte en una cota superior. Una vez identificadas ambas cotas, cada nueva solución prueba
que se selecciona entre ellas proporciona una nueva cota más estrecha de uno de los dos tipos, cerrando
la búsqueda cada vez más. Siempre y cuando se use una regla razonable para elegir cada solución
prueba en esta forma, la sucesión de soluciones prueba debe converger a x*. En la práctica, esto
significa continuar la sucesión, hasta que la distancia entre las cotas sea lo suficientemente pequeña
como para que la siguiente solución prueba se encuentre dentro de una tolerancia de error de x*
especificada.
Aunque existen varias reglas razonables para elegir cada nueva solución prueba, la que se usa en
el siguiente procedimiento es la regla del punto medio (tradicionalmente llamada de búsqueda de
Bolzano), que dice que se seleccione el punto medio entre las dos cotas actuales.
Resumen del procedimiento de búsqueda en una dimensión
Paso iterativo:
df ( x)
Se evalúa dx en x=x'.
df ( x)
≥0
Si dx se hace x = x'.
df ( x)
≤0
Si dx se hace x = x'.
x+x
x´=
Se elige una nueva 2
Regla de detención: si x − x ≤ 2ε , de manera que la nueva x' se encuentra a una distancia de x* menor
que ε , el proceso termina. De otra manera, se regresa al paso iterativo.
6
OPTIMIZACIÓN NO RESTRINGIDA DE VARIAS VARIABLES
Ahora considere el problema de maximizar una función cóncava f (x) de variables múltiples, x = (xj,
x2,..., xn), en la que no se tienen restricciones sobre los valores factibles. Suponga de nuevo que la
condición necesaria y suficiente para la optimalidad, dada por el sistema de ecuaciones que se obtiene
al establecer las respectivas derivadas parciales iguales a cero), no se puede resolver en forma analítica,
por lo que debe emplearse un procedimiento de búsqueda numérico.
Ahora se tienen innumerables direcciones posibles hacia dónde moverse: corresponden a las tasas
proporcionales posibles a las cuales las respectivas variables pueden cambiar. La meta es alcanzar
eventualmente un punto en el que todas las derivadas parciales sean (en esencia) 0. Por tanto, la
extensión del procedimiento de búsqueda en una dimensión requiere emplear los valores de las
derivadas parciales para seleccionar la dirección específica en la que conviene moverse. Esta selección
implica el uso del gradiente de la función objetiva como se describirá en seguida.
Como se supone que la función objetivo f(x) es diferenciable, posee un gradiente denotado por
∇ f ( x ) en cada punto x. En particular, el gradiente en un punto específico x = x' es el vector cuyos
elementos son las derivadas parciales respectivas evaluadas en x = x', entonces
∂f ∂f ∂f
∇f ( x´) =
∂x , ∂x ,..., ∂x
en x=x´
1 2 n
El significado del gradiente es que el cambio (infinitesimal) en x, que maximiza la tasa a la que f(x)
aumenta, es el cambio que es proporcional a ∇ f ( x ) . Para expresar geométricamente esta idea, la
"dirección" del gradiente, ∇ f ( x´) , se interpreta como la dirección del segmento de recta dirigido
(flecha) que va del origen (0, 0,..., 0) al punto ( ∂f ∂x1 , ∂f ∂x 2 ,... , ∂f ∂x n ), donde ∂f ∂x j se
evalúa en xj = x'j. Entonces, se puede decir que la tasa a la que aumenta f(x) se maximiza si los cambios
(infinitesimales) en x se hacen en la dirección del gradiente ∇ f ( x ) . Como el objetivo es encontrar la
solución factible que maximice f(x), parece adecuado intentar moverse lo más posible en la dirección
del gradiente.
forma de hacerlo es continuar el movimiento en una dirección fija a partir de la solución prueba actual,
sin detenerse, hasta que f(x) deje de aumentar. Este punto de detención sería la siguiente solución
prueba, por lo que se debe volver i calcular el gradiente para determinar la nueva dirección de
movimiento. Con este enfoque, cada iteración incluye cambiar la solución prueba actual x' como sigue:
Se modifica x´= x´+t * ∇ f ( x´) , en donde t que se maximiza f ( x´+ t∇ f ( x´)) ; es decir,
f ( x´+t * ∇f ( x´)) = max f ( x´+t∇f ( x´)) Note que f ( x´+t∇ f ( x´)) es sencillamente f(x) en
t ≥0
∂f
donde xj x j = x j ´+t ( ∂x ) x =x´ , para j=1,2,…,n.
j
y estas expresiones para la xj incluyen sólo constantes y t, de manera que f(x) se convierte en una
función de una sola variable t.] Las iteraciones de este procedimiento de búsqueda del gradiente
7
∂f
continúan hasta que ∇f ( x) = 0 dentro de una pequeña tolerancia £, o sea, hasta que ≤ε para j=
∂x j
1, 2,..., n
Por lo general, la parte más difícil del procedimiento de búsqueda del gradiente es encontrar t*, el valor
de t que maximiza f en la dirección del gradiente, en cada iteración. Como x y ∇ f ( x ) tienen valores
fijos para la maximización y como f(x) es cóncava, este problema se debe ver como el de maximizar
una función cóncava de una sola variable t. En efecto, se puede resolver con el procedimiento de
búsqueda en una dimensión (en donde la cota inferior inicial sobre t debe ser no negativa por la
restricción de t >=0). De otra manera, si f es una función simple, es posible que se pueda obtener una
solución analítica estableciendo la derivada con respecto a t igual a cero y despejando.
Un método clásico para manejar este problema es el método de los multiplicadores de Lagrange. Este
procedimiento comienza por plantear la función lagrangiana.
m
h( x, λ ) = f ( x) − ∑ λi [ g i ( x) − bi ]
i =1
en donde las nuevas variables λ = (λ1 , λ2 ,..., λm ) se llaman multiplicadores de Lagrange. Note el
hecho fundamental de que para los valores factibles de x,
g i ( x ) − bi = 0 para toda i
entonces h( x, λ) = f ( x ) . Por lo tanto, se puede demostrar que si ( x, λ) = ( x*, λ*) es un mínimo o
máximo local o global para la función no restringida h( x, λ) , x* es el punto crítico correspondiente
para el problema original. Como resultado, el método se reduce ahora al análisis de h( x, λ) por el
procedimiento descrito para optimización no restringida. Se igualan a cero las n + m derivadas
parciales,
∂h ∂f m
∂g i
= − ∑λi = 0 para j=1,2,…,n,
∂x j ∂x j i =1 ∂x j
∂h
= −g i ( x ) + bi = 0 , para i=1,2,…,m
∂λ j
y entonces se obtienen los puntos críticos al despejar ( x, λ) de estas ecuaciones. Observe que las
últimas m ecuaciones son equivalentes a las restricciones del problema original, de manera que sólo se
consideran las soluciones factibles. Después del análisis adicional para identificar el máximo o mínimo
global de h(⋅) , el valor de x que resulta es la solución deseada para el problema original.
Desde un punto de vista práctico y de cálculo, el método de los multiplicadores de Lagrange no es un
procedimiento eficaz en particular. Con frecuencia es en esencia imposible resolver las ecuaciones para
8
obtener los puntos críticos. Es más, aun cuando sea posible obtenerlos, el número de puntos críticos
puede ser tan grande (a menudo infinito) que no será práctico intentar la identificación de un máximo o
un mínimo global. Sin embargo, para ciertos tipos de problemas pequeños, algunas veces puede usarse
este método con éxito.
A manera de ilustración, considere el ejemplo presentado antes. En este caso
h( x1 , x2 ) = x12 + 2 x2 − λ ( x12 + x22 − 1) , de manera que
∂h
= 2 x1 − 2λx1 = 0 ,
∂x1
∂h
= 2 − 2λx2 = 0
∂x2
∂h
= −( x12 + x22 −1) = 0
∂x
La primera ecuación implica que λ = 1, o x1 = 0. Si λ = 1, entonces las otras dos ecuaciones implican
que x2 = 1 y x1= 0. Si x1 = 0, entonces la tercera ecuación implica que x2 = ±1- Así, los dos puntos
críticos para el problema original son (x1,x2) = (0, 1)y (0, -1). Así, es evidente que estos dos puntos son
los respectivos máximo y mínimo globales.
Los multiplicadores de Lagrange tienen una interpretación económica interesante e importante. Como
antes dijimos, estos multiplicadores en PNL tienen casi la misma interpretación que los precios sombra
en la PL. En otras palabras, en el punto óptimo, el valor del multiplicador de Lagrange es la tasa de
cambio instantánea del VO(el valor óptimo de la función objetivo), cuando el í-ésimo LD(valor en
solución), bi aumenta, permaneciendo iguales todos los demás datos. Otra forma de expresar este
concepto en términos de economía, es que el i-esimo multiplicador de Lagrange refleja el valor
marginal del i-ésimo recurso. Por consiguiente, sus unidades son
Por ejemplo, un fabricante desea minimizar el costo total de un producto, el objetivo estaba expresado
en dólares, bajo la restricción de que la producción total, digamos en toneladas, de dos productos debía
ser igual a K. Así pues, las unidades del multiplicador de Lagrange para esta restricción son dólares por
tonelada, y el valor de la misma es el costo marginal instantáneo de producción correspondiente a la
R-ésima unidad.
Sin embargo, los números correspondientes a la sensibilidad tienen un significado un poco más
restringido que en el Informe de sensibilidad de PNL. Para modelos de PNL, el multiplicador de
Lagrange de una restricción es la tasa de cambio inicial (es decir, instantánea) en el valor óptimo de la
función objetivo, cuando el LD de la restricción aumenta. Igual que los precios sombra en la PL, un
multiplicador de Lagrange positivo indicaría que al aumentar el LD se "beneficiaría" inicialmente el
valor de la función objetivo en un modelo Max, e inicialmente se "perjudicaría” el valor de la función
objetivo en un modelo Min. Un multiplicador de Lagrange negativo indicaría que al aumentar el LD se
"perjudicaría” inicialmente el valor de la función objetivo en un modelo Max, y se "beneficiaría"
inicialmente el valor de la función objetivo en un modelo Min. Beneficiar significa un aumento en el
objetivo si es un modelo Max, y una disminución en el objetivo si es un modelo Min. En forma similar,
perjudicar significa una disminución en el objetivo de un modelo Max y un aumento del objetivo en un
9
modelo Min. Sin embargo, a diferencia de lo que aprendimos en el caso de la programación lineal, no
es posible decir sobre qué rango de aumento o disminución del LD es válido dicho multiplicador de
Lagrange. De hecho, en el caso más ordinario, el propio multiplicador de Lagrange cambia en cuanto se
modifica el LD, por lo cual el incremento y el decremento permisibles son cero. Sin embargo, esto no
les impide utilizar el multiplicador de Lagrange para estimar qué pasaría con el valor óptimo si
cambiara el LD.
En forma similar, los valores de gradiente reducido incluidos en el Informe de sensibilidad de PNL de
Solver tienen una interpretación análoga a la de los valores de costo reducido del Informe de
sensibilidad de PL. El gradiente reducido de una variable está relacionado con las restricciones que
imponen un límite o acotamiento superior o inferior para las variables de decisión. Un gradiente
reducido negativo para una variable de decisión indica que aumentar la variable “perjudicara”
inicialmente el valor de la función objetivo en un modelo Max. Mientras que un gradiente reducido
positivo para una variable indica que aumentar dicha variable "perjudicará" inicialmente el valor de la
función objetivo en un modelo Min. Si una variable de decisión está en su acotamiento superior, el
gradiente reducido deberá ser no negativo para que la solución sea óptima en un modelo Max: por lo
contrario, disminuir la variable mejoraría el valor de la función objetivo. Sí una variable de decisión
está en su acotamiento inferior, el gradiente reducido no sería positivo en un modelo Max; y, por lo
contrario, aumentar la variable mejoraría la función objetivo. (Las conclusiones opuestas son aplicables
a los modelos Min.) Si una variable de decisión está entre sus acotamientos superior e inferior, el
gradiente reducido deberá ser cero para que la solución sea óptima.
CONCLUSIONES Y RECOMENDACIONES
La investigación de operaciones tiene como uno de sus temas fundamentales el tratar los problemas de
índole lineal, donde variables y funciones objetivo tienen esta restricción, pero, en la vida no solo nos
encontramos con este tipo de problemas, sino que nos encontramos con otra variedad que requieren
encontrar una solución de optimización, hablamos de los problemas no lineales. Aquí es donde una de
las múltiples herramientas de la Investigación de Operaciones hace aparición, me refiero a la
Programación No Lineal. Su manera de atacar este tipo de problemas es diferente a la lineal, en aquella
programación podemos ver que con el simple uso del método simplex, encontramos la solución de
optimización al problema lineal que lo requiera, aun con lo laborioso que eso implique. En la
Programación no Lineal descubrimos que el hecho de tratar de resolver problemas con distinto grado,
requiere métodos y algoritmos diferentes y avocados a resolver problemas con los grados para los que
fueron diseñados.
Los algoritmos los podemos clasificar en dos ramas: los algoritmos de optimización no restringidos, y
los de optimización restringida, y estos últimos a su vez, con una sola variable, y con múltiples
variables.
Para los algoritmos de optimización no restringidos, nos encontramos con los linealmente restringidos y
los cuadráticos, los dos poseen restricciones lineales, pero en el primero la función objetivo no es
10
Lineal, y en el segundo caso, la función objetivo es cuadrática, ya que incluye el producto de dos
variables o el cuadrado de una de ellas.
Este tipo de problemas se ataca con una extensión del método simplex para poder analizar la función
objetivo no lineal.
Uno de los elementos mas importantes dentro de la optimización restringida son los multiplicadores de
Lagrange, ya que cuando nos encontramos en el punto óptimo, el valor del multiplicador de Lagrange
funciona indicando la tasa de cambio instantánea del valor óptimo de la función objetivo, cuando el í-
ésimo LD, que es el valor en solución, bi aumenta, permaneciendo iguales todos los demás datos.
BIBLIOGRAFÍA
Hillier Frederick S. y Gerald J. Lieberman
Investigación de operaciones
Séptima Edición
Edit. McGraw-Hill México 2003
Págs. 654-656,664-667,670-676,1166-1167
Hamdy A, Taha
Investigación de Operaciones
Quinta Edición
Edit. AlfaOmega México 1995
Págs.837-839
G. D. Eppen, Jeffrey H. Moore y C. P.
SCHMIDT
Investigación de Operaciones en la ciencia
Administrativa
Quinta Edición
Edit. Prentice Hall México 2000
Págs. 337-338
11