Вы находитесь на странице: 1из 35

10/12/14

Tema 5. Programación no Lineal Investigación Operativa

CONTENIDOS

1.  Introducción a la programación no lineal

2.  Conceptos previos del Cálculo Infinitesimal

3.  Optimización no restringida unidimensional


3.1. El método de búsqueda lineal en la bisección
3.2. El método de la sección áurea

4. Optimización no restringida multidimensional


4.1. El método del gradiente
4.2. El método de Newton

5. Optimización restringida
5.1. Multiplicadores de Lagrange
5.2. Condiciones de Karush-Kuhn-Tucker
5.3. Programación cuadrática, separable y convexa

1
10/12/14

Tema 5. Programación no Lineal Investigación Operativa

1. Introducción a la Programación no Lineal

Programación lineal à caso especial de la programación matemática en la


que tanto la función objetivo como las restricciones del problema son
lineales.

Sin embargo, el mundo está lleno de sistemas que no se comportan


linealmente.

Algunas situaciones particulares à aproximación lineal, sobre todo


motivada por la eficacia de los métodos de solución lineales

En otros à manejar problemas de programación no lineal.

Debido a la gran cantidad de problemas matemáticos que pueden ser


catalogados como no lineales, no se dispone de un único algoritmo que los
resuelva todos. En su lugar, se han desarrollado algoritmos para algunas
clases (tipos especiales) de programas no lineales.

Tema 5. Programación no Lineal Investigación Operativa

Tipos de problemas no lineales:

•  Optimización no restringida à no hay restricciones y generalmente se


utiliza el cálculo diferencial para determinar máximos o mínimos de la
función objetivo.

•  Optimización restringida à los métodos de solución difieren dependiendo


de la naturaleza de las restricciones.

•  Problemas no lineales con estructuras particulares,


o  programación cuadrática, en la que las restricciones son lineales
pero la función objetivo es cuadrática;
o  programación separable, en la que todas las funciones son
separables, es decir, son funciones en la que cada término incluye
una sola variable, y
o  programación convexa, en la que la función objetivo es cóncava
(maximización) o convexa (minimización) y las restricciones
convexas.

2
10/12/14

Tema 5. Programación no Lineal Investigación Operativa

De forma general, un problema de programación no lineal consiste en deter-


minar x = (x1,...,xn)∈ ℜ tal que

donde gi, i =1,...,m, son funciones reales en las variables de decisión:

• productos de variables de decisión,


• operadores de diferenciación,
• integración,
• trigonométricos,
• vectoriales o
• transformaciones más generales aplicadas sobre las variables de
decisión,
no habiendo ninguna restricción sobre los valores que puedan tomar.

Tema 5. Programación no Lineal Investigación Operativa

Nota: podemos representar cualquier programa no lineal en la forma


canónica.

En programación lineal à el algoritmo del símplex para la búsqueda de la


solución óptima se basaba en que si la solución óptima existía, ésta se
encontraba en uno de los puntos extremos, en número finito, de la región
factible convexa.

En programación no lineal à los puntos óptimos pueden aparecer en


cualquier lugar del interior de la región factible, que no tiene por qué ser
convexa, o en su frontera.

3
10/12/14

Tema 5. Programación no Lineal Investigación Operativa

2. Conceptos previos del Cálculo Infinitesimal

Una función no lineal en ℜ puede tener un único mínimo (máximo) o múlti-


ples.

Un punto x* se dice que es un mínimo local de la función f(x) si f(x*) ≤ f(x)


para todo x en un entorno de x*, y si la desigualdad es estricta, entonces
se denomina mínimo local estricto.

Mínimo global de f(x) si f(x*) ≤ f(x) para todo x ∈ ℜ , siendo además único
si la anterior desigualdad es estricta.

Los conceptos de máximo global, local y local estricto son análogos


cambiando el sentido de las desigualdades.

La curvatura de una función juega un papel importante en optimización.

Tema 5. Programación no Lineal Investigación Operativa

La curvatura de una función juega un papel importante en optimización.

Una función f es convexa en ℜ si

es decir, que cualquier punto en la función f es siempre menor o igual que el


punto en el segmento que une f(x1) y f(x2). Cambiando el signo de la
desigualdad se obtiene la definición de función cóncava.

Si la desigualdad anterior es estricta, entonces se dice que f es estrictamen-


te convexa.

4
10/12/14

Tema 5. Programación no Lineal Investigación Operativa

Si no existen restricciones, el mínimo (máximo) global de una función


objetivo f(x) no lineal convexa (cóncava) es aquel punto x* para el cual la
primera derivada de la función es igual a cero, df(x*)/dx=0.

En el caso de no tratarse de una función convexa o cóncava, los puntos


x* tales que df(x*)/dx=0 serán puntos estacionarios, haciéndose
necesario examinar el signo de la segunda derivada de la función en ellos
para saber si se tratan de máximos, mínimos o puntos de inflexión.

Las condiciones necesarias de mínimo (máximo) local de la función f (dos


veces diferenciable) en x* son

y haciendo en la segunda condición la desigualdad estricta tenemos las


condiciones suficientes.

