OPTIMIZACIÓN ESCALAR María Jesús de la Fuente Aparicio Dpto. Ingeniería de Sistemas y Automática
CONCEPTOS BÁSICOS DEFINICIONES
Definiciones Optimo local (mínimo local) Un punto * F se denomina un mínimo local del problema de optimización si eiste un entorno de * tal que para cualquier otro punto F del entorno: J() J( * ) J() * J() Pueden eistir varios óptimos locales * * Si se verifica la desigualdad estricta el óptimo es propio J() * Mínimos impropios
Definiciones Optimo global Un punto * se denomina un mínimo global del problema de optimización si para cualquier punto del conjunto factible F: J( * ) J() * Optimo global J() Problema no acotado Si no eiste ningún valor de * F tal que J(*) J() el problema es no acotado y no eiste mínimo
Definiciones Continuidad Continua en discontinua en Derivada no definida lim J() J( ) lim J() = eiste eiste J( ) Es importante para muchos algoritmos trabajar con funciones continuas y con derivadas continuas
Definiciones Funciones Monótonas Una función f() es monótona creciente (o decreciente) si para cualesquiera dos puntos y, donde se cumple que ( ) f ( ) f Monótona creciente ( ) f ( ) f Monótona decreciente Funciones Unimodales Una función es unimodal si es monótona a ambos lados del mínimo.
Definiciones Conjunto factible El conjunto S donde buscar la solución En un problema de programación escalar: R o el intervalo [a,b] En un problema de programación vectorial: R^n En un problema de programación con restricciones: el conjunto de puntos que cumplen las resticciones. min J() h g i j () () = Definen la región de busqueda o conjunto factible F J() F
Definiciones Factibilidad. min J() h h g i j () () = F J J J 3 Definen la región de busqueda o conjunto factible F Si no hay ningún punto que satisfaga todas las restricciones, o sea si el conjunto factible F es vacío, el problema es no factible y no eiste solución
Definiciones Conveidad. F J J J 3 La forma de la región de búsqueda es importante para los algoritmos de optimización F conveo F Un conjunto F es conveo si el segmento que une dos puntos cualquiera del mismo esta totalmente contenido en F F F no conveo
Definiciones Conjunto conveo F es conveo si y solo si:, = γ F, γ [,] + ( γ) F La intersección de dos conjuntos conveos es convea F Región convea y cerrada
Definiciones Función convea La función J() es convea en un conjunto conveo F si no toma valores superiores a los de una interpolación lineal J() J( γ, + F, γ [,] ( γ) ) γj( ) + ( γ)j( ) Si se cumple con < es estrictamente convea
Definiciones Conveidad de funciones (de una variable) dj( ) d J( ) J() = J( ) + ( ) + ( ) +... d d dj( ) d J( ) J() (J( ) + ( )) = ( ) +... d d d J( ) H = d Si H es continua y positiva semidefinida la función J() es convea en un entorno de J() J( )+J ( )( )
Definiciones Conveidad. J() J() Si J() es convea, J() es concava J() Una función lineal es convea y concava
Definiciones Teorema Una función continua J() tiene un mínimo global en cualquier conjunto F cerrado y acotado J() F
Definiciones Si una función es unimodal en su conjunto factible, entonces un mínimo local es automáticamente un mínimo global Toda función convea es unimodal
OPTIMIZACIÓN ESCALAR
Optimización sin restricciones min J() R n Los métodos sin restricciones son importantes porque: Hay problemas que se pueden formular sin restricciones Permiten introducir muchos conceptos y eplorar ideas que se usarán en problemas NLP Muchos problemas de optimización utilizan en alguna fase algoritmos sin restricciones Algunos problemas NLP pueden reformularse como problemas sin restricciones
Criterios de optimalidad. ma s. a. f ( ) a b Forma general de un Problema de optimización escalar Ante un problema de optimización debemos resolver dos problemas: Cómo se determina que un punto * es óptimo? Si * no es el óptimo, cómo se puede encontrar la solución óptima?
Condiciones de necesidad y suficiencia Condición necesaria para que dado un punto este sea óptimo: df = d Es un punto estacionario d d f ( ) Condición suficiente: Supongamos que en el punto * la primera derivada es, y la primera derivada de orden superior que no sea la denotamos por n: Si n es impar, entonces * es un punto de infleión Si n es par, entonces * es un óptimo local, además: Si la derivada es positiva, entonces * es un mínimo local Si la derivada es negativa, entonces * es un máimo local
Métodos de solución Métodos de Solución Métodos analíticos Métodos numéricos Métodos de eliminación Método minima, Fibonacci, Sección dorada Métodos que no requieren derivadas Método de Powell Métodos que requieren derivadas Método de Newton Raphson
Métodos analíticos Método ehaustivo Evaluar df/d = y calcular los puntos estacionarios Seleccionar todos los puntos estacionarios que pertenezcan al intervalo [a,b], junto con a y b. Encontrar el valor máimo de f()
Métodos numéricos (I) Métodos de eliminación (reducción de intervalos). Suponemos que J() es unimodal en el conjunto factible [a,b] Generar una sucesión de intervalos [, ], [ 3, 4 ],... dentro de cada uno de los cuales esta el óptimo y de longitud cada vez menor hasta llegar a la precisión requerida: pasos: J() Encontrar el intervalo inicial donde esta el óptimo Reducir la longitud del intervalo inicial hasta la precisión requerida 3 4
Métodos de eliminación (I) Si J() es unimodal en [a,b], para dos puntos < del conjunto factible se cumple la propiedad de eliminación: Si J( ) > J( ) => * (, b) => * > J() Si J( ) < J( ) => * (a, ) => * < Si J( ) = J( ) => * (, ) => < * < J() J() * * *
Métodos de eliminación (II). Encontrar el intervalo inicial Seleccionar y Δ y aplicar la propiedad de eliminación para + Δ y Δ. Conocido un semi intervalo inicial p.e. [, ) donde esta *, para localizar un intervalo inicial se puede generar una secuencia de valores: 3... k = = = = + δ + δ + + δ k δ Hasta que: J( k ) > J( k ) J( k+ ) J() El intervalo inicial es [ k, k+ ]... k Compromiso precisión / nº de iteraciones δ Es positivo o negativo según el semiintervalo k+
Métodos de eliminación (III). Reducir el intervalo inicial hasta la precisión deseada: Si en el paso k el intervalo en el que se encuentra el óptimo es J() J( γ J( γ J( γ [α k, β k ], se puede reducir su longitud L k = β k α k evaluando la función J() en dos puntos γ < γ internos al intervalo aplicando la propiedad de eliminación: ) ) ) > J( γ < J( γ = J( γ ) [ α ) [ α ) [ α k+ k+ k+, β, β, β k+ k+ k+ ] ] ] = [ γ = [ α = [ γ, β k, γ, γ k ] ] ] α k γ γ β k Como elegir los dos puntos internos?
Métodos de eliminación (IV) Método ε minima: Criterio: minimizar la longitud del mayor de los intervalos posibles: Min ma { γ α k, β k γ, γ γ } Si γ = γ + ε => Min ma{γ + ε α k, β k γ } J() α k ε γ γ β k γ + ε α k = β k γ α k ε β k γ γ + ε α k + α + α ε ε + k k γ β k γ γ = = β β k k Simétricos respecto al centro del intervalo
Métodos de eliminación (V) Método ε minima: J() ε α k γ γ γ α k = β k γ β k La reducción del intervalo en un paso es: βk + αk ε Lk+ = γ αk = + α βk αk ε Lk + ε = + = ε debe escogerse tan pequeño como se pueda para reducir la longitud del intervalo. La reducción en N pasos es: k = L N = L + ( N N ) ε L N
Métodos de eliminación (VI) Método de Fibonacci: J() ε En el método ε minima se precisan dos evaluaciones de J() en cada iteración. El método de Fibonacci aprovecha una de las evaluaciones anteriores α k α k γ γ ε γ γ β k β k Se selecciona ε de forma que en cada iteración γ coincida con el γ de la iteración anterior o al revés. α k+ γ β k+ Las longitudes de los intervalos son: l k+ = (l k + ε)/
Métodos de eliminación (VII) Método de Fibonacci: Para conseguir eso hay que seguir el siguiente procedimiento: l i = l i ε l i = l i + l i = 3 l i ε l i 3 = l i + l i = 5 l i ε... l i k = l i k + l i k = F k+ l i F k ε Donde F k corresponden a los coeficientes de la secuencia de Fibonacci: F = F = F k = F k + F k En N pasos se llega a un intervalo: l N = (l + F N ε)/ F N+
Métodos de eliminación (VIII) Método de Fibonacci: Algoritmo: Seleccionar la precisión deseada Δ y ε Generar la sucesión de Fibonacci F i hasta que l i < Δ Aplicar N veces el método ε minima teniendo en cuenta el aprovechamiento de uno de los γ i del paso anterior
Métodos de eliminación (IX) Método de la sección dorada: Se prescinde del cálculo de la sucesión de Fibonacci aproimando la longitud de cada intervalo por el límite para ε e i ε l = F i+ l i ; l = F i l i => l = (F i / F i+ ) l i lim (F i / F i+ ) = / γ =.68 En N pasos: l N = (.68) N l Algoritmo: Seleccionar la precisión deseada: Δ Calcular ital que l i < Δ Aplicar i veces el método ε minima teniendo en cuenta el aprovechamiento de uno de los γ i
Comparación Precisión de los métodos con 4 iteraciones y l =.8 Método ε mimima : l N = l / N l 4 =.8/ 6 =.98, N ev = 8 Método de Fibonacci: l n = (l + F N ε) / F N+ L 4 = (.8 + *. )/ 8 =., Ne.v. = 5 Método de la sección dorada: l N = (.68) N l L 4 = (.88) 4 *.8 =., N.ev. =5
Métodos numéricos (II) Métodos de aproimación por un polinomio: J() debe ser unimodal y continua Cerca del mínimo J() se puede aproimar por una función de º orden: Q() = a + b + c Dados 3 puntos cerca del mínimo se aproima J() por un polinomio de º grado que pase por esos puntos: q() = a + a ( ) + a ( )( ) El mínimo del polinomio puede obtenerse fácilmente dq() / dt = a + a ( ) + a ( ) = * = ( + )/ a / ( a )
Métodos de aproimación por un polinomio Método de Powell:. Elegir la estimación inicial y el tamaño del paso. Calcular = + Δ. Evaluar f( ) y f( ) 3. Si f( ) > f( ) entonces 3 = + Δ Si f( ) f( ) entonces 3 = Δ 4. Evaluar f( 3 ) y determinar: F min = min { f( ), f( ), f( 3 )} min = punto i correspondiente a F min 5. Utilizar los puntos,, 3 para calcular * utilizando la fórmula de estimación cuadrática 6. Chequear la terminación: a) Es F min f( * ) suficientemente pequeño? b) Es min * suficientemente pequeño? Si se satisface terminar. De lo contrario ir a 7. 7. Guardar el mejor punto ( min ó * ), y los dos puntos que lo rodean, se reorganizan o renombran. Ir al paso 4.
Métodos numéricos (III) Métodos que requieren derivadas: La función debe ser unimodal, continua y diferenciable Si f() es unimodal, continua y diferenciable en [a,b], para un punto cualquiera del conjunto factible se cumple: Si df / d < * (, b) * > Si df / d > * (a, ) * < Si df / d = * (, ) * = Métodos de eliminación: Determinar el intervalo de incertidumbre donde está el mínimo Ir reduciendo el intervalo de incertidumbre hasta estimar * con una precisión deseada, por ejemplo : f( * )
Métodos que requieren derivadas Método de la secante: Estimar el siguiente punto tal que J( ) Se aproima la derivada por la secante ( la recta que pasa por los dos puntos etremos del intervalo): J`() a Secante b J`(b) = b [J (b) (b a) / (J (b) J (a))] J`(a) Se aplica la propiedad de la derivada, aplicando el procedimiento hasta obtener tal que J( ) < ε
Métodos que requieren derivadas Método de Newton Raphson: Este método requiere que la función sea doblemente diferenciable Comienza con un punto que es una estimación inicial (o una aproimación al punto estacionario). Se construye una aproimación lineal de la función J () en el punto y el punto donde la aproimación se haga cero se toma como la siguiente aproimación ~ ' ' J k = k k k ' ' ( ; ) J ( ) + J ( )( ) = k + = k J J ' '' ( k ) ( ) k
Método de Newton Raphson J () J () Objetivo k k+ k k+ k+ Diremos que la solución converge a un valor * cuando la secuencia de valores k generados por el algoritmo verifican c * * A partir de un k. De modo que k+ k < c < los puntos k están cada vez mas próimos a * Inconvenientes: Si esta muy alejado de * puede no converger, o converger a otro valor