Está en la página 1de 87

Investigación de Operaciones

Ing. Rodrigo Sempértegui Álvarez

1/368
II. Modelos de Programación Matemática
Programación No - lineal
Investigación de Operaciones

Temario:
Ing. Rodrigo Sempértegui Álvarez

IV.1. Introducción y ejemplos.


IV.2.
Propiedades básicas de los problemas de pro
gramación no-lineal.
IV.3. Problemas de optimización no restringida.
IV.4. Problemas con restricciones de igualdad.
IV.5. Problemas con restricciones de igualdad y
desigualdad.
IV.6. Métodos de optimización restringida.
2/368
II. Modelos de Programación Matemática
Programación No - lineal
Investigación de Operaciones

IV.1. Introducción y Ejemplos

A esta clase de problemas de optimización pertenecen todos


aquellos, en los cuales la función objetivo y/o las restricciones son
Ing. Rodrigo Sempértegui Álvarez

funciones no-lineales de las variables de decisión.

En particular, la programación no-lineal provee una manera de


abordar el no cumplimiento del supuesto de proporcionalidad de la
programación lineal, permitiendo la programación de economías o
deseconomías de escala y/o retornos crecientes o decrecientes a
escala.

3/368
II. Modelos de Programación Matemática
Programación No - lineal
Investigación de Operaciones

a) Rendimientos decrecientes a escala.


Una compañía vende cuatro productos diferentes. El retorno que
provee cada producto es una función de la cantidad de recursos
Ing. Rodrigo Sempértegui Álvarez

asignados a la promoción y venta de cada producto, según la


siguiente tabla:

PRODUCTO RETORNO (M$)


Producto 1 10.000 x1 0.50
Producto 2 7.500 x2 0.75
Producto 3 9.000 x3 0.60
Producto 4 15.000 x4 0.30

4/368
II. Modelos de Programación Matemática
Programación No - lineal
Investigación de Operaciones

En este ejemplo:
xi es la cantidad de recursos asignados al producto i, con i =
1,2,3,4.
Ing. Rodrigo Sempértegui Álvarez

El siguiente modelo provee una asignación de estos recursos, de


modo de maximizar las utilidades, considerando una inversión anual
no superior a los M$ 75.000.
Max
10.000 x10.5 + 7.500 x20.75 + 9.000 x30.6 + 15.000 x40.3

s.a:
x1 + x2 + x3 + x4  75.000
xi  0; i = 1, 2, 3, 4, 5.

5/368
II. Modelos de Programación Matemática
Programación No - lineal
Investigación de Operaciones

b) Aproximación y ajuste de curvas.


Supongamos que se tiene un conjunto de datos
correspondientes a una determinada función y=g(x)
Ing. Rodrigo Sempértegui Álvarez

(desconocida), digamos (x1,y1), (x2,y2), .., (xm,ym) y se desea


aproximar g(x) por una función h(x)

ym

y2
y1

x1 x2 xm

6/368
II. Modelos de Programación Matemática
Programación No - lineal
Investigación de Operaciones

Algunas elecciones posibles:


Ing. Rodrigo Sempértegui Álvarez

i) h (x) = a0 + a1 x
ii) h (x) = a0 + a1 x + a2 x2
iii) h (x) = a0 + a1 x a2
a1x
iv) h (x) = a0 e
a3 x
v) h (x) = a0 + a1 x + a2 e
vi) h (x) = a0 + a1 ln(x)

7/368
II. Modelos de Programación Matemática
Programación No - lineal
Investigación de Operaciones

¿Cómo elegir los coeficientes a=(a0,...,an) en la función h(x) que


aproxima o ajusta los datos observados?
Ing. Rodrigo Sempértegui Álvarez

Se define una función de error: e(x,a) = g(x) – h(x)

Una elección posible de los coeficientes ai resulta de minimizar la


suma ponderada de los errores al cuadrado en cada uno de los
datos , es decir:
m m
2 2
Min F(a) =  i e( x i , a ) =  i i
 ( y  h( x i ))
i 1 i 1

8/368
II. Modelos de Programación Matemática
Programación No - lineal
Investigación de Operaciones

Que da origen a un problema de programación no-lineal sin


restricciones.
Si escogemos 1 = ... = m = 1 y h(x) = a0 + a1x, el problema
Ing. Rodrigo Sempértegui Álvarez

corresponde a una regresión lineal.

h(x)= a0 + a1x
ym

y2
y1
x1 x2 xm

9/368
II. Modelos de Programación Matemática
Programación No - lineal
Investigación de Operaciones

Cuya solución resulta ser:

m
 yi 
Ing. Rodrigo Sempértegui Álvarez

a0    
i1  m 

m 
  yi x i 
a 1   i1m 
 2 
  xi 
 i 1 

10/368
II. Modelos de Programación Matemática
Programación No - lineal
Investigación de Operaciones

c) Localización de instalaciones.
Una compañía petrolera desea construir una refinería que
recibirá suministros desde tres instalaciones portuarias,
Ing. Rodrigo Sempértegui Álvarez

cuyas coordenadas se muestran en la siguiente figura:

Puerto B
40
30 Puerto C

Puerto A
30 80

11/368
II. Modelos de Programación Matemática
Programación No - lineal
Investigación de Operaciones

Si denotamos por x e y las respectivas coordenadas de la


refinería que se debe instalar, una posible elección es aquella
que resulta de minimizar la cantidad total de tubería
Ing. Rodrigo Sempértegui Álvarez

necesaria para conectar la refinería con los puertos, dada


por:

Min f(x,y) = ( x  0 ) 2  ( y  0 )2 
( x  30)2  ( y  40)2 
( x  80)2  ( y  30)2

12/368
II. Modelos de Programación Matemática
Programación No - lineal
Investigación de Operaciones

La solución óptima calculada por el solver de Excel es:


x*=30,8052225
y*= 37,8900128
Ing. Rodrigo Sempértegui Álvarez

Puerto B

Puerto C

Refinería

Puerto A

13/368
II. Modelos de Programación Matemática
Programación No - lineal
Investigación de Operaciones

d) Optimización de carteras de inversión


Se desea obtener una cartera de inversiones en base a distintos
instrumentos (acciones, pagarés, bonos, etc). La cartera elegida
Ing. Rodrigo Sempértegui Álvarez

deberá reflejar un compromiso entre los retornos de los


instrumentos elegidos y el riesgo asociado a cada uno de ellos, de
hecho es natural esperar que a mayor retorno haya un mayor riesgo
y también que exista cierta correlación entre los retornos de los
distintos instrumentos de la cartera.
A continuación se formula un modelo para obtener una cartera de
inversión de un tomador de decisiones con aversión al riesgo, con
un vector de retornos que tiene una distribución normal con media:
r = (r1, r2, ..., rn)T y matriz de covarianza: Q = (ij) con i = 1, 2, ...,
n y j = 1, 2, ..., n donde ii denota la varianza del retorno del
instrumento i y donde ij (i  j) es la covarianza de los retornos del
instrumento i con el j.

14/368
II. Modelos de Programación Matemática
Programación No - lineal
Sea xi el porcentaje de inversión del instrumento i en la cartera, con i
Investigación de Operaciones

= 1, 2, ..., n las variables de decisión del modelo y sea K una


constante de aversión al riesgo.
El siguiente modelo (propuesto por Markowitz, Premio Nobel de
Economía 1991), combina ambos elementos presentes en una
Ing. Rodrigo Sempértegui Álvarez

decisión de esta naturaleza:


n n n
Max  rixi  K   ijxix j
i 1 i  1 j 1
n
sa :  xi  1
i 1
xi  0 1  1,2,..., n
Usando el servidor Neos para una cartera con tres acciones
seleccionadas del menú para este problema en el servidor y un bono,
se tiene:

15/368
II. Modelos de Programación Matemática
Programación No - lineal
Investigación de Operaciones

Selected value of K is 10.00


Risk less rate of return (monthly) is 0.00407
Ing. Rodrigo Sempértegui Álvarez

Name Avg Return Std Pet of


(monthly, Desviation optimal
pet) Portfolio
Coca Cola Co 2,885 6,574 48,6
Exxon Corp 1,647 4,939 13,7
Texaco Inc 1,869 6,381 16,6
Bond 0,407 0 21

16/368
II. Modelos de Programación Matemática
Programación No - lineal
Investigación de Operaciones

Optimal Portfolio Statistics

Avg Return (monthly, 2,03


Ing. Rodrigo Sempértegui Álvarez

pet)
Std Desviation 4,02
Pet of Optimal Potrfolio 27,2

21.0% Coca Cola


48.6% Exxon Corp
Texaco Inc
16.7%
Bond
13.7%

17/368
II. Modelos de Programación Matemática
Programación No - lineal
IV.2. Propiedades básicas de los problemas de programación
no-lineal.
Investigación de Operaciones

De manera general, un problema de optimización considera la


resolución de un modelo como el que sigue:
P) Min f(x)
s.a. x  D  IRn
Ing. Rodrigo Sempértegui Álvarez

Donde f: IRn IR es una función, comúnmente continua y


diferenciable, y D es el dominio de factibilidad del problema,
generalmente dado por:
D = {x IRn / gi(x) = bi i=1,...,m; hr(x) dr r =1,...,l}
Decimos que x*  D es un mínimo global o solución óptima del
problema P) si:
f(x*)  f(x) para todo x  D

Por otra parte, decimos que x^  D es un mínimo local del problema


P) si:
f(x^)  f(x) para todo x en una vecindad de x^
(x  D  B(x^, )) 18/368
II. Modelos de Programación Matemática
Programación No - lineal
Investigación de Operaciones

Min f(x) = (x - 1) (x - 2) (x - 3) (x - 4) (x - 5)
s.a: 1x5
Ing. Rodrigo Sempértegui Álvarez

f(x) Son mínimos locales x=1,


x+ y x*, en tanto la
solución óptima o
mínimo global es x*
x*
x
1 2 3 4 5

x+

19/368
II. Modelos de Programación Matemática
Programación No - lineal
Investigación de Operaciones

f(x,y) = -4x3 + 3x - 6y
Ing. Rodrigo Sempértegui Álvarez

20/368
II. Modelos de Programación Matemática
Programación No - lineal
Investigación de Operaciones

f(x,y) = x2 - 4x - 2y
Ing. Rodrigo Sempértegui Álvarez

21/368
II. Modelos de Programación Matemática
Programación No - lineal
Existen resultados que garantizan la existencia y unicidad de la
solución de un problema de programación no lineal.
Investigación de Operaciones

Teorema (Weiertrass). Si f es una función continua y D es un


conjunto no vacío cerrado y acotado de IRn, entonces P) tiene
solución óptima.
Teorema. Si f es una función continua y D es un conjunto cerrado
Ing. Rodrigo Sempértegui Álvarez

no vacío y además f cumple que: lim f ( x )   ,


|x| 

entonces P) tiene solución óptima.


Por su parte, la unicidad de la solución óptima se puede garantizar
sólo bajo ciertas condiciones muy especiales.
De igual modo es posible garantizar si un mínimo local es un
mínimo global del problema.
Para esto se requiere saber si el problema P) es un problema
convexo, esto es si la función objetivo f(x) es convexa y el conjunto
D de puntos factibles es un conjunto convexo.

22/368
II. Modelos de Programación Matemática
Programación No - lineal
Investigación de Operaciones

Definición. Decimos que f: IRnIR es una función convexa si:


fx + (1-)y )  f(x) + (1-)f(y)
Ing. Rodrigo Sempértegui Álvarez

para todo x, y  D (x  y) con   [0, 1]