Tema 5. Programación no Lineal Investigación Operativa

Segunda derivada es 0 en x* à continuar el análisis con las derivadas de


orden superior à si la primera derivada no nula es de orden impar se trata
de un punto de inflexión, y si es de orden par hay un máximo si es negativa
y un mínimo si es positiva.
Para problemas con múltiples variables, recodemos que el gradiente de
una función f en un punto x es el vector

que es perpendicular a f en x, y que la matriz Hessiana de f en x es la


matriz cuadrada de orden n

5
10/12/14

Tema 5. Programación no Lineal Investigación Operativa

Supondremos que f tiene segundas derivadas parciales continuas, siendo


(∂²f(x))/(∂xi ∂xj) = (∂²f(x))/(∂xj ∂xi) para i,j = 1,...,n à la matriz Hessiana
simétrica.

H(x) sirve para saber si una función f(x1,...,xn) es cóncava o convexa:


•  Si H(x) de una función f(x) es semidefinida positiva (negativa) en F,
entonces f(x) es convexa (cóncava) en F.
•  Si es definida positiva (negativa) en F, entonces f(x) es estrictamente
convexa (estrictamente cóncava) en F.

Una matriz A = (aij) cuadrada de números reales de orden n es definida


positiva, semidefinida positiva, semidefinida negativa o definida negativa si
n
para todo x ∈ ℜ con x ≠ 0, la forma cuadrática xTAx es, respectivamen-
te, >0, ≥0, ≤0, <0.
n
Es indefinida si xTAx > 0 para algún x ∈ℜ n y xTAx<0 para algún x ∈ℜ .

Tema 5. Programación no Lineal Investigación Operativa

Otra forma: a través de los menores principales de la matriz.

Dada una matriz A, un menor principal de A es el determinante de una


submatriz de orden k construida prescindiendo en A de n - k cualesquiera
filas y las correspondientes columnas.

Menor principal fundamental de orden k à si se ha prescindido de las n - k


últimas filas y sus correspondientes columnas.

Menores principales >0 definida positiva


fundamentales
≥0 semidefinida positiva

¿A es definida o semidefinida negativa? à estudio análogo con -A.

Si el problema incluye múltiples variables x=(x1,...,xn), la condición necesa-


ria y suficiente para que un punto x* sea un mínimo (máximo) es que
▽f(x*)=0 y ▽²f(x*) sea una matriz definida positiva (negativa).

6
10/12/14

Tema 5. Programación no Lineal Investigación Operativa

Así, en problemas no lineales sin restricciones, si se satisfacen los


criterios de convexidad (concavidad) à resolver un sistema de n
ecuaciones con n variables,

Sin embargo:
•  la resolución de dicho sistema puede no ser fácil.
•  en otros casos la función objetivo no es convexa ni cóncava,

Algoritmos de búsqueda de la solución óptima tanto para los casos


univariante como multivariante.

Problema de optimización restringidoà ¿forma de la región factible F?

•  Si la función objetivo y F son convexas à cualquier mínimo local es un


mínimo global,
•  Si la función objetivo es cóncava y F convexa à cualquier máximo local
es un máximo global.

Tema 5. Programación no Lineal Investigación Operativa

3.  Optimización no restringida unidimensional

Método de búsqueda lineal en la bisección

El proceso comienza estableciendo unos límites inferior, xI, y superior, xS,


dentro de los cuales se encuentra el óptimo, que forman el intervalo de
incertidumbre [xI, xS], y tomar como solución prueba inicial:

Suponiendo que queremos maximizar una función f(x) que es cóncava y


diferenciable en el intervalo de incertidumbre, evaluamos la derivada de la
función en el punto x0.

•  Si es positiva, al ser f(x) cóncava en el intervalo, el máximo se tiene que


encontrar entre x0 y xS, eliminando la región a la izquierda de x0.
q  El nuevo intervalo de incertidumbre pasa a ser [xI=x0, xS].
q  Nueva solución a evaluar en la próxima iteración será x1= (xS+x0)/2.

7
10/12/14

Tema 5. Programación no Lineal Investigación Operativa

•  Si la derivada es negativa, el máximo se tiene que encontrar entre xI y


x0, y eliminamos la región a la derecha de x0,
q  nuevo intervalo de incertidumbre [xI, xS=x0],
q  nueva solución prueba a evaluar en la próxima iteración
x1=(x0+xI)/2.

Repetir hasta que:


•  la longitud del intervalo de incertidumbre se reduce a un cierto valor α.
•  la diferencia en valor absoluto de los valores de la función en los
extremos de este intervalo es menor que una cantidad ε.

Tema 5. Programación no Lineal Investigación Operativa

8
10/12/14

Tema 5. Programación no Lineal Investigación Operativa

Método de la sección áurea

Aplicable cuando la función f(x) es unimodal en un intervalo [a,b] à hay un


solo punto x en [a,b] de forma que f(x) es estrictamente creciente en [a,x] y
estrictamente decreciente en [x,b].

Es particularmente útil cuando no están disponibles las primeras derivadas


de f(x) o es difícil resolver la ecuación df(x)/dx=0, ya que se basa estricta-
mente en evaluaciones de la función.

