Como fue mencionado antes, el objetivo del problema de optimización es en- contrar las soluciones optimas a un determinado problema, es decir la mejor solución posible. Entonces vale la pena definir las características que hacen a una solución optima.
Definición Espacio de Problema: El espacio de problema para un pro- blema de optimización, denotado por X, es el conjunto que contiene todos los elementos x que podrían ser la solución a encontrar.
La mayoría de veces, este espacio X está sujeto a:
1. Restricciones lógicas que indican elementos x que no pueden ser soluciones, como una división entre cero o un n´ mero negativo al sacar raiz cuadrada.
2. Restricciones prácticas que nos limitan el espacio de problema por cuestio- nes de tecnología. Un ejemplo son los tipos de variable de punto[U+FB02]otante: float o double que tienen precisión limitada.
Definición Candidato a solución: Un candidato a solución x es un ele- mento valido del conjunto X para un dado problema de optimización.
Definición Espacio de Soluciones: Se define el espacio de soluciones S como la unión de todas las soluciones de un problema de optimización.
X∗ ⊆ S ⊆X (6.1)
Como se ve en la ecuación, el espacio de soluciones contiene (pudiendo ser igual) al conjunto optimo global X∗. Pueden haber soluciones válidas x ∈S que no son parte de X*, lo que suele ocurrir en optimización con restricciones
Definición Espacio de Búsqueda:El espacio de búsqueda de un problema de optimización, denotado por G, es el conjunto de todos los elementos g ∈
G que pueden ser procesados por los operadores de búsqueda. Así G es una codificación del espacio de problema X.
6.2 Funciones de único objetivo
Cuando se optimiza un único criterio f (x), un optimo es un máximo o un mí- nimo dependiendo de si se está maximizando o minimizando. Por ejemplo, en
6.2 Funciones de único objetivo 89
problemas de mundo real (de manufactura), se busca por lo general minimizar tiempos, costos o pérdidas para un determinado proceso. Por otro lado, tra- tándose de negocios, se busca maximizar la rentabilidad o el valor económico.
La figura 6.1 muestra una función f definida en un espacio 2-dimensional X con elementos x = (x1 , x2 ) ∈ X. Se hace destaque en el gráfico a los óptimos locales y óptimos globales. Un optimo global es el optimo en todo el conjunto mientras que un optimo local es optimo solo en un subespacio de X.
Figura 6.1: Ejemplo de función f(x1,x2) con óptimo global y local
Máximo local: Sea una función de un objetivo f : X 7→ R, se define un máximo local xˆl ∈ X como un valor de entrada que cumple f (xˆl) ≥ f (x) para todo x dentro de una vecindad de xˆl.
Si f : X⊆Rn se puede decir que
∀xˆl ,∃ >0 : f (xˆl )≥f (x), ∀x∈ X, |x −xˆl |< (6.2)
Mínimo local: Sea una función de un objetivo f : X 7→ R, se define un mínimo local x¯l ∈ X como un valor de entrada que cumple f (x¯l) ≤ f (x) para todo x dentro de una vecindad de x¯l .
Si f : X⊆Rn se puede decir que
∀x¯l, ∃ >0 : f (x¯l) ≤f (x), ∀x∈X, |x −x¯l| < (6.3)
Óptimo local: Sea una función de un objetivo f : X → R, se define un óptimo local
90 Optimizacion y Heurísticas
Máximo global: Sea una función de un objetivo f : X → R, se define Un máximo global
ˆx ∈X como un valor de entrada que cumple f (ˆx)≥f (x),∀x∈X
Mínimo global: Sea una función de un objetivo f : X → R, se define un mínimo global
∈X como un valor de entrada que cumple f ()≤f (x),∀x∈X
Óptimo global: Sea una función de un objetivo f : X 7→ R, se define un óptimo global
x∈X como un valor de entrada que cumple con ser un máximo o un mínimo global.
Es común encontrar más de un máximo o mínimo globales, inclusive dentro del dominio X de una función unidimensional f : X ⊆Rn → R. Un ejemplo de esta situación es la función coseno cos(x) donde x = {x}, que tiene valores máximos globales en ˆx cuando ˆx = 2iπy valores mínimos globales ¯x cuando ¯x = (2π+1)π.
La solución correcta sería un conjunto X* de entradas ´optimas y no un mínimo o máximo aislado. Además, el significado de óptimo depende del problema:
◦ En optimización con un objetivo significa un máximo o mínimo global.
◦ En optimización multi-objetivo existen varias estrategias para definir el óptimo.
Conjunto óptimo: Se define el conjunto óptimo X* como el conjunto que contiene todos los elementos óptimos.
Por lo general son varias y, muchas veces, infinitas soluciones óptimas; pero, dadas las limitaciones de computación, se pueden encontrar un subconjunto finito de soluciones óptimas. Así, se establece una diferencia entre el conjun- to ´optimo X* ideal y el conjunto X de sub óptimos, que puede contener un óptimo global. Este conjunto X es lo que un algoritmo real de optimización puede encontrar. Entonces podemos afirmar que un algoritmo de optimiza- ción tiene como tarea:
1. Encontrar soluciones que sean lo mejor posibles para el problema, y, 2. que por su vez, ´estas sean lo más diferentes entre sí.
6.3 Optimización Clásica
En la optimización clásica u optimización numérica se busca encontrar el valor de las variables de una función univariada x que maximize o minimize una determinada función f (x). Este problema de optimización genérico está
6.3 Optimización Clásica 91
definido de la siguiente manera:
Sea la función f : X→ R x→ f (x) (6.4)
El problema de optimizaci´on consiste en hallar
Y* = máx(mín){ f (x)} (6.5)
sujeto a las siguientes condiciones:
g1(x)≤0, i = 1, . . . , p hj(x) = 0, j = 1, . . . ,n (6.6)
donde:
X ⊆Rn
es el espacio de problema que es un subespacio de Rnque contiene los puntos factibles, o sea puntos que satisfacen las restricciones del problema.
x∈X
es un punto en el espacio de problema definido como x = (x1, x2, . . . , xn), componentes x1, x2, . . . , xn son las denominadas variables de decisión del problema.
f (x) es la función objetivo, es decir la que se quiere optimizar.
Restricciones de dominioDefinidas como los límites
ai≤xi ≤bi,∀i = 1, . . . ,n
relacionados a los valores mínimos y máximos de las variables xi permiti- dos en el espacio X.
Restricciones de igualdad definidas como el conjunto de tamaño p
gi(x) = 0,∀i = 1, . . . , p
Restricciones de desigualdaddefinidas como el conjunto de tamaño q
92 Optimizacion y Heurísticas
6.4 Convexidad
Espacio convexo:Sea el espacio de problema X. Se dice que X es convexo si para todo elemento x1,x2 ∈X y para todo α ∈[0,1] se cumple que f (α x1+(1−α)x2)≤α f (x1)+(1−α) f (x2)
(6.7)
La interpretación de la ecuación 8.7 es la siguiente: X es convexo si para dos puntos cualesquiera x1,x2∈X, el segmento rectilíneo que une estos pun- tos también pertenece al conjunto. En otras palabras, X es convexo si se puede ir de cualquier
Figura 6.2: Espacios convexos y no convexos
punto inicial a cualquier punto final en línea recta sin salir del espacio. Los conjuntos de la figura 6.2 (a) son convexos mientras que los de la figura 6.2 no lo son.
El objetivo de cualquier técnica de optimización es hallar el ´optimo glo- bal de cualquier problema. Lamentablemente, sólo en casos muy limitados se puede garantizar convergencia hacia el óptimo global. Por ejemplo, para problemas con espacios de búsqueda X convexos, las condiciones de Kuhn- Tucker (Kuhn and Tucker, 1951) son necesarias y suficientes para garantizar optimalidad global de un punto.
En problemas de optimización no lineal, estas condiciones no son suficien- tes. Por lo que en este caso, cualquier técnica usada puede encontrar óptimos locales sin garantizarse la convergencia hacia el óptimo global. Sólo se garan- tiza esta convergencia usándose métodos exhaustivos o está existe en tiempo infinito.
Existe una clase especial de problemas de optimización que son también de mucho interés, se trata del caso en que las variables de decisión son discretas, es decir el vector x está compuesto por valores xi ∈ N y x es un producto cartesiano o una permutación de valores xi. Este tipo de problemas, conoci- dos como optimización
combinatoria o programación entera, son de mucho interés en el área de Ciencias de Computación. cuyo ejemplo más conocido es el problema del vendedor viajero (Travelling Salesman Problem – TSP).
6.5 Técnicas clásicas de optimización 93
6.5 Técnicas clásicas de optimización
Existen muchas técnicas largamente conocidas y aplicadas para solucionar problemas de optimización, siempre que estos satisfagan ciertas característi- cas específicas, como por ejemplo, que f (x) sea una función lineal, o que sea unimodal1 o que las restricciones sean lineales.
La importancia de saber, al menos de la existencia de estas técnicas está en que si el problema a solucionar se ajusta a las exigencias que estas impo- nen, no se necesario usar heurísticas. Por ejemplo, si la función es lineal, el método Simplex siempre seguirá siendo la opción más viable.
6.5.1 Optimización Lineal – Método Simplex
La idea básica de la Optimización Lineal consiste en buscar una solución válida que mejore la función objetivo tomando como partida una solución válida inicial.
El problema de Programación Lineal consiste en minimizar el producto in- terno:
mínz = cT x (6.8)
sujeto a las siguientes condiciones:
Ax = b x≥0 (6.9)
donde:
Am×n; r(A) = m; b∈Rm; c ∈Rn
Dado el conjunto S = {x : Ax = b,x ≥ 0}, cualquier punto xi ∈S es una combinación lineal convexa de sus puntos extremos (o vértices) más una combinación lineal positiva de sus direcciones extremas (aristas).
6.5.2 Optimización no lineal
Para optimización no lineal, hay métodos directos como la búsqueda aleato- ria y métodos indirectos como el método del gradiente conjugado (Rao, 1996).
94 Optimizacion y Heurísticas
que exigen información que no siempre está disponible. Por ejemplo, los mé- todos de gradiente necesitan que se calcule la primera derivada de la función objetivo. Otros métodos, como el de Newton exigen la segunda derivada. Por lo tanto, si la función objetivo no es diferenciable, estos métodos no podrían aplicarse. En muchos casos de mundo real, no hay ni siquiera una forma ex- plícita de la función objetivo.
6.5.3 Método Steepest Descent
Un ejemplo de técnicas clásicas de optimización es el método del descenso empinado o steepest descent, propuesto originalmente por Cauchy en 1847. La idea de este método es escoger un punto xi cualquiera del espacio de búsqueda y moverse a lo largo de las direcciones de descenso más inclinado (dirección de gradiente fi) hasta encontrar el valor óptimo. El algoritmo 1 describe este método.
6.5.4 Método de Fletcher-Reeves (Gradiente Conjugado)
Que fue propuesto inicialmente por Hestenes & Stiefel en 1952, como una forma de solucionar sistemas de ecuaciones lineales derivadas de las condi- ciones estacionarias de una cuadrática.
Algoritmo 1: Algoritmo Steepest descent
e s c o g e r un punto x1 i = 1 r e p e t i r c a l c u l a r $ \ n a b l a $ f i e n c o n t r a r l a d i r e c c i o n s i = $−$$ \ n a b l a $ f i = $−$$ \ n a b l a $ f ( x i ) d e t e r m i n a r e l i n c r e m e n t o optimo $ \ l a m b d a$ i en l a d i r e c c i o n s i c a l c u l a r x i +1 = x i +$ \ l a m b d a $i s i = x i $−$$ \ l a m b d a $ i $ \ n a b l a $ f i i = i +1 h a s t a que x t+1 s e a optimo
Se puede ver como una variante del método Steepest Descent, que usa el gradiente de una función para encontrar la dirección más prometedora de búsqueda. El algoritmo 2 describe el método de Fletcher-Reeves.
Algoritmo 2: Algoritmo de Gradiente Conjugado
e s c o g e r un punto a r b i t r a r i o x1
c a l c u l a r l a d i r e c c i o n de busqueda s 1 = $−$$ \ n a b l a $ f ( x1 ) = $−$$ \ n a b l a $ f 1