Si la desigualdad anterior se cumple de manera estricta, decimos
que f es estrictamente convexa.

Lineal a
tramos
f(y)
f(x)

x y
23/368
II. Modelos de Programación Matemática
Programación No - lineal
Investigación de Operaciones

Adicionalmente, se tiene el siguiente resultado


Teorema. Si f es una función dos veces
continuamente diferenciables, las siguientes
Ing. Rodrigo Sempértegui Álvarez

afirmaciones son equivalentes:


i) f es una función convexa
ii) f(x)  f(y) + fT(y)(x-y) para dos puntos
cualesquiera x e y.
iii) La matriz hessiana de las segundas derivadas
parciales de f, denotada en lo que sigue por D2f(x),
es semi positiva definida para todo x.

24/368
II. Modelos de Programación Matemática
Programación No - lineal
Investigación de Operaciones

Por otra parte, también podemos caracterizar si un


conjunto cualquiera es convexo o no, de acuerdo a la
siguiente:
Ing. Rodrigo Sempértegui Álvarez

Definición. D  IRn, un conjunto no vacío, es convexo


ssi x + (1-) y  D, para todo x  D, y  D con 
 [0,1].

y y
x
x
Es convexo No es convexo

25/368
II. Modelos de Programación Matemática
Programación No - lineal
Investigación de Operaciones

Así por ejemplo, si h(x) es una función convexa el conjunto


D = { x  IRn  h(x)  d } es convexo para cualquier escalar real d.
También es posible demostrar que la intersección de conjuntos
Ing. Rodrigo Sempértegui Álvarez

convexos es un conjunto convexo. De aquí que por ejemplo el


problema
P) Min f(x)
s.a hr(x)  dr r=1,2,...,l
Con f(x) y hr(x) funciones convexas para r=1,2,..,l definen un
problema convexo, pues el dominio de factibilidad es la intersección
de los conjuntos convexos Dr={ x  IRn  hr(x)  dr }, para r=1,2,..,l.
Teorema. Si P) es un problema convexo y x* es un mínimo local de
P) entonces x* es un mínimo global o solución óptima de P), si
además, f es una función estrictamente convexa x* es una solución
óptima única.
26/368
II. Modelos de Programación Matemática
Programación No - lineal
Investigación de Operaciones

La principal dificultad en los problemas de programación no lineal es


que incluyen restriciones no lineales de igualdad como g(x) = b y el
conjunto de puntos {xIRn : g(x)=b} generalmente no es convexo
cuando g(x) es una función no lineal cualquiera. Por lo tanto no
todos los problemas de programación no lineal son convexos y esto
Ing. Rodrigo Sempértegui Álvarez

hace más difícil garantizar que la solución encontrada por un solver


sea una solución óptima del problema.
Como puede verse en el siguiente ejemplo, que resolveremos
gráficamente, la geometría de los problemas también cambia
respecto de lo observado en programación lineal.
Consideremos el siguiente problema:
Min (x1 - 3)2 + (x2 - 4)2
s.a. x1 + x2  5
x1 - x2  5/2
x1  0, x2  0
27/368
II. Modelos de Programación Matemática
Programación No - lineal
Investigación de Operaciones
Ing. Rodrigo Sempértegui Álvarez

28/368
II. Modelos de Programación Matemática
Programación No - lineal
Investigación de Operaciones

La solución óptima x* de este problema se alcanza el punto x1* = 2,


x2* = 3 correspondiente al único punto de la curva de nivel que tiene
el menor valor y que intersecta la región de puntos factibles.
Ing. Rodrigo Sempértegui Álvarez

Notar que la solución ya no corresponde a un vértice del dominio de


factibilidad del problema, aún cuando todavía esta solución se
alcanza en la frontera de dicho conjunto.
Sin embargo, esto último, a diferencia de lo que ocurre en
programación lineal, no siempre se produce. Si por ejemplo el
problema es ahora:
Min (x1 - 2)2 + (x2 - 2)2
s.a x1 + x2  5
x1 - x2  5/2
x1  0, x2  0
29/368
II. Modelos de Programación Matemática
Programación No - lineal
Investigación de Operaciones

La solución cambia a lo representado en la siguiente figura, donde


la solución óptima se alcanza en x1* = 2, x2* = 2, ahora
perteneciente al interior del dominio de factibilidad del problema.
Ing. Rodrigo Sempértegui Álvarez

30/368
II. Modelos de Programación Matemática
Programación No - lineal
Investigación de Operaciones

Gráficamente,
también
podemos
Ing. Rodrigo Sempértegui Álvarez

observar la
presencia de
divesos mínimos
locales en un
problema no
lineal.

31/368
II. Modelos de Programación Matemática
Programación No - lineal
Investigación de Operaciones

IV.3. PROGRAMACION NO RESTRINGIDA


En esta sección consideraremos un problema
P) Min f(x) con x  IRn
Ing. Rodrigo Sempértegui Álvarez

A esta clase de problemas pertenece por ejemplo el problema de


aproximación y ajuste de curvas. Sin embargo, la principal razón
para su estudio radica en la extensión de las ideas y métodos para
esta clase de problemas a los problemas de optimización
restringida.
A continuación se resumen algunos resultados teóricos para esta
clase de problemas:

Teorema (condiciones necesarias de primer orden). Si f es una


función continuamente diferenciable y x+  IRn es un mínimo local
de P), entonces: f(x+) = 0.

32/368
II. Modelos de Programación Matemática
Programación No - lineal
Investigación de Operaciones

Teorema (condiciones necesarias de segundo orden). Si f es una


función dos veces continuamente diferenciable y x+  IRn es un
mínimo local de P), entonces:
f(x+) = 0 y D2 f(x+) es semi positiva definida.
Ing. Rodrigo Sempértegui Álvarez

Dado lo anterior, no todos los puntos x  IRn que satisfacen las


