Está en la página 1de 30

TEMA 5.

6
PROGRAMACIÓN NO LINEAL

5.6.1. INTRODUCCIÓN

5.6.2. CONCEPTOS BÁSICOS

5.6.3. MÉTODO
O O DE N
NEWTON
W ON S
SIN
N RESTRICCIONES
S CC ON S

5.6.4. MÉTODO DE NEWTON CON RESTRICCIONES. FUNCIONES DE


PENALIZACIÓN.
TEMA 5.6. PROGRAMACIÓN NO LINEAL

INTRODUCCIÓN

Un modelo matemático o problema se dice que pertenece a la


programación no lineal si la función objetivo y/o alguna de las
restricciones del problema son una función no lineal de las variables de
d i ió (modelo
decisión ( d l o problema
bl no lineal).
li l) Si la
l función
f ió objetivo
bj ti y/o/ alguna
l
de las restricciones son no lineales y las variables sólo pueden tomar
valores enteros no negativos (modelo o problema no lineal entero),
entonces el modelo matemático pertenecería al campo de la
programación no lineal entera.

Problemas de estas características surgen de forma inevitable en las


aplicaciones de ingeniería, tales como diseño y control óptimo, y en
aplicaciones científicas. Además muchos problemas que se formulan como
lineales se convierten en no lineales cuando se tienen en cuenta economías
de escala (por ejemplo, costes no proporcionales a la cantidad).

ESTADÍSTICA Y OPTIMIZACIÓN 2
TEMA 5.6. PROGRAMACIÓN NO LINEAL

Ejemplo:

 0  El óptimo está en la frontera


 2
 max 3 x1  5 x2     
   6,69   6
 s.a x1  4 
 9 x12  5 x25  224  Z=36
 
  
 x1 , x 2 0 

x1  4

ESTADÍSTICA Y OPTIMIZACIÓN 3
TEMA 5.6. PROGRAMACIÓN NO LINEAL

Ejemplo (PNL cuadrática y separable):

 max 126 x1  9 x12  182 x2  13x22 


 
 s.a x1  4   2
 
 2 x  12  0
  6
 2  6 8 
 3x1  2 x2  18   3
 5 
    Z=907
 x 1 , x 2  0 
Z*=857
 4
 
 3 Z=807

0
 
 4

ESTADÍSTICA Y OPTIMIZACIÓN 4
TEMA 5.6. PROGRAMACIÓN NO LINEAL

Ejemplo (PNL cuadrática y separable)

 2
 max 54 x1  9 x12  78 x2  13x22   
  6
 s.a x1  4  0
 
  6
 2 x 2  12 
 3 x1  2 x2  18  Z=189
 
 x 1 , x 2  0  Z*=265
 3
x*     4
 
 3  3
Z=117

Z=162

0
 
 4
ESTADÍSTICA Y OPTIMIZACIÓN 5
TEMA 5.6. PROGRAMACIÓN NO LINEAL

Con estos tres últimos ejemplos queremos mostrar es que el óptimo puede estar en
cualquier sitio de la región factible.

Como el óptimo en un PNL no necesariamente se alcanza en la frontera de la región


factible necesitamos describir algoritmos que tengan en cuenta todos los puntos de
factible,
la región factible.

Máx locales en x=0,2,4

f : 0,5  R Máx global en x=4


Min local x= 1,3,5
Min global x=5

1 5

ESTADÍSTICA Y OPTIMIZACIÓN 6
TEMA 5.6. PROGRAMACIÓN NO LINEAL

Sin embargo, muchos problemas no lineales tienen óptimos locales


únicos que, por definición, necesariamente deben ser globales. Por
ejemplo las siguientes condiciones garantizan,
ejemplo, garantizan si existe,
existe que el óptimo es
global:

1
1. La función
L f ió objetivo
bj i ded máximo
á i y cóncava,
ó o ell logaritmo
l i d la
de l
función objetivo cóncava, con restricciones lineales.

2. La función objetivo de mínimo y convexa, con restricciones


lineales.

No obstante, cuando apliquemos el algoritmo de Newton, en general, no


conoceremos si la solución obtenida es un óptimo global. Como
consecuencia, se suele intentar la prueba de iniciar el algoritmo desde
diferentes puntos para determinar si el problema tiene diferentes
soluciones óptimas.

ESTADÍSTICA Y OPTIMIZACIÓN 7
TEMA 5.6. PROGRAMACIÓN NO LINEAL

2 f
 0 ( 0) x
x 2

Función cóncava (curvatura Función convexa (curvatura


hacia abajo) hacia arriba)

f(x)
f(x)
( )