Dado un intervalo de incertidumbre [a,b] con longitud L, el método evalúa la


función f(x) en dos puntos x0= b-r(b-a) y x1= a+r(b-a), donde r es la
denominada sección áurea, única raíz positiva de la ecuación cuadrática
r2 + r= 1, es decir, r = 0.618.

Tema 5. Programación no Lineal Investigación Operativa

Vemos que
•  x0 se obtiene moviéndonos a partir del extremo superior del intervalo de
incertidumbre hacia la izquierda una fracción r de dicho intervalo
•  x1 se obtiene moviéndonos a partir del extremo inferior del intervalo
hacia la derecha la misma fracción.

Si f(x0) < f(x1) o f(x0) ≥ f(x1), el intervalo de incertidumbre se reducirá,


pasando a ser (x0, b] o [a, x1), respectivamente.

La longitud del nuevo intervalo L′ à L′=rL.

Si se desea que el intervalo de incertidumbre final tenga una longitud


menor que ε à realizar k iteraciones, donde rk(b-a) < ε.

Si se desea maximizar la función f(x) en el intervalo [a,b] y sea I el


intervalo de incertidumbre, con extremos inferior y superior e y ē respecti-
vamente, y el algoritmo es el siguiente:

9
10/12/14

Tema 5. Programación no Lineal Investigación Operativa

Tema 5. Programación no Lineal Investigación Operativa

Ejemplo. Apliquemos el método de la sección áurea al siguiente problema

con un intervalo de incertidumbre final con una longitud menor que 0.2.

El número de iteraciones que tendremos que realizar se obtiene de la expresión


2×0.618k<0.2, de donde k > 4.791, es decir, que se realizarán 5 iteraciones.

Paso 0. Hacemos k=0, I=[e = -1,ē = 1] con L=2 y ε=0.2.

Paso 1. Hacemos x0= b- r (b-a)= 1 - 0.618×2 = -0.236 y


x1= a+ r(b-a)= -1+0.618×2 = 0.236.
Paso 2. Evaluamos la función f(x) en x0 y x1.
f(x0) = -2(-0.236)2 -0.236 -1= -0.875
f(x1) = -2( 0.236)2 -0.236 -1= -1.347

Como el f(x0) > f(x1), el nuevo intervalo de incertidumbre es I = [-1, 0.236),


con L = 0.618 × 2 = 1.236 y hacemos x2 = x1 - rL=-0.527 y x3 = x0 = -0.236.

10
10/12/14

Tema 5. Programación no Lineal Investigación Operativa

Paso 3. L = 1.236 > 0.2 = ε, luego hacemos k=1 y volvemos al paso 2.


Paso 2. Evaluamos la función f(x) en x2 y x3:

f(x2) = -2(- 0.527)2 -0.527 -1= - 1.028


f(x3) = -2(- 0.236)2 -0.236 -1= - 1.347

Como el f(x2) > f(x3), el nuevo intervalo de incertidumbre es I = [-1, -0.236),


con L = 0.6182 × 2 = 0.763 y hacemos x4 = x3 – rL = -0.708 y x5 = x2 = -0. 527.
Paso 3. L = 0.618 > 0.2 = ε, luego hacemos k=2 y volvemos al paso 2.
En la siguiente tabla se muestra la progresión del método, terminando en la quinta
iteración, en la que L = 0.180 < 0.2 = ε.

Tema 5. Programación no Lineal Investigación Operativa

Por lo tanto, aplicando el método de la sección áurea obtenemos que el máximo


debe estar en el intervalo (- 0.416,- 0.236], siendo éste en realidad - 0.25.

11
10/12/14

Tema 5. Programación no Lineal Investigación Operativa

Ejercicio. Conceptos del Cálculo Infinitesimal


Determinar los puntos estacionarios y clasificarlos para la función

f(x) = - 8x1x22 + (2x1+2x22)2 - 2(x1+x2)

Ejercicio. Búsqueda lineal en la bisección

Determinar el máximo de la función

f(x) = -x2 + 6x + 4

con el método de búsqueda lineal en la bisección, tomando como reso-


lución α = 0.25.

Tema 5. Programación no Lineal Investigación Operativa

3.  Optimización no restringida multidimensional

Método del gradiente

Es uno de los métodos más utilizados. Se considera bastante eficiente y a


partir de él han surgido distintas variantes, llegándose incluso a utilizar
como referencia para otros métodos de optimización.

Idea básica: el procedimiento de búsqueda debe moverse en la dirección


opuesta a la del gradiente (para el caso de minimización), ya que éste
marca la dirección de mayor incremento de la función en un punto x, hasta
alcanzar la solución óptima x*, en la que ▽f(x*)=0.

Carga computacional que supone reevaluar ∂f/∂xi à el movimiento se


realizará en una dirección fija a partir de la solución prueba actual, sin
detenerse hasta que f(x) deje de decrecer, en cuyo punto tendremos la
siguiente solución prueba, para la que volveremos a calcular el gradiente
para determinar la nueva dirección de movimiento.

12
10/12/14