propiedades mencionadas son mínimos locales de la función, sin
embargo existen resultados que proveen condiciones necesarias y
suficientes para que un punto sea un mínimo local.
Teorema (condiciones necesarias y suficientes de segundo orden).
Sea f una función dos veces continua diferenciable en x+  IRn . Si
f(x+) = 0 y D2f(x+) es positiva definida, entonces x+ es un mínimo
local estricto.

Teorema. Sea f una función convexa continuamente diferenciable,


entonces x+ es un mínimo global ssi f(x+) = 0.

33/368
II. Modelos de Programación Matemática
Programación No - lineal
Investigación de Operaciones

Ejemplo. Considere la función:


f(x1,x2) = 3 x12 + x23 - 3/2 x22
Ing. Rodrigo Sempértegui Álvarez

su gradiente y matriz Hessiana corresponden a:

 6x1 
f ( x )   2 
3
 2x  3 x 2

2 6 0 
D f (x )   
 0 6 x 2  3 

34/368
II. Modelos de Programación Matemática
Programación No - lineal
Investigación de Operaciones

De modo que hay dos posibles candidatos, x+ = (0, 0)T


y x* = (0, 1)T, que satisfacen las condiciones necesarias de
primer orden. Sin embargo
Ing. Rodrigo Sempértegui Álvarez

2 6 0 
D f (x )   
 0 6 x 2  3 
sólo es positiva definida en x* = (0,1), de modo que x* es un
mínimo local del problema.

35/368
II. Modelos de Programación Matemática
Programación No - lineal
Investigación de Operaciones

IV.3. Problemas de optimización no restringida.


Ing. Rodrigo Sempértegui Álvarez

36/368
II. Modelos de Programación Matemática
Programación No - lineal
Investigación de Operaciones

La mayor parte de los algoritmos de optimización para abordar esta


clase de problemas pertenecen a la clase de algoritmos generales
de descenso que reducen el cálculo de un mínimo local a una
secuencia de problemas de búsqueda lineal (o búsqueda
Ing. Rodrigo Sempértegui Álvarez

unidimensional).
Decimos que un vector d  IRn es una dirección de descenso de la
función f en el punto x+ ssi la derivada direccional de f en x+ en la
dirección d, es negativa:
x2

f(x)

d x+

-f(x)

Z=20
Z=10 x1 37/368
II. Modelos de Programación Matemática
Programación No - lineal
Investigación de Operaciones

Consideremos además la función unidimensional (en una variable)


g() = f(x+ + d)
donde  es un escalar real llamado el tamaño del paso. Esta función
da el valor de la función f cuando uno se mueve a partir del punto x+
Ing. Rodrigo Sempértegui Álvarez

en la dirección d un cierto paso .


Claramente, si g’(0) = fT(x+)d < 0, es posible escoger un paso  tal
que:
g() = f(x+ + d) < f(x+) = g(0)
esto es, que reduzca el valor de la función respecto del valor actual
en x+.

38/368
II. Modelos de Programación Matemática
Programación No - lineal
Investigación de Operaciones

Algoritmo general de descenso


1) Considere un punto inicial x = x0. Hacer k = 0.
2) Escoger una dirección de descenso dk.
Ing. Rodrigo Sempértegui Álvarez

3) Realizar una búsqueda lineal que seleccione un paso k tal que:


gk(k) = f(xk + kdk) < f(xk) = gk(0)
4) Hacer xk+1 = xk + kdk.
5) Hacer un test de convergencia. Si converge parar. En caso
contrario, hacer k=k+1 y volver a 2)
En el paso 5), los criterios más usuales de convergencia son que se
cumpla:
 f(xk)   
f(xk+1) - f(xk)/ (1+ f(xk))  
para un cierto número L de valores consecutivos de k, y donde  es
una tolerancia de error dada, por ejemplo  = 10-4.
39/368
II. Modelos de Programación Matemática
Programación No - lineal
Investigación de Operaciones

Existen varios métodos para escoger una dirección de descenso, uno de ellos es:

Método del Descenso más Pronunciado


Ing. Rodrigo Sempértegui Álvarez

En este método, también conocido como Método del Gradiente o Método de


Cauchy, dado la actual aproximación xk, la dirección de descenso se escoge
como:
dk = -f(xk)
Ejemplo.Considerar el problema:

Min (x1 – 2)4 + (x1 – 2x2)2


sa:

que resolvemos usando el método del descenso más pronunciado a partir del
punto x10 = 0, x20 = 3 x1  2
 x   IR
 2

40/368
II. Modelos de Programación Matemática
Programación No - lineal
Investigación de Operaciones
Ing. Rodrigo Sempértegui Álvarez

41/368
II. Modelos de Programación Matemática
Programación No - lineal
Investigación de Operaciones

Iteración xk f(xk) f(xk) k


k
Ing. Rodrigo Sempértegui Álvarez

1 (0.00,3.00) (- 0.062
52.00 44.00,24.00)
2 (2.70,1.51) (0.73, 1.28) 0.24
0.34
3 (2.52,1.20) (0.80,-0.48) 0.11
0.09
4 (2.43,1.25) (0.18, 0.28) 0.31
0.04
5 (2.37,1.16) (0.30,-0.20) 0.12
0.02
6 (2.33,1.18) (0.08, 0.12) 0.36
42/368
0.01
II. Modelos de Programación Matemática
Programación No - lineal
Investigación de Operaciones

Otra elección posible para la dirección de descenso es la que usa


el:
Método de Newton
Ing. Rodrigo Sempértegui Álvarez

Aquí el vector dk se calcula como la solución del siguiente sistema


de ecuaciones:
D2f(x)dk = - f(x)
Sin embargo, a pesar de ser un método más eficiente que el
anterior respecto de su rápidez de convergencia, requiere en cada
iteración, el cálculo de las segundas derivadas parciales y la
resolución de un sistema de ecuaciones. Además, dk está
garantizada que es una dirección de descenso sólo si D2f(xk) es
positiva definida.