ESTADÍSTICA Y OPTIMIZACIÓN 8
TEMA 5.6. PROGRAMACIÓN NO LINEAL

CONCEPTOS BÁSICOS

 min f ( x1 ,..., xn ) 
 
min f ( x)  s.a g1 ( x1 ,..., xn )  0 
  ................... 
( PNL) s.a : xF  
 x  Rn
( PNL) g m ( x1 ,..., xn )  0 
  h1 ( x1 ,..., xn )  0 
 
F definido
d fi id a partir
ti de
d un  ................. 
 hl ( x1 ,..., xn )  0 
conjunto de restricciones 

ALGORITMOS DE SOLUCIÓN BÁSICOS:

1. Algoritmos que no utilizan derivadas

2 Algoritmos
2. Al i que utilizan
ili derivadas
d i d
ESTADÍSTICA Y OPTIMIZACIÓN 9
TEMA 5.6. PROGRAMACIÓN NO LINEAL

Cuando las funciones del problema son funciones diferenciables, podemos aplicar
algoritmos de solución basados en las derivadas de la/s función/es. Dos conceptos
básicos asociados con las funciones diferenciables son el gradiente y el hessiano
(para el cálculo de este último se necesita q
(p que la función sea dos veces
diferenciable)

Dada una función f: Rn  R, se define el gradiente de f, f, como

f  x , x ,..., x    .
t
f  x1 ,..., xn  f  x1 ,..., xn  f  x1 ,..., xn 

1 2 n
x1 , x2 ,..., xn

INTERPRETACIÓN: el gradiente de una función (campo) escalar indica en cada


punto
t la
l dirección
di ió de
d máximo
á i crecimiento
i i t ded la
l misma.
i Ai i
Asimismo, ell gradiente
di t ded
una función en un punto es el vector normal al hiperplano tangente de la función
en dicho punto.

Una condición necesaria para que un punto sea un máximo o mínimo (local) de
una función es que su gradiente sea cero en dicho punto, es decir que sea un punto
estacionario.
ESTADÍSTICA Y OPTIMIZACIÓN 10
TEMA 5.6. PROGRAMACIÓN NO LINEAL

Dada una función f: Rn  R, se define el hessiano de f, Hf, como

 f  x1 ,...,xn 
  2 f  x1 ,...,xn  
2

 x1x1 ... x1xn 


Hf  x1 , x2 ,..., xn    ... ... ... .
  f  x ,...,x   2 f  x1 ,...,xn 
 x x 
2
1 n
...
 n 1
xn xn 

INTERPRETACIÓN: el hessiano de una función nos sirve para dar


condiciones suficientes para que un punto estacionario de la función sea un
máximo o mínimo (relativo).

ESTADÍSTICA Y OPTIMIZACIÓN 11
TEMA 5.6. PROGRAMACIÓN NO LINEAL

MÉTODO DE NEWTON SIN RESTRICCIONES

ALGORITMO DE NEWTON PARA PROBLEMAS DE UNA SOLA


VARIABLE:

Paso 0: Elegir  > 0 para precisión mínima.


mínima Elegir x1 como semilla de inicio.
inicio

Paso 1: Calcular f ’(x1) y f ’’(x1). Calcular x2 = x1 – f ’(x1)/f ’’(x1). IR al Paso 2.

Paso 2: Si x2 – x1 <  o f ’(x1) < , entonces PARAR x1 es una solución para
el problema. En otro caso, hacer x1 := x2 e IR al Paso 1.

CARACTERÍSTICAS:

1. Se utiliza para funciones dos veces derivables.


2. Se basa en la aproximación cuadrática de una función.
3. Sirve p
para buscar ppuntos qque anulan la derivada de la función.
4. La segunda derivada debe ser no nula en cada punto.
ESTADÍSTICA Y OPTIMIZACIÓN 12
TEMA 5.6. PROGRAMACIÓN NO LINEAL

EJEMPLO: resolver el siguiente PNL por el algoritmo de Newton.

min x4  x2  2x
epsilón = 0,0001
Iteración x1 x2 Abs(f'(x1)) Abs(x2 - x1)
1 -3,0000
3,0000 -2,0189
2,0189 104,0000 0,9811
2 -2,0189 -1,3607 30,8765 0,6582
4 xn31  2 xn 1  2 3 -1,3607 -0,8979 9,3552 0,4627
xn  xn1  4 ,
-0,8979 -0,4940
, 3,1000
, 0,4039
,
12 xn21  2
5 -0,4940 1,1151 1,4942 1,6091
6 1,1151 1,0132 1,3158 0,1018
7 1,0132 1,0002 0,1345 0,0130
8 1,0002 1,0000 0,0021 0,0002
9 1,0000 1,0000 0,0000 0,0000

ESTADÍSTICA Y OPTIMIZACIÓN 13
TEMA 5.6. PROGRAMACIÓN NO LINEAL

Microsoft Excel 10.0 Informe de respuestas


Hoja de cálculo: [Programación ni lineal.xls]Hoja5

Celda objetivo
j ((Mínimo))
Celda Nombre Valor original Valor final
$B$20 FUNC.OBJ. Iteración 78 -2

Celdas cambiantes
Celda
Ce da Nombre
o be Valor
a o original
o g a Valor
a o final
a
$C$18 X -3 0,999999863

Restricciones
NINGUNA

ESTADÍSTICA Y OPTIMIZACIÓN 14
TEMA 5.6. PROGRAMACIÓN NO LINEAL

300

250

200 1
150 0,8
100 0,6
50 0,4
0 0,2
-5 -4 -3 -2 -1 0 1 2 3 0
-50
-1 -0,8 -0,6 -0,4 -0,2
-0,2 0 0,2 0,4 0,6 0,8 1 1,2 1,4 1,6 1,8 2

-0,4
-0,6
-0,8
-1
-1,2
-1,4
14
-1,6
-1,8
-2

ESTADÍSTICA Y OPTIMIZACIÓN 15
TEMA 5.6. PROGRAMACIÓN NO LINEAL

EJEMPLO: resolver el siguiente PNL por el algoritmo de Newton.

min x x  1x  2  x  3 x  4 x  5


6
5
4
3
2
1
0
-0,5 -1 0 0,5 1 1,5 2 2,5 3 3,5 4 4,5 5 5,5 6 xn5  75 xn4  340 xn3  675 xn2  548 xn  120
xn 1  xn 
-2
30 xn4  300 xn3  1020 xn2  1350 xn  548
-3
-4
-5
-6
-7
-8
-9
-10
-11
11
-12
-13
-14
-15
-16
-17
-18
ESTADÍSTICA Y OPTIMIZACIÓN 16
TEMA 5.6. PROGRAMACIÓN NO LINEAL

Microsoft Excel 10.0 Informe de respuestas Microsoft Excel 10.0 Informe de respuestas
Hoja de cálculo: [Programación ni lineal.xls]Hoja6 Hoja de cálculo: [Programación ni lineal.xls]Hoja6

Celda objetivo (Mínimo) Celda objetivo (Mínimo)


C
Celda Nombre Valor original Valor final
f C ld
Celda N
Nombre
b Valor
V l original
i i l Valor
V l final
fi l
$C$4 f(x) 720 -16,90089433 $C$4 f(x) 4,921875 -3,515625

Celdas cambiantes Celdas cambiantes


Celda Nombre Valor original Valor final Celda Nombre Valor original Valor final
$B$4 x -1 0,336553473 $B$4 x 3,5 2,49999983

Restricciones Restricciones
NINGUNA NINGUNA

Microsoft Excel 10.0 Informe de respuestas Microsoft Excel 10.0 Informe de respuestas
Hoja de cálculo: [Programación ni lineal.xls]Hoja6 Hoja de cálculo: [Programación ni lineal.xls]Hoja6

Celda objetivo (Mínimo) Celda


C ld objetivo
bj ti (Mí(Mínimo)
i )
Celda Nombre Valor original Valor final Celda Nombre Valor original Valor final
$C$4 f(x) 2,999267578 -3,515625 $C$4 f(x) 4,229736328 -16,90089433

Celdas
C ld cambiantes
bi t Celdas cambiantes
Celda Nombre Valor original Valor final Celda Nombre Valor original Valor final
$B$4 x 1,75 2,499999302 $B$4 x 3,75 4,663446522

Restricciones Restricciones
NINGUNA NINGUNA

ESTADÍSTICA Y OPTIMIZACIÓN 17
TEMA 5.6. PROGRAMACIÓN NO LINEAL

ALGORITMO DE NEWTON PARA PROBLEMAS DE VARIAS


VARIABLES:

Paso 0: Elegir  > 0 para precisión mínima. Elegir x1 como semilla de inicio.

Paso 1: Calcular f(x1) y Hf(x1). Calcular x2 = x1 – Hf(x1)-1 f(x1). IR al Paso 2.

Paso 2: Si  x2 – x1  <  ó f(x


  < , entonces PARAR x1 es una solución
1)

para el problema. En otro caso, hacer x1 := x2 e IR al Paso 1.

CARACTERÍSTICAS:

1. Se utiliza p
para funciones dos veces diferenciables.
2. Se basa en la aproximación cuadrática de una función.
3. Sirve para buscar puntos que anulan el gradiente de una función.
4
4. Debe existir la inversa del hessiano en cada punto.
punto

ESTADÍSTICA Y OPTIMIZACIÓN 18
TEMA 5.6. PROGRAMACIÓN NO LINEAL

EJEMPLO: resolver el siguiente PNL por el algoritmo de Newton.

max x 2 y  2 xy  y 2  3 y

 f   f2
 f
2 
 x ( x , y )   2 xy  2 y   ( x , y ) ( x , y )   2y 2 x  2
  x 2
x  y 
f ( x , y )   f 
  2  H ( f ( x , y ))   2 x  2 
 ( x , y )  x  2 x  2 y  3   2
f  2
f    2 
 ( x , y) ( x , y) 
 y   yx y 2

x2 = x1 – Hf(x1)–1f(x1)
1
  1  0   1   12 0   1
iter1    f     Hf        
1
  1   2   1  0  2   2
  1 0
iter 2   f    STOP OJO: si estuviésemos minimizando ocurriría lo
  2 0 mismo, por lo que – Hf(x1)–1f(x1) no sería una
verdadera
d d dirección
di ió ded descenso.
d
ESTADÍSTICA Y OPTIMIZACIÓN
TEMA 5.6. PROGRAMACIÓN NO LINEAL

0
-2,5 -2 -1,5 -1 -0,5 0

-0 5
-0,5

-1

-1,5

-2

-2,5

-3

-3,5

-4
ESTADÍSTICA Y OPTIMIZACIÓN 20
TEMA 5.6. PROGRAMACIÓN NO LINEAL

Microsoft Excel 10.0 Informe de respuestas


Hoja de cálculo: [Programación no lineal.xls]Hoja13 x y f(x,y)
1 1 -1
Celda objetivo (Máximo) 2 2 6
Celda Nombre Valor original Valor final 3 3 27
$B$4 FUNC.OBJ. 3 4 4 4 68
5 5 135
Celdas cambiantes 6 6 234
Celda Nombre Valor original Valor final 7 7 371
$C$2 X -1 -1,0000005 8 8 552
$D$2 Y -1
1 -2,000000019
2,000000019 9 9 783
10 10 1070
Restricciones 11 11 1419
NINGUNA 12 12 1836
13 13 2327
14 14 2898
15 15 3555
16 16 4304
17 17 5151
18 18 6102
19 19 7163
20 20 8340

ESTADÍSTICA Y OPTIMIZACIÓN 21
TEMA 5.6. PROGRAMACIÓN NO LINEAL

ALGORITMO DEL GRADIENTE PARA PROBLEMAS DE VARIAS


VARIABLES:

Paso 0: Elegir  > 0 para precisión mínima. Elegir x1 como semilla de inicio.

Paso 1: Calcular f(x1). Resolver el problema de una variable min f(x1– mf(x1)),
m  0. IR al Paso 2. (Si maximizamos, max f(x1+mf(x1)), m  0.)

Paso 2: Si  x2 – x1  <  ó f(x1) < , entonces PARAR x1 es una solución


para el problema. En otro caso, hacer x1 := x2 e IR al Paso 1.

ESTADÍSTICA Y OPTIMIZACIÓN 22
TEMA 5.6. PROGRAMACIÓN NO LINEAL

EJEMPLO: resolver el siguiente PNL por el algoritmo del gradiente.

x y
max 3 x 2  y 2  xy

   2 xy 
2
3 x
 3 x 2  y 2  xy 2 
f  x , y    3 y 2  2 xy 
 3 x 2  y 2  xy  
2 0,4

0,35

0,3

0,25

0  13   13 m
iter1   f      max m3
0,2
2m
1 1 m  9 m 2 0,15

0 3 3 0,1

0 05
0,05
1 0
iter 2   f    STOP
0
0 1 2 3 4 5 6

1 0

ESTADÍSTICA Y OPTIMIZACIÓN 23
TEMA 5.6. PROGRAMACIÓN NO LINEAL

Dificultades del algoritmo


g de Newton:

• Existencia de múltiples mínimos locales

• Convergencia de los algoritmos al mínimo global

• Suavidad de las funciones a minimizar

• Selección
S l ió deld l punto
t inicial
i i i l

• – Hf(x)-1 f(x) puede no ser una dirección de descenso (en el


algoritmo del gradiente esto no sucede)

ESTADÍSTICA Y OPTIMIZACIÓN 24
TEMA 5.6. PROGRAMACIÓN NO LINEAL

MÉTODO DE NEWTON CON RESTRICCIONES


RESTRICCIONES. FUNCIONES DE PENALIZACIÓN

FUNCIONES DE PENALIZACIÓN:

Se utilizan para penalizar puntos que sean infactibles y no hacerlo para aquellos que son
factibles. De este modo se intenta transformar problemas no lineales con restricciones en
problemas no lineales sin restricciones y poder aplicar los métodos anteriores.
anteriores Dependiendo
del tipo de restricción las funciones de penalización serán de una forma u otra.

Restricción Función de penalización


g ( x)  0  max{0, g ( x)}
r

h( x )  0   h( x )
r

La función de penalización de un PNL con restricciones vendrá dada por:

m l
p ( x)   max{0, g i ( x)}   hi ( x)
r r

i 1 i 1

25
TEMA 5.6. PROGRAMACIÓN NO LINEAL

ALGORITMO DE NEWTON CON FUNCIONES DE PENALIZACIÓN:

Paso 0:
P El i  > 0 para criterio
0 Elegir it i de
d terminación.
t El i x1 como semilla
i ió Elegir ill de
d
inicio, 1 escalar de penalización y un escalar  > 1.

Paso 1: Comenzando con el punto x1 solucionar el problema no lineal aplicando


el algoritmo de Newton (o el algoritmo del gradiente)
min
i f ( x)  1 p ( x)
s.a : x  n

Sea x2 una solución del problema e IR al Paso 2.

Paso 2: Si 1p(x2) < ,


 entonces PARAR x2 es una solución del problema original.
original
En otro caso, HACER 1 := 1 y x1 := x2 e IR al Paso 1.

ESTADÍSTICA Y OPTIMIZACIÓN 26
TEMA 5.6. PROGRAMACIÓN NO LINEAL

EJEMPLO resolver el siguiente PNL por el algoritmo de Newton con funciones


de penalización
penalización.
min ( x1  2) 4  ( x1  2 x2 ) 2
s.a : x12  x2  0

Paso 0:  = 0.0005, x1 = (2, 1), 1 = 0.1,  = 10, penalización cuadrática (r = 2) y


elegimos el algoritmo de Newton para resolver los sucesivos PNL sin
p
restricciones del tipo:

min ( x1  2) 4  ( x1  2 x2 ) 2   k ( x12  x2 ) 2
iteración k - ésima

ESTADÍSTICA Y OPTIMIZACIÓN 27
TEMA 5.6. PROGRAMACIÓN NO LINEAL

Iteración 1 x1 x2 f(x2) 1p(x2)

1 0.1 (2, 1) (1.4538, 0.7607) 0.0935 0.1831

2 1 (1.4538, 0.7607) (1.1687, 0.7406) 0.5753 0.3908

3 10 (1 1687 0.7406)
(1.1687, 0 7406) (0 9906 0.8425)
(0.9906, 0 8425) 1 5203
1.5203 0 1926
0.1926

4 100 ((0.9906,, 0.8425)) ((0.9508,, 0.8875)) 1.8917 0.0267

5 1000 (0.9508, 0.8875) (0.9461, 0.8934) 1.9405 0.0028

6 10000 (0.9461, 0.8934) (0.9456, 0.8941) 1.9456 0.0003

ESTADÍSTICA Y OPTIMIZACIÓN 28
TEMA 5.6. PROGRAMACIÓN NO LINEAL

Microsoft Excel 10.0 Informe de respuestas


Hoja
j de cálculo: [Programación
[ g no lineal.xls]Hoja10
] j

Celda objetivo (Mínimo)


Celda Nombre Valor original Valor final
$B$4 FUNC.OBJ. 0 1,946181665

Celdas cambiantes
Celda Nombre Valor original Valor final
$C$2 X1 2 0,945504203
$D$2 X2 1 0,893977559

Restricciones
Celda Nombre Valor de la celda fórmula Estado Divergencia
$B$6 R1 6 39723E 07 $B$6
6,39723E-07 $B$6=$D$6
$D$6 O i
Opcional
l 0

ESTADÍSTICA Y OPTIMIZACIÓN 29
TEMA 5.6. PROGRAMACIÓN NO LINEAL

Dificultades del algoritmo de Newton con restricciones:

• Existencia de múltiples
p mínimos locales

• Convergencia de los algoritmos al mínimo global

• Suavidad de las funciones a minimizar

• Selección del punto inicial

• – Hf(x)-1 f(x) puede no ser una dirección de descenso

ESTADÍSTICA Y OPTIMIZACIÓN 30

También podría gustarte