Tema 5. Programación no Lineal Investigación Operativa

Para ello, supondremos que la función f(x) = f(x1,...,xn) a minimizar tiene


n
derivadas parciales de primer orden continuas en ℜ .

En cada iteración sustituiremos la solución prueba actual xi por xi - λ▽f(xi),


donde λ es el valor que minimiza el objetivo, es decir, la solución del
problema

La función objetivo del anterior problema es univariante en λ, por lo que se


podrá resolver mediante:

•  haciendo df/dλ=0, si f es derivable, o


•  uno de los algoritmos de búsqueda unidimensional.

Tema 5. Programación no Lineal Investigación Operativa

En el caso de utilizar uno de los algoritmos de búsqueda


unidimensionales à inconveniente asociado con fijar el intervalo de
incertidumbre inicial à cuyo extremo derecho no es inmediato su valor,
ya que dicho intervalo debe incluir al valor mínimo buscado.

Heurística: ir determinando, para distintos valores de λ, los valores de


la función, que irá decreciendo hasta que llegue un momento en que
empiece a crecer.

En el momento que esto ocurra, tomaremos los dos últimos valores de


que formarán el intervalo de incertidumbre inicial.

13
10/12/14

Tema 5. Programación no Lineal Investigación Operativa

Tema 5. Programación no Lineal Investigación Operativa

Ejemplo. Apliquemos el método del gradiente al siguiente problema no lineal:

con x ∈ ℜ 2y α = 0.02.

Paso 0. Tomamos x0 = (1, 2)T y α = 0.02. Hacemos i = 0.

Paso 1. Calculamos la dirección de movimiento

-▽f(x0) = (-∂f(x0)/∂x1, -∂f(x0)/∂x2) =


= (2×2 + 2×1, 2×1 + 4×2)=
= (-6,-10)T ≠ 0.

Paso 2. Para calcular el valor λ* que minimice la función f(x0 - λ▽f(x0)),


calculamos
x0 - λ▽f(x0) = (1-6λ, 2-10λ)T,
siendo
f(x0 - λ▽f(x0)) = 2(1-6λ)(2-10λ) + 2(2-10λ)2 + (1-6λ)2=
= 356λ2 - 136λ + 13.
Haciendo df/dλ = 712λ-136 = 0, obtenemos λ* = 0.191.

14
10/12/14

Tema 5. Programación no Lineal Investigación Operativa

Paso 3. Hacemos
x1 = x0 - λ*▽f(x0) = (1, 2)T - 0.191(6, 10)T=(-0.146, 0.09)T.

Como ǁ‖x1 - x0ǁ‖= 2.227 > 0.02 = α, volvemos al paso 1.

Paso 0. Tomamos x1 = (-0.146, 0.09)T y hacemos i = 1.

Paso 1. Calculamos la dirección de movimiento


-▽f(x1) = (-∂f(x1)/∂x1, -∂f(x1)/∂x2)
= (2×0.09 + 2×(-0.126), 2(-0.126) + 4×0.009)
=(-0.112, 0.068)T ≠ 0.

Paso 2. Para calcular el valor λ* que minimice la función f(x1 - λ▽f(x1)),


calculamos
x1 - λ▽f(x1) = (-0.146-0.112λ, 0.09+0.068λ)T,
siendo
f(x1 - λ▽f(x1)) = 2 × (-0.146-0.112λ)(0.09+0.068λ) +
(0.09+0.068λ)2 + (-0.146-0.112λ)2

Haciendo df/dλ = 0, obtenemos λ* = 1.3098.

Tema 5. Programación no Lineal Investigación Operativa

Paso 3. Hacemos
x2 = x1- λ*▽f(x1) = (-0.146, 0.09)T - 1.3098 (-0.112, 0.068) T
= (7×10-4, 9.3×10-4).

Como ǁ‖x2 - x1ǁ‖= 0.1716 > 0.02 = α, volvemos al paso 1.

En la siguiente tabla se muestra la progresión del método a lo largo de sus distintas


iteraciones, que termina en la cuarta iteración, en la que ǁ‖xi+1 - xiǁ‖ = 1.14 × 10-6 <
0.02 = α.

Por lo tanto, la aproximación a la solución óptima es x* = (6.99×10-4, 9.29 ×10-4)


con f(x*) = 3.51×10-5.

15
10/12/14

Tema 5. Programación no Lineal Investigación Operativa

Método de Newton

Crítica al método del gradiente à aunque la dirección del gradiente es la


mejor, tan pronto como empecemos a movernos desde la solución prueba
actual, esta dirección dejará de ser la mejor, y cuanto más lejos nos
movamos peor será à especialmente pobre en un entorno del óptimo.

Este comportamiento se explica porque la dirección del gradiente viene


dictada por una aproximación lineal de f(x) cerca de la solución prueba
actual.

Una línea recta es una pobre aproximación de una función no lineal. La


mayoría de las funciones no lineales se pueden aproximar razonablemen-
te bien mediante una función cuadrática en el entorno del óptimo.

Método de Newton à toma como nueva solución de prueba aquella que


minimiza (para el caso de que el problema sea de minimización) una
aproximación cuadrática de f(x).