Al aplicar el método al ejemplo anterior se tiene:

43/368
II. Modelos de Programación Matemática
Programación No - lineal
Investigación de Operaciones

f(xk)
Ing. Rodrigo Sempértegui Álvarez

Iteración f(xk)
k
1 (0.00,3.00) 52.00 (-44.00,24.00)
2 (0.67,0.33) 3.13 (-9.39,-0.04)
3 (1.11,0.56) 0.63 (-2.84,-0.04)
4 (1.41,0.70) 0.12 (-0.80,-0.04)
(-0.22,-0.04)
5 (1.61,0.80) 0.02 (-0.07, 0.00)

(-0.0003,-0.04)
6 (1.74,0.87) 0.05
8 (1.83,0.91) 0.0009
44/368
II. Modelos de Programación Matemática
Programación No - lineal
Investigación de Operaciones

IV.4. Problemas con restricciones de igualdad.

El problema que se desea abordar consiste en:


Ing. Rodrigo Sempértegui Álvarez

P) Min f(x)
s.a. g1(x) = b1
g2(x) = b2

g m(x) = bn mn

Definición. Decimos que x  IRn es un punto regular de las


restricciones del problema P) ssi:

gi(x) = bi i = 1, 2, ..., m

g1(x), g2(x), ..., gm(x) son vectores l.i.


45/368
II. Modelos de Programación Matemática
Programación No - lineal
Investigación de Operaciones

Para presentar algunos resultados teóricos, que permiten el cálculo


de mínimos locales, se introdujo la definición anterior, que se
relaciona con el cumplimiento de ciertas condiciones de regularidad
del problema.
Ing. Rodrigo Sempértegui Álvarez

A continuación, introducimos la función Lagrangiana asociada a P):


m
L( x,  )  f ( x )    i (gi (x )  bi )
i1
donde m)T representa el vector de los Multiplicadores
de Lagrange.

Los siguientes resultados teóricos establecen ciertas propiedades


que satisface un mínimo local, las cuales muestran, en particular,
que dicho punto es un punto estacionario de la función lagrangeana.

46/368
II. Modelos de Programación Matemática
Programación No - lineal
Investigación de Operaciones

Teorema. (Condiciones necesarias de primer orden):


Sean f(x) y g1(x),g2(x),...,gm(x) funciones continuamente
diferenciales y sea x^ un mínimo local que además es un punto
Ing. Rodrigo Sempértegui Álvarez

regular de las restricciones de P), entonces existe un vector λ^ 


IRm, de multiplicadores de Lagrange tales que:
m
 x L(x ,  )  f (x )   ^i gi (x ^ )  0
^ ^ ^
i 1

47/368
II. Modelos de Programación Matemática
Programación No - lineal
Investigación de Operaciones

Teorema (Condiciones necesarias y suficientes de


segundo orden).
Ing. Rodrigo Sempértegui Álvarez

Sean f, g1 ,g2, ..., gm funciones dos veces


continuamente diferenciables y sea x^  IRn un
punto regular de las restricciones de P) que junto
con λ^  IRm, satisfacen:
m
 xL(x ,  )  f ( x )   ^igi (x ^ )  0
^ ^ ^
i 1
m
y que D f ( x )   ^i D2 gi ( x ^ )
2 ^
i 1
es una matriz positiva definida entonces x^ es un
mínimo local de P). 48/368
II. Modelos de Programación Matemática
Programación No - lineal
Investigación de Operaciones

Ejemplo:
Min x12  x 22
Ing. Rodrigo Sempértegui Álvarez

sa : x1  x 2  4
 x1  2
x   IR
 2
Buscamos la solución óptima usando las
condiciones de optimalidad:

49/368
II. Modelos de Programación Matemática
Programación No - lineal
Investigación de Operaciones

f (x )  x12  x 22 h1(x )  x1  x 2  4
Ing. Rodrigo Sempértegui Álvarez

;m  1

f (x )  (2x1, 2x 2 )T 0 0 
h1(x )   
 0 0 

2 0  2 0 0 
2
D f (x)   D h( x )   
0 2   0 0 
 

50/368
II. Modelos de Programación Matemática
Programación No - lineal
Investigación de Operaciones

Luego las condiciones de primer orden son:


Ing. Rodrigo Sempértegui Álvarez

2x1 + λ1 = 0
2x2 + λ1 = 0
x1 + x2 - 4 = 0 ( Factibilidad)

Resolviendo el sistema: x1 = x2 = 2; λ1 = -4,


luego por existencia de la solución óptima de
P) se tiene que la solución óptima es :
x1=2 , x2=2 51/368
II. Modelos de Programación Matemática
Programación No - lineal
Investigación de Operaciones

De todos modos las condiciones de segundo orden


se cumplen pues:
2 0  0 0  2 0 
Ing. Rodrigo Sempértegui Álvarez

0 2    1 0 0   0 2 
     

es positiva definida.
Notar que en x* se tiene: m
 f (x )   *i hi (x * )
*

i1

 4  4   4 1 1
T T

52/368
II. Modelos de Programación Matemática
Programación No - lineal
Investigación de Operaciones

IV.5. Prob. con rest. de igualdad y desigualdad.


Ing. Rodrigo Sempértegui Álvarez

Por último consideramos un problema más general


de optimización:
P) Min f(x)
s.a. gi(x) = bi i = 1, 2, ..., m
hr(x) = dr r = 1, 2, ..., l

En este caso decimos que x^ es un punto regular


de las restricciones del problema ssi:

53/368
II. Modelos de Programación Matemática
Programación No - lineal
Investigación de Operaciones

gi(x^) = bi ; i = 1, 2, ..., m
Ing. Rodrigo Sempértegui Álvarez

hr(x^)  dr ; r = 1, 2, ..., l

