Optimizacion en Ingenierıa Dr. Carlos A. Coello Coello
Optimizacion en Ingenierıa
Dr. Carlos A. Coello Coello
Departamento de Computacion
CINVESTAV-IPN
Av. IPN No. 2508
Col. San Pedro Zacatenco
Mexico, D.F. 07300
email: [email protected]
Clase No. 4 2009
Optimizacion en Ingenierıa Dr. Carlos A. Coello Coello
Metodo de las Estimaciones Cuadraticas Sucesivas
AlgoritmoPaso 1: Hacer que x1 sea un punto inicial y ∆ sea el tamano
del paso (o incremento). Pedir TOL1 y TOL2.Calcular x2 = x1 + ∆
Paso 2: Evaluar f(x1) y f(x2)Paso 3: If f(x1) > f(x2) THEN x3 = x1 + 2∆
ELSE x3 = x1 −∆.Evaluar f(x3).
Paso 4: Determinar Fmin =min(f1, f2, f3) y Xmin
es el punto xi que corresponde a Fmin.
Clase No. 4 2009
Optimizacion en Ingenierıa Dr. Carlos A. Coello Coello
Metodo de las Estimaciones Cuadraticas Sucesivas
Paso 5: Calcular x usando x1, x2 y x3.Paso 6: ¿Es |Fmin − f(x)| ≤ TOL1 AND |Xmin − x| ≤ TOL2?
Si no se cumple, GOTO Paso 7ELSE el optimo es el mejor de los 4 puntos.TERMINAR
Paso 7 Almacenar el mejor punto (Xmin o x) ydos puntos que lo rodeen, si esto es posible.Si no, almacena los 3 mejores puntosRe-etiquetarlos de acuerdo a: x1 < x2 < x3.GOTO Paso 4.
Clase No. 4 2009
Optimizacion en Ingenierıa Dr. Carlos A. Coello Coello
Metodo de las Estimaciones Cuadraticas Sucesivas
AlgoritmoPaso 1: Hacer que x1 sea un punto inicial y ∆ sea el tamano
del paso (o incremento). Pedir TOL1 y TOL2.Calcular x2 = x1 + ∆
Paso 2: Evaluar f(x1) y f(x2)Paso 3: If f(x1) > f(x2) THEN x3 = x1 + 2∆
ELSE x3 = x1 −∆.Evaluar f(x3).
Paso 4: Determinar Fmin =min(f1, f2, f3) y Xmin
es el punto xi que corresponde a Fmin.
Clase No. 4 2009
Optimizacion en Ingenierıa Dr. Carlos A. Coello Coello
Metodo de las Estimaciones Cuadraticas Sucesivas
Paso 5: Calcular x usando x1, x2 y x3.Paso 6: ¿Es |Fmin − f(x)| ≤ TOL1 AND |Xmin − x| ≤ TOL2?
Si no se cumple, GOTO Paso 7ELSE el optimo es el mejor de los 4 puntos.TERMINAR
Paso 7 Almacenar el mejor punto (Xmin o x) ydos puntos que lo rodeen, si esto es posible.Si no, almacena los 3 mejores puntosRe-etiquetarlos de acuerdo a: x1 < x2 < x3.GOTO Paso 4.
Clase No. 4 2009
Optimizacion en Ingenierıa Dr. Carlos A. Coello Coello
Metodo de las Estimaciones Cuadraticas Sucesivas
Notese que en el algoritmo previo, no se checa si se satisface quea2 > 0 y esto es necesario. Este chequeo puede incorporarse en elPaso 5. Si a2 resultara negativa, puede reemplazarse uno de los trespuntos disponibles por un punto aleatorio. Este proceso tendrıa querepetirse hasta que a2 se hiciera positiva.
Clase No. 4 2009
Optimizacion en Ingenierıa Dr. Carlos A. Coello Coello
Metodo de las Estimaciones Cuadraticas Sucesivas
El metodo de Powell encuentra el mınimo de funciones unimodales“bien portadas” mas rapidamente que los metodos de eliminacionde regiones. Sin embargo, para funciones con formas mascaprichosas, el metodo de la seccion dorada es mejor que el dePowell.
Clase No. 4 2009
Optimizacion en Ingenierıa Dr. Carlos A. Coello Coello
Metodos Que Requieren Derivadas
Los metodos de busqueda discutidos previamente se basan en lacondicion de unimodalidad de la funcion y, en algunos casos,dependen tambien de la continuidad del ındice de desempeno aoptimizarse. Resulta razonable pensar, sin embargo, que si lafuncion es diferenciable se pueden obtener metodos de busquedamas eficientes.
Clase No. 4 2009
Optimizacion en Ingenierıa Dr. Carlos A. Coello Coello
Metodo de Newton-Raphson
Esta tecnica requiere que la funcion f sea dos veces diferenciable.Comienza con un punto x, que es el estimado inicial o laaproximacion al punto estacionario o raız de la ecuacion f ′(x) = 0.
Se construye una aproximacion lineal de la funcion f ′(x) en elpunto x1, y el punto en el cual se desvanece la aproximacion linealse toma como la siguiente aproximacion.
Clase No. 4 2009
Optimizacion en Ingenierıa Dr. Carlos A. Coello Coello
Metodo de Newton-Raphson
Finalmente, dado el punto xk (aproximacion actual del puntoestacionario), la aproximacion lineal de la funcion f ′(x) en xk
esta dada por:
f ′(x) = f ′(xk) + f ′′(xk)(x− xk) (1)
Igualando esta expresion a cero, podemos obtener la aproximacionsiguiente del punto estacionario:
xk+1 = xk −f ′(xk)f ′′(xk)
(2)
Clase No. 4 2009
Optimizacion en Ingenierıa Dr. Carlos A. Coello Coello
Metodo de Newton-Raphson
La siguiente figura ilustra los pasos generales del metodo deNewton-Raphson:
Clase No. 4 2009
Optimizacion en Ingenierıa Dr. Carlos A. Coello Coello
Metodo de Newton-Raphson
Desafortunadamente, dependiendo del punto inicial y de lanaturaleza de la funcion, es muy posible que el metodo deNewton-Raphson en vez de converger, diverja. La siguiente figurailustra esta situacion:
Clase No. 4 2009
Optimizacion en Ingenierıa Dr. Carlos A. Coello Coello
Metodo de Newton-Raphson
En la figura del acetato anterior, si empezamos en un punto a laderecha de x0, las aproximaciones sucesivas se estaran alejando delpunto estacionario z.
Este metodo fue desarrollado por Isaac Newton para resolverecuaciones no lineales y posteriormente fue refinado por JosephRaphson.
Clase No. 4 2009
Optimizacion en Ingenierıa Dr. Carlos A. Coello Coello
Metodo de Newton-Raphson
Si f ′′(xk) = 0, el metodo de Newton-Raphson tiene una poderosapropiedad denominada convergencia cuadratica. Si un metodode minimizacion, usando aritmetica exacta, puede encontrar elpunto mınimo en n pasos al minimizar una funcion cuadratica en n
variables, se dice que el metodo tiene convergencia cuadratica.
Clase No. 4 2009
Optimizacion en Ingenierıa Dr. Carlos A. Coello Coello
Metodo de Newton-Raphson
AlgoritmoPaso 1: Proporcionar el punto inicial x1
Elegir una tolerancia εk = 1Calcular f ′(x1)
Paso 2: Calcular f ′′(xk)Paso 3: Calcular xk+1 = xk − f ′(xk)
f ′′(xk)
Calcular f ′(xk+1)Paso 4: IF |f ′(xk+1)| ≤ ε THEN TERMINAR
ELSE k = k + 1. GOTO Paso 2.
Clase No. 4 2009
Optimizacion en Ingenierıa Dr. Carlos A. Coello Coello
Metodo Cuasi-Newton
Si la funcion a minimizarse f(x) no esta disponible en formacerrada o resulta muy difıcil de diferenciar, las derivadas f ′(x) yf ′′(x) pueden aproximarse usando diferencias finitas:
f ′(xk) =f(xk + ∆x)− f(xk −∆x)
2∆x(3)
f ′′(xk) =f(xk + ∆x)− 2f(xk) + f(xk −∆x)
(∆x)2(4)
donde ∆x es un valor pequeno. Notese que se requiere evaluar lafuncion en 3 puntos: xk, xk + ∆x y xk −∆x.
Clase No. 4 2009
Optimizacion en Ingenierıa Dr. Carlos A. Coello Coello
Metodo Cuasi-Newton
Para checar convergencia se sigue usando:
|f ′(xk+1)| ≤ ε (5)
solo que ahora la derivada se aproxima usando la expresion antesindicada.
Clase No. 4 2009
Optimizacion en Ingenierıa Dr. Carlos A. Coello Coello
Metodo de Biseccion
Si la funcion f(x) es unimodal sobre un cierto intervalo debusqueda dado, entonces el punto optimo sera aquel dondef ′(x) = 0. Si tanto el valor de la funcion como la derivada de lafuncion estan disponibles, entonces puede efectuarse una busquedamediante eliminacion de regiones que sea bastante eficiente usandosolo un punto, en vez de dos, para identificar un punto en el cualf ′(x) = 0.
Clase No. 4 2009
Optimizacion en Ingenierıa Dr. Carlos A. Coello Coello
Metodo de Biseccion
Por ejemplo, si en el punto z, f ′(z) < 0, entonces bajo la premisade uminodalidad de la funcion, el mınimo no puede encontrarse a laizquierda de z. En otras palabras, el intervalo x ≤ z puedeeliminarse. Por otra parte, si f ′(z) > 0, entonces el mınimo nopuede encontrarse a la derecha de z y podemos entonces eliminar elintervalo x ≥ z.
Clase No. 4 2009
Optimizacion en Ingenierıa Dr. Carlos A. Coello Coello
Metodo de Biseccion
Basandonos en estas observaciones, podemos construir el metodode biseccion, llamado tambien metodo de Bolzano (en honor aBernard Placidus Johann Nepomuk Bolzano).
Clase No. 4 2009
Optimizacion en Ingenierıa Dr. Carlos A. Coello Coello
Metodo de Biseccion
La mecanica del algoritmo es muy simple. Se deben proporcionar 2puntos a y b tales que f ′(a) < 0 y f ′(b) > 0. De esta forma, elpunto estacionario se encuentra entre a y b. Determinamos entoncesla derivada de la funcion en el punto medio:
z =a+ b
2(6)
Si f ′(z) > 0 entonces puede eliminarse el intervalo (z, b). Por otrolado, si f ′(z) < 0, entonces podemos eliminar el intervalo (a, z).
Clase No. 4 2009
Optimizacion en Ingenierıa Dr. Carlos A. Coello Coello
Metodo de Biseccion
AlgoritmoPaso 1: Elegir dos puntos a y b, tales que
f ′(a) < 0 y f ′(b) > 0Elegir una tolerancia ε
Paso 2: Calcular z = a+b2
Evaluar f ′(z)Paso 3: IF |f ′(z)| ≤ ε THEN TERMINARPaso 4: IF f ′(z) < 0 THEN a = z. GOTO Paso 2.
IF f ′(z) > 0 THEN b = z. GOTO Paso 2.
Clase No. 4 2009
Optimizacion en Ingenierıa Dr. Carlos A. Coello Coello
Metodo de Biseccion
Notese que el metodo de biseccion solo evalua la derivada de lafuncion en el nuevo punto generado a cada iteracion. Con estemetodo se elimina exactamente la mitad de la region a cadaiteracion. Sin embargo, este metodo se basa unicamente en el signode la derivada y no en su magnitud. Un metodo que usa estas dospiezas de informacion es el que veremos a continuacion.
Clase No. 4 2009