Tema 5. Programación no Lineal Investigación Operativa

Dada una solución de prueba actual xi, la nueva solución de prueba será:

xi+1 = xi – λ*(-H-1(xi) × ▽f(xi)),

donde la matriz H-1(xi) es la inversa de la matriz Hessiana en el punto xi


y el valor de λ* se obtiene de la misma forma en que se hizo en el
método del gradiente.

El método converge cuando el vector dirección se hace igual a 0.

El método de Newton converge más rápidamente que el del gradiente.

No se suele recomendar desde un punto de vista práctico à requiere:

•  la función f tenga derivadas de segundo orden continuas.


•  la matriz Hessiana sea no singular, además del gasto computacional en
invertirla à su eficiencia disminuya rápidamente al aumentar el número
de variables.

16
10/12/14

Tema 5. Programación no Lineal Investigación Operativa

La necesidad de invertir repetidamente matrices Hessianas de orden n


ha llevado al desarrollo de un gran número de modificaciones en el
método de Newton original, denominados métodos de cuasi-Newton,
como son el método DFP o las fórmulas de actualización BFGS.

Tema 5. Programación no Lineal Investigación Operativa

Ejercicio. Método de Newton

Consideremos el problema

min f(x) = 2x1x2 + 2x22 + x12,


2
con x ∈ ℜ y α = 0.02.

Obtener la solución óptima del problema mediante el método de


Newton y comparar los resultados obtenidos con los del ejemplo
del método del gradiente.

17
10/12/14

Tema 5. Programación no Lineal Investigación Operativa

5. Optimización restringida

Problemas de optimización no lineal restringida en los que tanto la función


objetivo como las restricciones son no lineales. Dependiendo de la
naturaleza de las restricciones se utilizarán distintos métodos de solución.

•  Restricciones de igualdad, à multiplicadores de Lagrange


•  Desigualdades à condiciones de Karush-Kuhn-Tucker

5.1. Multiplicadores de Lagrange

El método de los multiplicadores de Lagrange se aplica a problemas de


optimización no lineales con restricciones de igualdad

(5.1)

con x = (x1,…,xn).

Tema 5. Programación no Lineal Investigación Operativa

Este problema de optimización es equivalente al siguiente problema de


optimización no restringida de mayor dimensión pero de solución más
fácil, al poder aplicar sobre él los métodos de optimización no restringida

donde a los números λi se les denomina multiplicadores de Lagrange y a


L(x, λ) función lagrangiana.

Si se satisfacen todas las restricciones de igualdadà L(x, λ) = f(x) para


cualquier valor de λi, i =1,...,m.

El siguiente teorema introduce las condiciones suficientes de optimalidad.

18
10/12/14

Tema 5. Programación no Lineal Investigación Operativa

Teorema (condiciones suficientes de optimalidad) Dado el problema


de programación no lineal (5.1), si n > m y f y gi son funciones con
derivadas parciales de segundo orden continuas, x* un punto tal que
gi(x*)=0 y ▽gi(x*) vectores linealmente independientes y existe un
vector λ tal que

es una matriz definida positiva en S = {x: xT▽gi(x*)=0, i =1,...,m},


entonces x* es un mínimo local para el problema dado.

Nótese que el conjunto S define m hiperplanos ortogonales (uno para


cada restricción) al gradiente de la correspondiente restricción y tangente
al conjunto factible F en x*.

Tema 5. Programación no Lineal Investigación Operativa

19
10/12/14

Tema 5. Programación no Lineal Investigación Operativa

Ejemplo. Determinemos la solución óptima del problema:

Paso 0. Las funciones tienen derivadas parciales de segundo orden continuas, luego
vamos al siguiente paso.

Paso 1. La función lagrangiana es L(x, λ) = 4x12 + 3x22 + 4x2 + λ (x1 - x2 +1).

Paso 2. Las condiciones de Lagrange son

8x1 + λ =0
6x2 + 4 –λ = 0
x1 - x2 +1=0

cuya solución es x1*=-5/7, x2*=2/7 y λ*=40/7.

Tema 5. Programación no Lineal Investigación Operativa

Paso 3. La matriz Hessiana de la función lagrangiana en (x*, λ*) es

y el plano tangente

La matriz HL(x*) es definida positiva en S ya que

y en S es x1=x2, luego 8x12 + 6x22 = 14x22 > 0 para todo x2≠0.

Por lo tanto, x*=(-5/7, 2/7) es un mínimo local del problema.

20
10/12/14

Tema 5. Programación no Lineal Investigación Operativa

Ejercicio. Multiplicadores de Lagrange

Determinar, utilizando los multiplicadores de Lagrange, la solución óptima


del problema

Tema 5. Programación no Lineal Investigación Operativa

5. 2 Condiciones de Karush-Kuhn-Tucker

Generaliza los multiplicadores de Lagrange para problemas con restric-


ciones de igualdad y desigualdad. Sea el problema

con x = (x1,…,xn).

Un posible método de resolución de este problema consistiría en


introducir variables de holgura en las restricciones, transformándolas en
igualdades, y aplicar el método de los multiplicadores de Lagrange.