g1(x^), g2(x^), ..., gm(x^), hj(x^) vectores l.i.

con j  { r / hr(x^) = dr }

54/368
II. Modelos de Programación Matemática
Programación No - lineal
Investigación de Operaciones

Teorema (condiciones necesarias de primer orden


de Karush-Kuhn-Tucker (KKT)).
Ing. Rodrigo Sempértegui Álvarez

Suponga que las funciones f, g1, ..., gm, h1, ..., hl


son continuamente diferenciables. Sea x^ un punto
regular de P) y mínimo local del problema,
entonces existen multiplicadores de lagrange:
m y l
m l
f (x )    i gi ( x )    r hr (x ^ )  0
^ ^
i 1 r 1
 r (hr (x ^ )  dr )  0 ; r  1, 2, ..., l
55/368
II. Modelos de Programación Matemática
Programación No - lineal
Investigación de Operaciones

IV.6. Métodos de optimización restringida.


Ing. Rodrigo Sempértegui Álvarez

a) Método de activación de restricciones


Este método se aplica en esta descripción a
problemas que sólo poseen restricciones de
desigualdad.
La idea es que si el problema no restringido tiene
una solución óptima que no satisface una parte de
las restricciones, se considera k restricciones como
de igualdad y se resuelve este problema restringido
hasta llegar a un conjunto de restricciones activas
cuya solución también satisface las restricciones
omitidas. 56/368
II. Modelos de Programación Matemática
Programación No - lineal
Investigación de Operaciones

Paso1: Resuelva el problema no restringido. Si el


óptimo satisface todas las restricciones parar, en
caso contrario, hacer k=1 e ir al paso 2.
Ing. Rodrigo Sempértegui Álvarez

Paso 2: Activar cualquiera de las k restricciones y


hallar una solución que satisfaga las condiciones
de optimalidad KKT. Si la solución resulta factible
para las restantes restricciones parar. Sino, active
otro conjunto de k restricciones y repita el paso. Si
se han tomado todos los conjuntos de k
restricciones sin hallar solución factible ir al paso 3.

57/368
II. Modelos de Programación Matemática
Programación No - lineal
Investigación de Operaciones

Paso 3: Si k = L (# total de restricciones)


no existe solución factible. En caso
Ing. Rodrigo Sempértegui Álvarez

contrario, hacer k= k+1 e ir a paso 2.

Ejemplo. Consideremos el problema:


Min (2x1 – 5)2 + (2x2 – 1)2
s.a. x1 + 2x2  2
x1, x2  0
58/368
II. Modelos de Programación Matemática
Programación No - lineal
Investigación de Operaciones

El problema no restringido tiene como


solución a
Ing. Rodrigo Sempértegui Álvarez

x1* = 5/2 y x2* = ½

obtenida al resolver: f(x) = 0

Claramente, este punto no satisface la


restricción:
h1(x1,x2) = x1 + 2x2  2.
59/368
II. Modelos de Programación Matemática
Programación No - lineal
Investigación de Operaciones

Consideramos entonces activa la restricción


lineal, esto es resolvemos:
Ing. Rodrigo Sempértegui Álvarez

f(x1, x2) +  h1(x1, x2) = 0


h1 (x1, x2) = 2

Cuya solución optima es:


x1^ = 22/10 = 11/5
x2^ = -1/10
^ = -12/5 que no satisface x2  0
60/368
II. Modelos de Programación Matemática
Programación No - lineal
Investigación de Operaciones

Continuando con el método, si sólo se activa x1= 0 se


llega al mínimo local:
Ing. Rodrigo Sempértegui Álvarez

x1 = 0, x2 = ½ 2= 0, 1= 0, 3= 0

Notar que otro mínimo local se tiene con


x1 + 2x2  2 y x2 = 0 activas, obteniéndose:
x1 = 2, x2 = 0.

61/368
II. Modelos de Programación Matemática
Programación No - lineal
Investigación de Operaciones

b) Método de Frank – Wolfe.


Ing. Rodrigo Sempértegui Álvarez

Este método permite la resolución de un problema


cuya función objetivo es una función convexa no-
lineal y cuyas restricciones son todas lineales. Este
método reemplaza la función objetivo por una
secuencia de funciones lineales que la aproximan,
dando así origen a una secuencia de problemas de
programación lineal.

62/368
II. Modelos de Programación Matemática
Programación No - lineal
Investigación de Operaciones

Si xk es la actual aproximación a la solución


óptima del problema
Ing. Rodrigo Sempértegui Álvarez

P) Min f(x)
s.a. Ax = b
x0

Entonces la expansión en serie de Taylor


en torno a x =xk, a saber f(x) = f(xk) + f(xk)
(x – xk), permite aproximar el problema P)
por el problema lineal: 63/368
II. Modelos de Programación Matemática
Programación No - lineal
Investigación de Operaciones

Min f(xk) + f(xk)(x – xk)


s.a. Ax = b
Ing. Rodrigo Sempértegui Álvarez

x0
o equivalentemente, eliminando los
términos constantes, se puede considerar
el problema:
PLk) Min f(xk)x
s.a. Ax = b
x0
64/368
II. Modelos de Programación Matemática
Programación No - lineal
Investigación de Operaciones

Si xPLk denota la solución óptima de


PLk), este punto no necesariamente es
Ing. Rodrigo Sempértegui Álvarez

cercano a xk de modo que es


necesario proponer un punto que
resulte de hacer una minimización
unidimensional en el segmento que
une xk con xPLk.

Todo lo anterior se resume en el


siguiente algoritmo: 65/368
II. Modelos de Programación Matemática
Programación No - lineal
Investigación de Operaciones

Pao 0: Escoger un punto inicial factible x0. Hacer


k = 1.
Ing. Rodrigo Sempértegui Álvarez

Paso 1: Evaluar c= f(xk-1)


Paso 2: Hallar la solución óptima xPLk del siguiente
problema lineal
Min cT x
s.a. Ax = b
x0

