7
Postgrado de Investigación de Operaciones
min θ(∆)
∆
a b
∆
a b
Salida:
∆: Solución del problema.
k=0
∆min = a
Inicialización
θmin = θ(a)
∆k = a
F
θ(∆k) < θmin
V
k=k+1 ∆min = ∆k Búsqueda
∆k+1 = ∆k + δ θmin = θ(∆k)
V F
∆k <> b Fin
Programación No Lineal – Prof. Gonzalo Müller – Clase 7 – GM – 16
Búsqueda Lineal Simultanea
Ejemplo 7.1: Resolver el siguiente problema por
búsqueda uniforme partiendo del intervalo [– 1, 2] con
una incertidumbre máxima de 0.5:
min x2 – 1
θ(∆0) = (– 1)2 – 1 = 0 V
k iteraciones completas:
k=k+1
k=k+1=1
k iteraciones completas:
k=k+1
k=k+1=2
k=1
Inicialización
∆k = a
∆min = ∆k
∆k+1 = ∆k + δ Búsqueda
V F
θ(∆k+1) < θ (∆k) Fin
k iteraciones completas:
k=k+1
k=k+1=2
Programación No Lineal – Prof. Gonzalo Müller – Clase 7 – GM – 44
Búsqueda Lineal Simultanea
Iteración 2:
Se conserva el nuevo mínimo:
∆min = ∆2 = – 0.75 ∆min = ∆k
θmin = θ(∆k)
θmin = θ(∆2) = – 0.4375
θmin = θ(∆k)
θmin = θ(∆2) = – 0.4375
θ(∆k+1)<
k ∆k ∆min θmin ∆k+1 θ(∆k+1) θ(∆k)
1 –1 –1 0 – 0.75 –0.4375 V
2 – 0.75 – 0.75 –0.4375 – 0,5 – 0,75 V
3 – 0,5 – 0,5 – 0,75 – 0.25 –0.9375 V
4 – 0.25 – 0.25 –0.9375 0 –1 V
5 0 0 –1 0.25 –0.9375 F
∆
a b
∆
a ∆1 ∆2 b
∆1, ∆2 ∈ [a, b]
∆1 < ∆2
Programación No Lineal – Prof. Gonzalo Müller – Clase 7 – GM – 50
Búsqueda Lineal Secuencial
Si θ(∆1) > θ(∆2)
θ(∆1)
θ(∆2)
∆
a ∆1 ∆2 b
θ(∆2)
∆
a ∆1 ∆2 b
θ(∆2)
∆
a ∆1 ∆2 b
θ(∆2)
θ(∆1)
∆
a ∆1 ∆2 b
θ(∆1)
∆
a ∆1 ∆2 b
θ(∆1)
∆
a ∆1 ∆2 b
∆
a ½(a+b) b
bk – ak > ε F Fin
V
∆1k= ½(ak + bk)– δ
∆2k= ½(ak + bk)+ δ
k=k+1 Búsqueda
V F
θ(∆1k) < θ(∆2k)
ak+1 = ak ak+1 = ∆1k
bk+1 = ∆2k bk+1 = bk
Programación No Lineal – Prof. Gonzalo Müller – Clase 7 – GM – 59
Búsqueda Lineal Secuencial sin derivadas
Comienzo
Algoritmo:
k=0
ak = a Inicialización
bk = b
bk – ak > ε F Fin
V
Cálculo de los ∆1k= ½(ak + bk)– δ
puntos de
estudio
∆2k= ½(ak + bk)+ δ
k=k+1 Búsqueda
V F
θ(∆1k) < θ(∆2k)
Reducción del ak+1 = ak ak+1 = ∆1k
intervalo de
incertidumbre
bk+1 = ∆2k bk+1 = bk
Programación No Lineal – Prof. Gonzalo Müller – Clase 7 – GM – 60
Búsqueda Lineal Secuencial sin derivadas
Recomendación: En función de estimar así reducir
el costo computacional es posible determinar el
número de iteraciones requeridas para alcanzar un
nivel de error deseado:
(bN – aN) =(b1 – a1)/2N + 2 δ(1 – 1/2N)
Incertidumbre Intervalo inicial
máxima admisible
N ≥ log(((b1 – a1) – 2 δ)/((bN – aN) – 2 δ))/log(2)
V F
θ(∆1k) < θ(∆2k)
Se evalúa la mejora:
θ(∆10) = (0.45)2 – 1 = – 0.7975
θ(∆20) = (0.55)2 – 1 = – 0.6975
θ(∆10) < θ(∆20) → Verdadero
Programación No Lineal – Prof. Gonzalo Müller – Clase 7 – GM – 67
Búsqueda Lineal Secuencial sin derivadas
Se determina el nuevo intervalo:
ak+1 = ak
a1 = a0 = – 1
bk+1 = ∆2k
b1 = ∆20 = 0.55
k iteraciones completas:
k=k+1=1 k=k+1
V F
θ(∆1k) < θ(∆2k)
Se evalúa la mejora:
θ(∆11) = (– 0.275)2 – 1 = – 0.924375
θ(∆21) = (– 0.175)2 – 1 = – 0.969375
θ(∆11) < θ(∆21) → Falso
Programación No Lineal – Prof. Gonzalo Müller – Clase 7 – GM – 71
Búsqueda Lineal Secuencial sin derivadas
Se determina el nuevo intervalo:
ak+1 = ∆1k
a2 = ∆11 = – 0.275
bk+1 = bk
b2 = b1 = 0.55
k iteraciones completas:
k=k+1=2 k=k+1
bk – ak θ(∆1k)<
k ∆1k ∆2k θ(∆1k) θ(∆2k) ak+1 bk+1
>ε θ(∆2k)
0 V 0.45 0.55 -0.7975 -0.6975 V -1 0.55
1 V -0.275 -0.175 -0.9244 -0.9694 F -0.275 0.55
2 V 0.0875 0.1875 -0.9923 -0.9648 V -0.275 0.1875
3 F - - - - - - -
∆k
a ∆1 ∆2 b
∆k
a ∆1 ∆2 b
θ(∆1k) ≥ θ(∆2k)
∆k+1
a ∆1 ∆2 b
∆k
a ∆1 ∆2 b
θ(∆1k) ≥ θ(∆2k)
∆k+1
a ∆1 ∆2 b
∆k Sección Dorada
a ∆1 ∆2 b
θ(∆1k) ≥ θ(∆2k)
∆k+1
a ∆1 ∆2 b 5 −1
θ(∆1k) < θ(∆2k) δ =
∆k+1 2
a ∆1 ∆2 b Nuevo punto a calcular
bk – ak ≥ ε F Fin
V
k=k+1 V F
θ(∆1k) < θ(∆2k)
Búsqueda
b0 – a0 > 0.5
3 > 0.5 → Verdadero
b0 – a0 > 0.5
3 > 0.5 → Verdadero
Se evalúa la mejora: V
θ(∆1k) < θ(∆2k)
F
Se evalúa la mejora: V
θ(∆1k) < θ(∆2k)
F
bk – ak θ(∆1k)<
k θ(∆1k) θ(∆2k) ak+1 bk+1 ∆1k+1 ∆2k+1
>ε θ(∆2k)
0 V -0.9787 -0.2705 V -1 0.85410 -0.2917 0.14589
1 V -0.9148 -0.9787 F -0.2917 0.85410 0.14589 0.41640
2 V -0.9787 -0.8266 V -0.2917 0.41640 -0.0212 0.14589
3 V -0.9995 -0.9787 V -0.2917 0.14589 -0.1246 -0.0212
4 F - - - - - - -
N F0/F1 = ?
Se requieren N – 2 iteraciones.
Programación No Lineal – Prof. Gonzalo Müller – Clase 7 – GM – 97
Búsqueda Lineal Secuencial sin derivadas
Número de iteraciones necesarias:
bk – ak ≤ ε
Inicialización
Comienzo
k = 0, a0 = a , b0 = b, N | FN ≥ (b0 – a0)/ε
∆10= a0 + (FN–2/FN)(b0 – a0), ∆20= a0 + (FN–1/FN)(b0 – a0)
k<N-2 F Fin
V
k=k+1 V F
θ(∆1k) < θ(∆2k)
Búsqueda
ak+1 = ak ak+1 = ∆1k
bk+1 = ∆2k bk+1 = bk
∆2k+1 = ∆1k ∆1k+1 = ∆2k
0 < 4 → Verdadero
0 < 4 → Verdadero
V F
Se evalúa la mejora: θ(∆1k) < θ(∆2k)
θ(∆10) = (0.125)2 – 1 = – 0.984375
θ(∆20) = (0.875)2 – 1 = – 0.234375
θ(∆10) < θ(∆20) → Verdadero
Se evalúa la mejora: V
θ(∆1k) < θ(∆2k)
F
∆1k+1 = ∆2k
Se calculan los nuevos
puntos de evaluación:
∆2k+1= ak+1 + (FN–k–2/FN–k–1)(bk+1 – ak+1)
∆12 = ∆21 = 0.125
∆22 = – 0.25 + (F3/F4)(0.875 – (– 0.25))
∆22 = 0.5
Programación No Lineal – Prof. Gonzalo Müller – Clase 7 – GM – 114
Búsqueda Lineal Secuencial sin derivadas
θ(∆1k)<
k k<N-2 θ(∆1k) θ(∆2k) ak+1 bk+1 ∆1k+1 ∆2k+1
θ(∆2k)
0 V -0.9844 -0.2344 V -1 0.875 -0.25 0.125
1 V -0.9375 -0.9844 F -0.25 0.875 0,125 0.5
2 V -0.9844 -0.75 V -0.25 0.5 0.125 0.125
3 - - - - - - - -
θ(∆1k)<
k k<N-2 θ(∆1k) θ(∆2k) ak+1 bk+1 ∆1k+1 ∆2k+1
θ(∆2k)
0 V -0.9844 -0.2344 V -1 0.875 -0.25 0.125
1 V -0.9375 -0.9844 F -0.25 0.875 0,125 0.5
2 V -0.9844 -0.75 V -0.25 0.5 0.125 0.125
3 - - - - - - - -
½ ½
∆N-2
a ∆ 1, ∆ 2 b
Inicialización
Comienzo
k = 0, a0 = a , b0 = b, N | FN ≥ (b0 – a0)/ε
∆10= a0 + (FN–2/FN)(b0 – a0), ∆20= a0 + (FN–1/FN)(b0 – a0)
k<N-3 F Fin
V
k=k+1 V F
θ(∆1k) < θ(∆2k)
Búsqueda
ak+1 = ak ak+1 = ∆1k
bk+1 = ∆2k bk+1 = bk
∆2k+1 = ∆1k ∆1k+1 = ∆2k
0 < 3 → Verdadero
0 < 3 → Verdadero
V F
Se evalúa la mejora: θ(∆1k) < θ(∆2k)
θ(∆10) = (0.1538462)2 – 1 = – 0.976331
θ(∆20) = (0.8461538)2 – 1 = – 0.284024
θ(∆10) < θ(∆20) → Verdadero
Se evalúa la mejora: V
θ(∆1k) < θ(∆2k)
F
θ(∆1k)<
k k<N-3 θ(∆1k) θ(∆2k) ak+1 bk+1 ∆1k+1 ∆2k+1
θ(∆2k)
0 V -0.9763 -0.2840 V -1 0.84615 -0.3077 0.15385
1 V -0.9053 -0.9763 F -0.3077 0.84615 0.15385 0.38462
2 V -0.9763 -0.8521 V -0.3077 0.38462 -0.0769 0.15385
3 V -0.9941 -0.9763 V -0.3077 0.15385 -0.0769 -0.0769
4 F - - - - - - -
4º Búsqueda Uniforme.
Programación No Lineal – Prof. Gonzalo Müller – Clase 7 – GM – 132
Búsqueda Lineal Secuencial con derivadas
Búsqueda por Bisección
Concepto
El intervalo de incertidumbre es reducido
progresivamente en un factor fijo δ con la
evaluación de θ’ en un punto ∆k.
Si θ’(∆k) = 0, Entonces ∆k es un mínimo.
bk – ak < ε
Dado δ y luego de N iteraciones:
bk – ak = (b0 – a0) ½N
(b0 – a0) ½N < ε
a0 = a, b0 = b
Inicialización
k = 0, N|N>log((b0–a0)/ε)/log(2)
F
k<N Fin
V
∆k= ½(ak + bk)
F
θ’(∆k) <> 0 Fin
k=k+1 V Búsqueda
V F
θ’(∆k) > 0
ak+1 = ak ak+1 = ∆k
bk+1 = ∆k bk+1 = bk
Programación No Lineal – Prof. Gonzalo Müller – Clase 7 – GM – 138
Búsqueda Lineal Secuencial con derivadas
Ejemplo 7.7: Resolver el siguiente problema por
búsqueda por bisección partiendo del intervalo [– 1, 2]
con una incertidumbre máxima de 0.5:
min x2 – 1
0 < 3 → Verdadero
V
2(∆0) = 3 <> 0 → Verdadero
Programación No Lineal – Prof. Gonzalo Müller – Clase 7 – GM – 142
Búsqueda Lineal Secuencial con derivadas
Determinar el sentido de la mejora:
V F
2(∆0) = 3 > 0 → Verdadero θ’(∆k) > 0
1 < 3 → Verdadero
V
2(∆0) = – 0.5 <> 0 → Verdadero
Programación No Lineal – Prof. Gonzalo Müller – Clase 7 – GM – 144
Búsqueda Lineal Secuencial con derivadas
Determinar el sentido de la mejora:
V F
2(∆0) = – 0.5 > 0 → Falso θ’(∆k) > 0
θ’(∆k)<>
k k<N ∆k θ’(∆k) θ’(∆k)>0 ak+1 bk+1
0
0 V 0.5 1 V V -1 0.5
1 V -0.25 -0.5 V F -0.25 0.5
2 V 0.125 0.25 V V -0.25 0.125
3 F - - - - - -