La introducción de las m nuevas variables à un gran gasto computacional


à consideraremos otro método alternativo más atractivo que se apoya en
el concepto de restricción activa.

21
10/12/14

Tema 5. Programación no Lineal Investigación Operativa

Dado un punto x* factible, una restricción de desigualdad gi(x) ≤ 0 se dice


activa en x* si gi(x*)=0, e inactiva si gi(x*)<0, en cuyo caso se dice que
gi tiene holgura en x*.

Las restricciones activas en un punto x* restringen el dominio de factibili-


dad a entornos del punto x*, mientras que las inactivas no tienen efecto
sobre éste.

Idea básica à convertir el problema en forma canónica en un problema


con únicamente restricciones de igualdad, prescindiendo de las
restricciones inactivas y convirtiendo las activas en ecuaciones.

Veamos bajo qué condiciones se puede prescindir de las restricciones


inactivas sin afectar a la optimalidad.
Partiendo de la función lagrangiana

Tema 5. Programación no Lineal Investigación Operativa

Cuando una restricción gi tenga valor no nulo en el óptimo, es decir, que


sea inactiva, su multiplicador de Lagrange debe ser cero, mientras que si
es activa, éste puede ser no nulo. Esto nos lleva a imponer:

•  la condición de ortogonalidad entre el vector λ y el vector ∂L(x,λ)/∂λ

también denominadas condiciones de holgura complementaria, con las


que conseguimos que la función lagrangiana incorpore las restricciones
activas como igualdades e ignore las restricciones inactivas.
•  Ecuación de gradientes (condición de estacionariedad)

•  las de no negatividad para los multiplicadores de Lagrange, ya que el


gradiente de la función objetivo se puede poner como una combinación
lineal no negativa de los vectores gradientes de las restricciones.

22
10/12/14

Tema 5. Programación no Lineal Investigación Operativa

En resumen, el conjunto de condiciones, que reciben el nombre de


condiciones de Karush-Kuhn-Tucker (K-K-T), queda

y cualquier punto (x*, λ*) que verifique estas condiciones se denomina


punto de Karush-Kuhn-Tucker.
Estas condiciones necesarias de K-K-T son también suficientes para un
problema de minimización si tanto la función objetivo como las restric-
ciones son convexas.

Si no es así à estudiar cada punto de K-K-T de manera individual.

Tema 5. Programación no Lineal Investigación Operativa

Para que x* sea un mínimo, la matriz Hessiana HL(x*) tiene que ser
definida positiva en S={x: xT▽gi(x*)=0, ∀i con λi*>0}, y son necesarias
las restricciones de cualificación, es decir, que los vectores gradientes de
las restricciones activas en x* sean linealmente independientes, y que f y
gi tengan derivadas parciales de segundo orden continuas.
El método de optimización queda:

23
10/12/14

Tema 5. Programación no Lineal Investigación Operativa

Ejemplo. Determinemos la solución óptima del problema:

Paso 0. Las funciones f y gi tienen derivadas parciales de segundo orden continuas,


luego vamos al Paso 1.

Paso 1. Sea la función lagrangiana


L(x, λ)=(x1 - 2)2 + (x2 - 5)2 +λ1((x1 - 4)2 + (x2 - 3)2 - 4)+λ2(x1 - x2).
Paso 2. Formamos el sistema de ecuaciones a partir de las condiciones necesarias
∂L(x, λ)/∂x1 = 2(x1 - 2) + 2λ1(x1 - 4) + λ2 = 0
∂L(x, λ)/∂x2 = 2(x2 - 5) + 2λ1(x2 - 3) - λ2 = 0
(x1 - 4)2 + (x2 - 3)2 – 4 ≤ 0
x1- x2 ≤ 0
λ1((x1 - 4)² + (x2 - 3)² - 4) = 0
λ2(x1 - x2) = 0
λ1, λ2 ≥ 0

Tema 5. Programación no Lineal Investigación Operativa

que tiene como solución óptima x* = (7/2, 7/2) y λ* = (0, 3).

Paso 3. Estudiamos si las funciones son convexas à calculamos las matrices


Hessianas de f, g1 y g2:

que son definidas positivas las dos primeras y semidefinida positiva la tercera y, por
lo tanto, al ser convexas, x*=(7/2,7/2) es un mínimo global:

24
10/12/14

Tema 5. Programación no Lineal Investigación Operativa

5. 3 Programación cuadrática, separable y convexa

Programación cuadrática

Consideramos problemas de optimización no lineales que únicamente


difieren de los lineales en que la función objetivo es cuadrática à incluye
términos de la forma xi2 o xixj.

El problema será determinar x = (x1,...,xn) tal que (notación matricial)

equivalente a

donde c es un vector fila y D es una matriz simétrica.

Tema 5. Programación no Lineal Investigación Operativa

•  El gradiente de una función cuadrática es una función lineal à las


condiciones de K-K-T tendrán una forma más sencilla y se podrán
obtener las soluciones de una forma cómoda.

•  Algoritmos para resolver problemas con ciertas formas de funciones


cuadráticas.