66/368
II. Modelos de Programación Matemática
Programación No - lineal
Investigación de Operaciones

Paso 3: Para la variable   [0, 1], se define


g() = f(xk-1 +  [xPLk – xk-1])
Ing. Rodrigo Sempértegui Álvarez

Usar algún procedimiento de minimización


unidimensional para hallar un k que aproxime la
solución de Min { g() /   [0, 1]}

67/368
II. Modelos de Programación Matemática
Programación No - lineal
Investigación de Operaciones

Paso 4: Hacer xk = xk-1 + k (xPLK – xk-1)


Paso 5: Si se satisface el criterio de parada del
Ing. Rodrigo Sempértegui Álvarez

método, parar. En caso contrario, hacer k = k + 1 y


volver al Paso 1.

68/368
II. Modelos de Programación Matemática
Programación No - lineal
Investigación de Operaciones

Ejemplo.
Min x12 – 5x1 + 2x22 – 8x2
Ing. Rodrigo Sempértegui Álvarez

sa: 3x1 + 2x2  6


x1, x2  0

Iteración k x k-1 f(x k-1) xLPk xk k


1 (0, 0) (-5, -8) (0, 3) (0, 2) 2/3
2 (0, 2) (-5, 0) (2, 0) (5/6, 5/12
7/6)

69/368
II. Modelos de Programación Matemática
Programación No - lineal
Investigación de Operaciones

BIBLIOGRÁFIA EN PROGRAMACIÓN NO LINEAL

1. Nonlinear Programming, M.Bazaraa, H.Sherali and C.Shetty.


John Wiley & Sons, Inc., New York, Second Edition 1993.
Ing. Rodrigo Sempértegui Álvarez

2. Nonlinear Programming, D.Bertsekas. Athena Scientific USA,


1995.
3. Numerical Methods for Unconstrained Optimization and
Nonlinear Equations, J.Dennis and R.Schnabel. SIAM Classics in
Applied Mathematics 16. SIAM Publications, Philadelphia, 1996.
4. Practical Methods of Optimization, R.Fletcher. John Wiley &
Sons, Inc., 1981.
5. Introducción a la Programación Lineal y No Lineal,
D.Luenberger. Adisson Wesley Iberoamericana 1989.
6. Mathematical Programming: Theory and Algorithms, M.Minoux.
John Wiley & Sons, Inc., New York, 1986
7. Optimization Software Guide, J.Moré and S.Wright, SIAM
Frontiers in Applied Mathematics 14, SIAM Publications,
Philadelphia 1993.

70/368
II. Modelos de Programación Matemática
Programación No - lineal
Investigación de Operaciones

DIRECCIONES ELECTRÓNICAS EN PROGRAMACIÓN NO


LINEAL
Ing. Rodrigo Sempértegui Álvarez

•Preguntas de consulta frecuente en Programación No Lineal:


http://www-unix.mcs.anl.gov/otc/Guide/faq/nonlinear-programming-faq.html

•Servidor NEOS, guía de software de Programación No Lineal :


http://www-fp.mcs.anl.gov/otc/Guide/SoftwareGuide/Categories/unconstropt.html
http://www-fp.mcs.anl.gov/otc/Guide/SoftwareGuide/Categories/constropt.html

•Servidor NEOS, ejemplo problema de carteras de inversión:


http://www-fp.mcs.anl.gov/otc/Guide/CaseStudies/port/index.html

•Guía de software de Programación No Lineal en revista OR&MS Today


(INFORMS Magazine):
http://lionhrtpub.com/software-surveys.shtml

71/368
Investigación de Operaciones III. Programación Dinámica

Contenidos
Ing. Rodrigo Sempértegui Álvarez

III. Programación Dinámica

72/368
Investigación de Operaciones III. Programación Dinámica

III.Programación Dinámica
Ing. Rodrigo Sempértegui Álvarez

• La programación dinámica se utiliza tanto en problemas lineales


como no lineales.
• La programación dinámica es útil para resolver un problema
donde se deben tomar una serie de decisiones interrelacionadas.
• A diferencia de la P.L, la programación dinámica no tiene
formulación matemática estándar. Se trata de un enfoque de tipo
general para la solución de problemas, y las ecuaciones se
derivan de las condiciones individuales de los mismos.

73/368
Investigación de Operaciones III. Programación Dinámica

El problema de la diligencia
Un cazafortunas desea ir de Missouri a California en una
diligencia, y quiere viajar de la forma más segura posible. Tiene
Ing. Rodrigo Sempértegui Álvarez

los puntos de salida y destino conocidos, pero tiene múltiples


opciones para viajar a través del territorio.
Se entera de la posibilidad de adquirir seguro de vida como
pasajero de la diligencia.
El costo de la póliza estándar (Cij) se muestra en la tabla de la
siguiente página.
¿Cuál es la ruta que minimiza el costo de la póliza de seguro?

74/368
Investigación de Operaciones
Ing. Rodrigo Sempértegui Álvarez
III. Programación Dinámica

75/368
Investigación de Operaciones III. Programación Dinámica

Algunas Alternativas de Solución


1. Enumeración exhaustiva: enumerar todas las rutas
posibles, calcular su costo y elegir la de menor valor. En
Ing. Rodrigo Sempértegui Álvarez

total son 18.


2. Elegir la ruta más barata en cada etapa. Esta solución no
necesariamente conduce al óptimo global. Un pequeño
sacrificio en una etapa puede permitir myores ahorros más
adelante
3. Programación Dinámica:
 Estrategia de solución: un problema complejo es
desagregado en problemas más simples que se resuelven
etapa por etapa
 En el caso de la diligencia un problema simple sería pensar
qué pasaría si al viajero sólo le faltara una etapa del viaje
76/368
III. Programación Dinámica