En el algoritmo de Wolfe se generan, mediante la aplicación del


método del símplex, una secuencia de soluciones factibles hasta que
una de ellas satisface las condiciones de K-K-T, que representan un
conjunto de ecuaciones lineales.

Esto es así ya que aunque las condiciones de ortogonalidad no sean


lineales, el algoritmo simplemente mantiene un conjunto de
restricciones activas, permitiendo sólo valores mayores que 0 a las
variables λi.

El algoritmo converge a una solución óptima cuando D es definida


positiva o demuestra la infactibilidad en un número finito de iteraciones.

25
10/12/14

Tema 5. Programación no Lineal Investigación Operativa

El método de Beale se basa en el cálculo clásico más que en las


condiciones de K-K-T y no requiere que la matriz D sea semidefinida o
definida positiva, es decir, no es necesario que f(x) sea convexa.

Inicialmente, se eliminan las restricciones redundantes y se obtiene una


solución básica factible inicial.

A continuación, la matriz de coeficientes tecnológicos se particiona


tomando por un lado las columnas asociadas a las variables básicas y,
por otro, las de las no básicas y mediante derivadas parciales se
determina qué variable no básica incrementar o decrementar.

Cuando se alcance una solución aparente se determina la segunda


derivada para ver si es un falso óptimo. Si ésta es negativa para algún
xi, entonces se trata de un máximo (en lugar de un mínimo) y el valor
de la función objetivo se podrá mejorar introduciendo xi en la base.

Tema 5. Programación no Lineal Investigación Operativa

El algoritmo de Lemke o método del pivote complementario se


aplica a problemas de la forma

(5.2)

donde D, además de simétrica, es definida positiva.

Al representar las restricciones con el tipo ≤, las condiciones de K-K-T


tomarán una forma particularmente simple

donde y es un vector de variables de holgura y λ y µ son los multipli-


cadores de Lagrange.

26
10/12/14

Tema 5. Programación no Lineal Investigación Operativa

Al ser las restricciones funciones lineales, son convexas y, si la matriz


Hessiana D es semidefinida o definida positiva, también lo será f(x).

Bajo estas condiciones (suficientes de optimalidad), si x*, λ*, µ* e y*


cumplen las condiciones de K-K-T, entonces x* es la solución óptima.

Poniendo el sistema en forma tabular queda

De las condiciones de ortogonalidad tenemos que xi y µi son comple-


mentarias y análogamente λj e yj.

Si b y c son no negativos, una solución para las condiciones de K-K-T es


(x*, λ*, µ*, y*) = (0, 0, c, b) y x*=0 es la solución óptima.

Tema 5. Programación no Lineal Investigación Operativa

En el caso de que b y/o c sean negativos, el algoritmo de Lemke introdu-


ce una variable artificial z0 y considera el siguiente sistema

Si z0 es suficientemente grande, el lado derecho del sistema sería no


negativo y, por lo tanto, una solución del sistema sería (x, λ)=(0, 0).
Sin embargo, al aparecer z0, dicha solución no satisfará las condiciones
de K-K-T, salvo que z0=0. Como consecuencia, planteamos la siguiente
tabla inicial

y mediante la aplicación del método del pivote complementario buscare-


mos mediante operaciones de pivote una solución óptima del sistema en
la que z0 no sea básica

27
10/12/14

Tema 5. Programación no Lineal Investigación Operativa

Los pasos son los siguientes:

Tema 5. Programación no Lineal Investigación Operativa

Ejemplo. Determinemos la solución óptima del problema de programación


cuadrática:

Paso 0. Construimos la tabla inicial del método a partir de

28
10/12/14

Tema 5. Programación no Lineal Investigación Operativa

Paso 1. El pivote es el elemento marcado con un asterisco en la tabla, asociado a


c2 = -1. Por lo tanto, la variable que abandona la base es µ2 y la que entra por ella
es z0. Construimos la nueva tabla aplicando el procedimiento utilizado en el
método del símplex

Paso 2. La variable que entra en la base, x2, es la complementaria de la que la


abandonó en el paso 1, µ2. Aplicando la regla de la mínima razón sobre la
columna asociada a esa variable obtenemos que µ1 abandona la base. Una vez
que tenemos el pivote, calculamos la nueva tabla

Tema 5. Programación no Lineal Investigación Operativa

Paso 2. La variable que entra en la base es x1. Aplicando la regla de la razón mí-
nima, la variable que abandona la base es y1.

Paso 2. Hacemos una nueva iteración donde λ1 entra en la base y z0 la abandona

Como z0 ha dejado de ser básica, la solución de esta tabla satisface las condicio-
nes de K-K-T. Por lo tanto, la solución x*=(1/3,5/3) es un mínimo global del
problema de programación cuadrática.

29
10/12/14

Tema 5. Programación no Lineal Investigación Operativa

Programación separable

La programación separable se aplica a problemas de optimización en los


tanto la función objetivo como las restricciones son funciones separables,
es decir, en las que cada término incluye una sola variable

Dichas funciones no lineales se aproximan por funciones lineales a trozos


mediante interpolación a partir de un conjunto de puntos convenientemente
seleccionados de la región factible:

Tema 5. Programación no Lineal Investigación Operativa

n
Si la función f(x) es separable de la forma ∑ j =1 fj(xj), su aproximación lineal
a trozos, suponiendo que el recorrido de las funciones se ha dividido en r-1
intervalos, es

en el punto x = (x1,...,xi,...,xn), con

y no más de dos pesos λik positivos para cualquier i. Si dos son positivos,
éstos tienen que ser adyacentes (condición de adyacencia).

30
10/12/14

Tema 5. Programación no Lineal Investigación Operativa

Por lo tanto, dado un problema no lineal expresado en forma canónica

en el que todas las funciones son separables y sea un conjunto de r puntos


elegido para cada xi (tomados en los recorridos de las respectivas
variables), entonces el problema aproximar por

con las condiciones


de adyacencia para
los λik.

Tema 5. Programación no Lineal Investigación Operativa

Tenemos así un problema de programación lineal en las variables λik con


nr variables y m+n restricciones à método del símplex adaptado para
cumplir la condición de adyacencia.

Se modifica la regla de entrada de forma que:


•  si para un i es λik=0 ∀k, entonces cualquier λik puede entrar en la
base,
•  pero si un λik>0 (por ejemplo, el λik′), entonces sólo λik′-1 o λik′+1 podrán
entrar en la base.
•  Además, si para un i, dos λik son positivos, entonces ningún otro λik
podrá entrar en la base.

Si las funciones f y gi son convexas à no es necesario hacer esta modifi-


cación en la regla de entrada.

31
10/12/14

Tema 5. Programación no Lineal Investigación Operativa

Ejemplo. Programación separable

Las funciones son separables:

Los recorridos de interés de ambas variables son [0,20] en ambos casos.

Tema 5. Programación no Lineal Investigación Operativa

Consideramos 4 trozos en el recorrido de cada variable, r=5,

siendo

32
10/12/14

Tema 5. Programación no Lineal Investigación Operativa

Las aproximaciones lineales a trozos son, respectivamente,

y el problema aproximado queda:

Tema 5. Programación no Lineal Investigación Operativa

Introducimos dos variables de holgura x3 y x4 y, como las funciones f, g1 y


g2 son convexas, aplicamos el método del símplex sin tener en cuenta la
modificación de la regla de entrada.

La tabla inicial es

La tabla no es óptima. Introducimos en la base la variable λ25 por x3.

33
10/12/14

Tema 5. Programación no Lineal Investigación Operativa

La solución óptima es λ12=1 y λ22=1 à los valores óptimos de x1 y x2


son

y z∗ = 200.

Tema 5. Programación no Lineal Investigación Operativa

Programación convexa

En los problemas de programación convexa la función objetivo a minimizar


(maximizar) es convexa (cóncava) y las restricciones son convexas.

Primer enfoque à algoritmos de aproximación lineal (métodos de


aproximación lineal y cuadrática).
Se sustituye la función objetivo no lineal por una sucesión de aproxima-
ciones lineales y cuadráticas à resueltos con programación lineal o
cuadrática, si las restricciones son lineales à una sucesión de soluciones
que convergen a la solución óptima del problema original.

Otro enfoque à algoritmos secuenciales no restringidos, entre los que se


incluyen los métodos de función de penalización y de función de barrera.
El problema de optimización restringido original se sustituye por una
sucesión de problemas de optimización no restringida en los que se resta a
la función objetivo una función de penalización (o de barrera), que incluye
las restricciones del problema con el fin de penalizar la violación de
cualquiera de ellas.

34
10/12/14

Tema 5. Programación no Lineal Investigación Operativa

Último enfoque à algoritmos del gradiente, se basan en el método del


gradiente para problemas de optimización no restringida multivariante.

El método del gradiente reducido es válido para problemas de progra-


mación convexa en los que las restricciones son de igualdad.

1.  A partir del sistema de ecuaciones que se obtiene de las


restricciones, se resuelve dicho sistema para m variables (básicas) en
función del resto (independientes).

2.  Se sustituyen estas variables en la función objetivo pasando a tener


un problema de optimización no lineal no restringido à aplicar las
condiciones suficientes presentadas en la Sección de conceptos
previos o algún algoritmo de búsqueda.

Tema 5. Programación no Lineal Investigación Operativa

El método del gradiente reducido generalizado extiende el anterior


para problemas en los que las restricciones de igualdad sean no lineales.

1.  Dichas restricciones se linealizan mediante el desarrollo de Taylor en


un punto x0, despreciando los términos no lineales, es decir, haciendo

g(x) ≃ g(x0)+(x - x0) ▽g(x0).

2.  Resolvemos el sistema de ecuaciones asociado y sustituimos en la


función objetivo las variables básicas, teniendo el problema de
optimización no lineal no restringido.

La aplicación del método es iterativa à sucesión de problemas en los que


calculan nuevas aproximaciones lineales de las restricciones en el punto
determinado en la iteración anterior (solución del problema de
optimización no lineal no restringido de la iteración), obteniendo puntos
cada vez más próximos al óptimo.

35

Вам также может понравиться