Por P.D la solución sería entonces ir desde el estado actual (i


Investigación de Operaciones

cualquiera que sea) y llegar a su destino final (estado J) al costo cij.


Se hace lo mismo para cada jornada (etapa), ensanchando el
problema. Así encontramos la solución óptima del lugar al que debe
Ing. Rodrigo Sempértegui Álvarez

dirigirse teniendo en cuenta la información de la iteración anterior.

Formulación
Sea Xn ( n = 1,2,3,4 ) las variables que representan el destino
inmediato en la etapa n.
A → X1 → X2 → X3 → X4 Donde X4 = J
Sea fn (S, Xn) el costo total de la mejor política global para las etapas
restantes, dado que el agente se encuentra en el estado S, listo para
iniciar la etapa n y se dirige a Xn como destino inmediato.

77/368
III. Programación Dinámica

Dados S y n , sea Xn* el valor de Xn (no necesariamente único), que


Investigación de Operaciones

minimiza fn (S , Xn) , y sea fn*(S) el valor mínimo correspondiente de


fn (S, Xn) entonces:
fn* (S) = Min Xn fn(S, Xn) = fn(S, Xn*)
Ing. Rodrigo Sempértegui Álvarez

Costo Mínimo costo


fn(S, Xn) = Inmediato + futuro (etapa
(etapa n) n+1 en adelante)

= cs , xn + fn+1* (Xn)
↓ ↓
Costo por ir Costo óptimo
de la ciudad i acumulado
al destino j

78/368
III. Programación Dinámica
Etapa n=4
Investigación de Operaciones

Como el destino final (estado J) se alcanza al terminar la etapa 4,


entonces

f5*(J) = 0
Ing. Rodrigo Sempértegui Álvarez

El objetivo es hallar f1*(A) y su ruta correspondiente.


Cuando el cazafortunas tiene sólo una etapa por recorrer (n=4) , su
ruta de ahí en adelante, estará determinada por el estado actual (H o
I) y su destino final X4=J

La ruta será: S →J donde S= H o I

Luego f4*(S) = cS,J + f5*(J) = cS,J


f4(H) = cH,J = 3
f4(I) = cI,J = 4

79/368
III. Programación Dinámica

Etapa n=3
Investigación de Operaciones

El cazafortunas tiene 2 etapas por recorrer (n=3).


Suponga que sale de E.
Ing. Rodrigo Sempértegui Álvarez

Luego f3*(E) = 4 y X3* = H


En general para la etapa 3 se tiene:

80/368
III. Programación Dinámica
Etapa n=2
Investigación de Operaciones

En la segunda etapa, el cazafortunas tiene 3 jornadas por recorrer


(n=2). Suponga que sale de C.
Ing. Rodrigo Sempértegui Álvarez

Luego f2*(C) = 7 y X2* = E


En general para la etapa 2 se tiene:

81/368
III. Programación Dinámica
Etapa n=1
Investigación de Operaciones

En la primera etapa, el cazafortunas tiene todas las jornadas por


recorrer (n=1). Necesriamente debe salir de A.
Ing. Rodrigo Sempértegui Álvarez

Luego f1*(A) = 11 y X1* = C ó D


Veamos:

82/368
III. Programación Dinámica

La solución del problema gráficamente


Investigación de Operaciones
Ing. Rodrigo Sempértegui Álvarez

Podemos ver que hay 3 soluciones óptimas

83/368
III. Programación Dinámica
Características de la P.D
Investigación de Operaciones

1. El problema se puede dividir por etapas, que requieren una


política de decisión en cada una de ellas.
2. Cada etapa tiene un cierto número de estados asociados a su
inicio. (Estados son las diferentes condiciones posibles en las que se
Ing. Rodrigo Sempértegui Álvarez

puede encontrar el sistema en cada etapa del


problema).
3. El efecto de la política de decisión en cada etapa, es transformar
el estado actual en un estado asociado con el INICIO de la siguiente
etapa.
4. El procedimiento pretende hallar la política óptima para el
problema completo. Esto quiere decir, la política a emplear desde
cualquier posible estado del problema.
5. Dado el estado actual, la política óptima desde este estado es
independiente de las políticas adoptadas en las etapas anteriores.
(la solución depende únicamente del estado actual y no de cómo se
llegó allí) PRINCIPIO DE OPTIMALIDAD EN LA P.D, (Richard
Bellman, 1957)

84/368
III. Programación Dinámica
Características de la P.D cont….
Investigación de Operaciones

6. El procedimiento de la solución termina cuando se obtiene la


política óptima de la última etapa (por lo general la solución en esta
etapa es trivial)
7. Siempre se dispone de una relación recursiva (esto es lo que
Ing. Rodrigo Sempértegui Álvarez

permite trabajar las decisiones interrelacionadas).


La relación recursiva será:
fn* (Sn)= Max Xn { fn (Sn, Xn) } ó fn* (Sn)= Min Xn { fn (Sn, Xn) }

Donde:
N: Número de etapas
n: etiqueta para la etapa actual (n=1,2,3,…N)
Sn: Estado actual para la etapa n
Xn: Variable de decisión para la etapa n

85/368
III. Programación Dinámica
Características de la P.D cont….
Investigación de Operaciones

8.Cuando se tiene una relación recursiva como la de la función, el


procedimiento de solución “hacia atrás” inicia en la última etapa y se
mueve hacia la primera, etapa por etapa
Ing. Rodrigo Sempértegui Álvarez

Xn* : Valor óptimo de Xn dado Sn

86/368
Investigación de Operaciones III. Programación Dinámica

ALGORITMO DE P.D. HACIA ATRÁS: Para cada valor


probable de la variable de estado al inicio de la etapa,
determinar el mejor estado final
Ing. Rodrigo Sempértegui Álvarez

ALGORITMO DE P.D. HACIA ADELANTE: Para cada


valor probable de la variable de estado al final de la
etapa, determinar el mejor estado inicial

87/368