Está en la página 1de 22

3.

Optimizacin no lineal

CAPTULO 3. OPTIMIZACIN NO LINEAL.


3.1. Introduccin.
En el presente captulo se describe el mtodo de optimizacin no lineal con restricciones que se ha desarrollado. Un proceso de optimizacin consta de varias partes a definir: Funcin objetivo: Es la variable o combinacin de variables que se quieren minimizar o maximizar. Variables de diseo: Son las variables independientes que definen el diseo del problema mecnico. Normalmente son parmetros geomtricos. Restricciones: Son inecuaciones que se deben cumplir para que el ptimo alcanzado sea vlido. stas podrn incluir tanto variables dependientes como independientes. Si por ejemplo se quiere optimizar la cantidad de material utilizado en una viga de seccin cuadrada, y se quiere que esta seccin mantenga una cierta relacin de aspecto, entonces se tentr: Funcin objetivo: Volumen del material utilizado en la viga Variables de diseo: El ancho y el canto de la seccin de la viga Restricciones: Que no se supere el lmite elstico del material, que la flecha sea menor que una dada y que la relacin entre ancho y canto se encuentre dentro de cierto intervalo. Adems las variables de diseo debern estar dentro de cierto intervalo. La formulacin de este problema se presenta a continuacin:
Funcin objetivo. Minimizar Volumen de material.

eqv e
Restricciones. u umax H/B rel1 rel2 H/B H1,B1 <H,B < H2,B2

donde H y B son el canto y ancho de la viga. El primer paso para resolver este tipo de problemas es transformar el problema con restricciones en uno sin restricciones. Esto se consigue mediante la penalizacin de la funcin objetivo que se realiza mediante funciones de penalizacin del tipo interior extendida. De esta manera se pueden aplicar los algoritmos de optimizacin sin restricciones. Posteriormente se 34

3. Optimizacin no lineal

estudia la optimizacin multidimensional sin restricciones, haciendo consideraciones tericas de los mtodos de primer y de segundo orden, en los que se explica el mtodo del gradiente (o mtodo de Cauchy) y el de Davidon-Fletcher-Powell [14] (algoritmo de mtrica variable) respectivamente. Estos mtodos se diferencian principalmente en la forma en la que se obtiene la direccin de bsqueda. Ambos mtodos descritos anteriormente necesitan de una bsqueda monodimensional en la direccin de bsqueda que se obtiene. Para ello se describe el mtodo de bsqueda monodimensional que es el mtodo ms bsico as como el primordial en cualquier proceso de optimizacin. Todo el proceso de optimizacin se puede condensar en la siguiente frmula: xk+1 = xk + skdk (3.1.1) donde sk es el parmetro de bsqueda monodimensional en la iteracin k-sima, xk son las variables de diseo en la iteracin k-sima, y dk es la direccin de bsqueda en la iteracin k-sima. En cada iteracin se calcula una direccin de bsqueda dk. La forma de calcularla depender de si se utiliza el mtodo del gradiente o el de Davivon-Fletcher-Powell. El siguiente paso consiste en buscar el mnimo de la funcin objetivo penalizada en dicha direccin mediante la bsqueda monodimensional. Esta bsqueda, que se realiza como se ha comentado con el mtodo de la seccin urea, proporciona un valor de sk que ser el que se utilice para el clculo del siguiente estado xk+1. Una vez que este proceso converge se actualiza el parmetro de penalizacin y se obtiene una nueva funcin objetivo penalizada que vuelve a ser optimizada. Este proceso se termina cuando se da la convergencia del proceso de optimizacin global. Por ltimo se explica la implementacin tanto del algoritmo de primer orden como del de segundo orden. Esta implementacin se realiza tanto en lenguaje de programacin de ANSYS como en lenguaje de programacin de FORTRAN. El programa de elementos finitos que se va a utilizar para la resolucin del problema incluye un mdulo de optimizacin. A pesar de esto se ha decidido realizar la implementacin de los algoritmos de optimizacin debido a ciertas incongruencias que aparecen en el manual de dicho mdulo. En primer lugar se presenta un mtodo de orden 0. Este mtodo no requiere la evaluacin de las derivadas y utiliza una aproximacin de la funcin objetivo penalizada mediante ajustes cuadrticos. Estas incongruencias son las siguientes: En el mtodo de orden 0: 35

3. Optimizacin no lineal

o Las funciones de penalizacin, que segn dice son del tipo interior extendida, quedan definidas en funcin de ciertos parmetros:

(3.1.2) donde d1, d2, d3 y d4 son parmetros internamente calculados y es un nmero positivo muy pequeo, lo que impide cualquier tipo de control sobre las funciones de penalizacin. o Dice que el parmetro de penalizacin se incrementa cuando debe decrementarse como corresponde a la penalizacin interior extendida. o El parmetro que utiliza para la actualizacin de las variables de diseo tampoco se indica como se obtiene. (3.1.3) donde x(b) es el estimado anterior y C es un parmetro que vara entre 0 y 1 internamente elegido. En el mtodo de primer orden: o Las funciones de penalizacin son dejadas en funcin de parmetros no conocidos.

(3.1.4) donde es un entero de valor muy elevado. o Indica que para las variables de diseo se aplica penalizacin exterior, pero no la muestra. o No se define el parmetro de penalizacin. Adems, ANSYS carece de mtodo de segundo orden. Estos algoritmos proporcionan una convergencia ms rpida en problemas donde la regin factible sea muy amplia o problemas altamente no lineales. Estos hechos justifican la implementacin de dos algoritmos de optimizacin: uno de primer orden y otro de segundo orden, que conseguira mejorar la convergencia en problemas en los que la funcin objetivo no se aproxime bien de forma lineal.

36

3. Optimizacin no lineal

3.2. Optimizacin con restricciones.


Se trata del problema ms general. Optimizacin de una funcin no lineal sujeto tambin a restricciones, que en el caso ms general sern no lineales. Este problema se formula como sigue: Minimizar: Sujeto a: f ( x) gj (x) 0 hk (x) = 0 xi[ xi1, xi2]. j = 1, m k = 1,l (3.2.1) (3.2.2) (3.2.3) (3.2.4)

El procedimiento que se sigue es intentar formular el problema como un problema sin restricciones. Para ello se penaliza la violacin de las restricciones. Si inicialmente se penalizaran completamente las restricciones se obtendran discontinuidades. Estas discontinuidades en la frontera de la regin factible dara lugar a problemas mal condicionados. Por ello se impone inicialmente la penalizacin de una forma moderada, aumentndose dicha penalizacin a medida que avanza la penalizacin. Esto implica que se tengan que resolver varios problemas de optimizacin sin restricciones para la resolucin de uno con restricciones. De ah el nombre de estos mtodos: sequential unconstrained minimization techniques (SUMT). Existe multitud de teoremas y aspectos tericos sobre SUMT pero dado que el propsito que se tiene es el de implementar un algoritmo para un diseo de ingeniera se limitar la discusin a un aspecto ms general y prctico de estos mtodos. La pseudo-funcin objetivo que se emplea en estos mtodos son de la forma:

( x, p ) = f ( x ) + p P ( x )

(3.2.5)

donde f (x) es la funcin objetivo original y P (x) es la funcin de penalizacin. La forma de la funcin de penalizacin es lo que diferencia los distintos mtodos que existen para transformar un problema de optimizacin no lineal con restricciones en un problema de optimizacin no lineal sin restricciones. Los mtodos que se discuten a continuacin son tres. El primero y ms fcil de implementar es el de la penalizacin exterior, llamado as porque slo se penaliza la funcin objetivo cuando las restricciones no se cumplen y se puede partir de un estimado fuera de la regin factible. El segundo se conoce como el mtodo de la penalizacin interior, en el que se va penalizando conforme se acerca a la frontera de la regin factible pero sin dejar nunca que se viole. En este segundo hay que partir de un estimado factible. Las ventajas de estos dos mtodos se incorporan al tercero, conocido como el mtodo de penalizacin interior extendida. Estudios ms recientes indican que cuando se dan

37

3. Optimizacin no lineal

problemas numricos por mal condicionamiento del mismo estos se pueden reducir con el uso de los multiplicadores de Lagrange.
3.2.1. Mtodo de la penalizacin exterior.

En este mtodo la funcin penalizacin viene dada de la siguiente forma:


P ( x) = {max 0, g j ( x) } + [hk ( x)]
m 2 l j =1 k =1

(3.2.6)

Como se observa, en caso de que no se cumplan las restricciones existe penalizacin de stas, pero si se estn cumpliendo la penalizacin es nula (gj (x) 0, hk (x) = 0). La penalizacin es la propia restriccin al cuadrado. As se consigue continuidad de la derivada primera de la pseudo-funcin objetivo ( x, p ) en la frontera. Pero al no ser continua la derivada segunda, puede conllevar problemas numricos en caso de usar un mtodo de segundo orden. Considerando ahora el factor p, se observa en la figura 3.1 que un valor pequeo del mismo facilitara la minimizacin pero implicara una mayor violacin de las restricciones. Un valor alto conllevara un cumplimiento bastante satisfactorio de las restricciones peor implicara un pero condicionamiento del problema desde el punto de vista numrico. De este modo generalmente se comienza con un valor bajo del factor p, optimizando la pseudo-funcin objetivo ( x, p ) posteriormente. A continuacin se aumenta el valor de p para volver a optimizar ( x, p ) partiendo de la solucin anterior, crendose as un proceso iterativo que termina cuando se obtienen unos resultados satisfactorios. La aplicacin de este mtodo al problemas siguiente se muestra en la figura 3.2. (b), mientras que en la 3.2. (a) se muestra la funcin objetivo y las restricciones originales:
Minimizar:

(x + 2)2
20

Restricciones.

1 x 0 2 x2 0 2

38

3. Optimizacin no lineal

(p=100) (p=10)

(p=1)

(a)

(b)

Figura 3.1. (a) Funcin objetivo F(x) y funciones de penalizacin g(x); (b) Pseudo funcin objetivo mediante el mtodo de la penalizacin externa.

3.2.2. Mtodo de la penalizacin interior

La ventaja de este mtodo respecto al anterior reside en que la serie de soluciones que se van alcanzando a lo largo del proceso iterativo son todas factibles. Como desventaja se tiene que el problema de minimizacin resultante es algo ms complejo y que es necesario que el estimado inicial sea factible. La funcin de penalizacin ms comnmente utilizada en este mtodo es, para las restricciones de desigualdad: P ( x) =
j =1 m

1 g j ( x)

(3.2.7)

mientras que para las de igualdad son las dadas por el mtodo de la penalizacin exterior ya que se busca que hk(x) sea lo ms cercana posible a cero. Quedando la pseudo-funcin objetivo como sigue:
m l 1 2 + p [hk ( x)] g j ( x) k =1

( x, p , p ' ) = f ( x) + p '
j =1

(3.2.8)

que es una pseudo-funcin objetivo bastante ms compleja que la del mtodo anterior. Cabe destacar que el factor p ' va decreciendo a lo largo del proceso, mientras que el p crece, ya que se trata de penalizacin exterior. Este proceso se muestra en la siguiente figura, sobra la misma funcin objetivo y restricciones utilizadas en el mtodo de penalizacin anterior.

39

3. Optimizacin no lineal

P=0.5

P=0.1 P=0.01

Regin factible

Figura 3.2. Pseudo funcin objetivo mediante el mtodo de la penalizacin interna.

Para que la solucin sea factible es necesario que gj(x) sea menor que cero, observndose que 1/ gj(x) es mayor que cero, tendiendo adems a infinito conforme se acerca a la restriccin.
3.2.3. Mtodo de la penalizacin interior extendida.

Este mtodo intenta incorporar las ventajas de los anteriores para las restricciones de desigualdad. Para las restricciones de igualdad utiliza penalizacin exterior, por lo que se omitirn en la explicacin por brevedad. La funcin de penalizacin tiene la siguiente forma:
~ ( x) P ( x) = g j
j =1 m

(3.2.9)

donde:
~ ( x) = 1 g j g j ( x)

si

gj (x) gj (x) >

(3.2.10)

~ ( x) = 2 g j ( x) g j 2

si

(3.2.11)

El parmetro es un valor pequeo que indica el punto en el que se pasa de penalizacin interior de la ecuacin (3.2.9) a la extendida de la ecuacin (3.2.10). La eleccin de debe ser tal que la pendiente de la pseudo-funcin objetivo en la frontera de la regin factible sea positiva. El valor recomendado por Haftka y Starnes [16] es:

= C ( ' p )a

con 1/3 a 1/2

(3.2.12) 40

3. Optimizacin no lineal

donde C es una constante. Al principio de la optimizacin estos autores eligen un [-0.3,-0.1], y escogen p ' de tal forma que los dos trminos de la derecha de la ecuacin (3.2.5) sean iguales. De este modo se define el valor de C. Con esta eleccin de valores se asegura pendiente positiva en la frontera, lo que conlleva una secuencia de soluciones factibles. Durante la optimizacin se va disminuyendo p ' de forma que la solucin se va acercando al ptimo deseado como se muestra a continuacin. Este es el mtodo que se ha utilizado en el presente proyecto debido a sus ventajas ya comentadas, es decir, que la serie de soluciones que se van alcanzando a lo largo del proceso de optimizacin son factibles y que el estimado inicial puede encontrarse fuera de la regin factible.

p=0.5 =-0.146

p=0.1 =-0.047 p=0.001 =-0.0047

Figura 3.3. Pseudo funcin objetivo mediante el mtodo de la penalizacin interna.

3.3. Optimizacin sin restricciones


En muchas ocasiones se presentan problemas de optimizacin sin restricciones o uno con restricciones que se ha transformado en otro sin restricciones. En estos problemas slo se busca el mnimo de la funcin objetivo. Hay que aclarar que en caso de que lo que se desee sea maximizar, basta con minimizar la funcin cambiada de signo, por ello, en lo que sigue se habla de minimizar sin prdida alguna de generalidad. Los mtodos de optimizacin se pueden clasificar en directos y en indirectos. Los indirectos son bastante complejos ya que hay que resolver unas ecuaciones que son fuertemente no lineales. stas son obtenidas tras imponer la condicin de mnimo, que no es otra que anular el gradiente. 41

3. Optimizacin no lineal

Los mtodos directos de optimizacin son iterativos. Se parte de un estimado inicial x0 y tras calcular la direccin de bsqueda d1, se llega al punto x1 tras la bsqueda monodimensional en dicha direccin. Segn el mtodo que se utilice se calcular la direccin de bsqueda de una u otra manera. Generalizando para la iteracin k-sima se tiene: xk+1 = xk + skdk
(3.3.1)

donde sk es el parmetro calculado en la bsqueda monodimensional. En sta se minimiza la funcin objetivo mediante la variacin del parmetro sk dentro de su intervalo factible [sk1,sk2]. Este intervalo vendr dado por la imposicin de los lmites de las variables de diseo. Min. f(xk + skdk) sk[sk1,sk2]
(3.3.2)

Segn cmo se obtenga la direccin de bsqueda los mtodos se clasifican principalmente en primer y segundo orden como se explica a continuacin.
3.3.1. Mtodos de primer orden.

Reciben su nombre porque utilizan el gradiente para el clculo de la direccin de bsqueda. Son mtodos lentos en general pero que en muchos casos, en los que la funcin a minimizar se asemeje a una funcin lineal en el intervalo, da muy buenos resultados debido a su simplicidad. As mismo dan malos resultados para funciones con derivadas primeras discontinuas en los que son ms convenientes mtodos de optimizacin sin derivadas. La forma de evaluar el gradiente pude ser analtica o numrica por diferencias finitas. Si se toma como direccin de bsqueda la dada por el gradiente se tiene el mtodo del gradiente, tambin llamado de Cauchy. El mtodo del gradiente es el ms inmediato, siendo en el que se basan otros ms complejos. El algoritmo es el siguiente: i. ii. Se parte de un punto inicial xk. Si f ( x ) < se termina la optimizacin. xk es el ptimo buscado y es un
k

valor lo suficientemente pequeo para suponer que el gradiente se anula (condicin de mnimo). En otro caso se ir a iii. iii. iv. sk[sk1,sk2]. v. Se define el nuevo estado xk+1= xk + sk dk 42 Se define la direccin de bsqueda: d k =
f ( x ) f ( x )
k k

Bsqueda monodimensional en la direccin dk . Se minimiza f( xk +sk dk ) con

3. Optimizacin no lineal

vi.

Ir a i.

3.3.2. Mtodos de segundo orden.

Estos mtodos utilizan las derivadas primeras y las derivadas segundas de la funcin a optimizar. El mtodo de Newton es el que mejor representa a los mtodos de esta familia. Se utiliza para la bsqueda de races de funciones de una variable o para resolver sistemas de ecuaciones. Adems, como al optimizar se busca que las derivadas parciales primeras se anulen, el mtodo de Newton tambin se puede aplicar a este tipo de problemas. El mtodo de Newton aproxima la funcin en el entorno del mnimo mediante una funcin cuadrtica, que es la que se minimiza exactamente. Dicha aproximacin cuadrtica es la representacin de Taylor hasta el segundo orden de la funcin. En esta aproximacin se impone gradiente nulo f ( x ) = 0 y se aprovecha que la matriz hessiana H ( x ) = 2 f ( x ) es simtrica para llegar a la ecuacin recurrente del mtodo de Newton: x
k +1 k k k

= x H ( x ) T f ( x )

(3.3.3)

En la prctica el clculo de la matriz hessiana puede ser muy costoso, por lo que se suele recurrir a otros mtodos. Tambin puede ocurrir que la matriz hessiana sea singular o no sea definida positiva, por lo que este mtodo no podra usarse o tendra que usarse conjuntamente con otros que actuaran cuando el invertir la matriz hessiana no fuera posible. Debido a esto se han desarrollado los mtodos de Newton Modificados. Uno de ellos consiste en modificar la matriz hessiana, sustituyndola por otra prxima a ella pero que s sea definida positiva. An as no se soluciona el problema del coste computacional que conlleva el clculo de la matriz hessiana. Adems de ser costoso el clculo de la matriz hessiana, tambin lo es el clculo de su inversa. Para solventar estos problemas surgen los algoritmos de mtrica variable. En stos la direccin de bsqueda viene definida como d k = S T f ( x ) , donde Sk es una matriz
k k

definida positiva. La matriz Sk debe reflejar las propiedades de la hessiana de la funcin para conseguir una convergencia rpida del problema. Para el clculo de Sk no se necesitan las derivadas segundas, reducindose as considerablemente el coste del clculo de la direccin de bsqueda. El mtodo de Cauchy, visto anteriormente, no es ms que un caso particular de este mtodo, en el que Sk=I. La velocidad de convergencia de los mtodos de mtrica variable depender de lo cerca que se encuentre Sk de H ( x ) .
k

43

3. Optimizacin no lineal

La idea fundamental de estos mtodos es la construccin de una aproximacin a la matriz inversa del hessiano. Para una mejor convergencia esta aproximacin debe ser buena en el entorno del ptimo. La aproximacin que se hace del hessiano es la siguiente:
H (x
k +1 k +1 k

f ( x ) f ( x ) k +1 k x x
k k +1

(3.3.4)
k k k +1

denominando q = f ( x q = H (x
k k +1

) f ( x ) y p = x

x la expresin anterior resulta en: (3.3.5)

) p

Si se supone que el hessiano puede considerarse constante en n sucesivos pasos del algoritmo se podr hacer: q = Hp
k k

k = 1,2,..., n

(3.3.6)

y queda determinado H para que se cumplan el anterior sistema de ecuaciones. Para un problema en vas de resolucin, si el nmero de pasos resueltos es k < n, la matriz H-1 no podr ser construida totalmente y el sistema de ecuaciones S q = p
i +1 i i

1 i < n

(3.3.8)

admite infinitas soluciones de la matriz S. Los distintos mtodos se distinguen en cmo se defina S. Existen varios mtodos, pero el que se ha usado es el mtodo de Davidon-FletcherPowell. La matriz aproximada de la inversa del hessiano se actualiza en cada paso del algoritmo sumndole dos matrices simtricas de rango unidad. Por ello tambin se conoce como mtodo de correccin de rango dos. Partiendo de (3.3.8) se supone la matriz Sk+1 de la forma: S
k +1

=S +A

(3.3.9)

Sustituyendo la ecuacin anterior en (3.3.8) se obtiene un sistema de ecuaciones: A q = p S q


k k k k k

(3.3.10)

cuya solucin es de la forma:


A =
k

p y
kT

kT k

y q

S q z z q
kT k

kT

(3.3.11)

donde ykT , zkT son vectores arbitrarios no ortogonales a qk. stos se elegirn de tal manera que Ak sea simtrica ya que se sabe que H-1 lo es. La forma ms inmediata de imponer la simetra de Ak es hacer yk = pk y zk = qk. Sustituyendo en (3.3.11) se obtiene la frmula de DavidonFletcher-Powell:
S
k +1 k kT k k k kT k

p p
kT

p q

S q q S q S q
kT k k

+S

(3.3.12)

44

3. Optimizacin no lineal

Se demuestra que si Sk es definida positiva Sk+1 tambin lo ser. Por esto basta escoger una matriz inicial S0 definida positiva, como puede ser una matriz diagonal con escalares positivos a lo largo de la diagonal, por ejemplo la matriz identidad. El algoritmo basado en el presente mtodo es el siguiente: i. ii. iii. Definicin de una matriz inicial S0 definida positiva y de un punto inicial x0. Obtencin de la direccin de bsqueda dk=Skgk, donde g = T f ( x ) .
k k

Minimizacin de f(xk+sdk) para s 0, obtenindose el nuevo estimado xk+1 y por


k +1

tanto tambin g iv. Definir

= T f ( x de
k

k +1

)
k +1

q = f ( x S q q S q S q
kT k k k k kT

) f ( x ) = g
k

k +1

p =x

k +1

k +1

p p
kT

kT k

p q

+S

3.4. Bsqueda monodimensional.


Para la bsqueda monodimensional es necesario tener definido un intervalo de la variable independiente en el que se va a realizar la bsqueda del mnimo. La funcin a optimizar debe ser unimodal en dicho intervalo, es decir, que slo presente un ptimo local en el intervalo, garantizndose as la unicidad de la solucin. En este caso la bsqueda monodimensional se encuentra integrada en un proceso de bsqueda multivariable. Por ello para aplicar este mtodo se crea el parmetro sk que vara en la direccin de bsqueda. ste ser el que se utilice como variable independiente en dicho proceso. xk+1 = xk + skdk (3.4.1) El mtodo que se ha empleado para la bsqueda monodimensional es el de la Seccin urea. La principal ventaja de este mtodo es que reduce considerablemente el nmero de evaluaciones de la funcin objetivo con el consiguiente ahorro de tiempo, especialmente en resoluciones de elevado coste computacional. Para la aplicacin de este mtodo se requiere tener un intervalo [an, bn] de aplicacin del mismo. Como en cualquier mtodo de bsqueda se requiere encontrar el mnimo en dicho intervalo mediante la evaluacin de la funcin en distintos puntos. La particularidad del mtodo de la seccin urea reside en la relacin existente entre dos intervalos consecutivos. De esta manera en un intervalo se utilizan valores del intervalo anterior, evitndose as nuevas evaluaciones.

45

3. Optimizacin no lineal

En primer lugar se realiza la evaluacin de la funcin objetivo en dos puntos x1n y x2n que cumplen la relacin: x2 a n b n x1 = n = bn an b an Al evaluarse la funcin en dichos puntos pueden darse dos casos: f (x1n) < f(x2n). El nuevo intervalo de incertidumbre ser [an, x2n] y los nuevos puntos en los que evaluar la funcin seran x2n+1 = x1n y x1n+1 se obtiene de la expresin (3.4.2), quedando:
x2 a n +1 x1 a n = = b n+1 a n+1 x2 n a n
n +1 n

(3.4.2)

(3.4.3)

f (x1n) > f(x2n). El nuevo intervalo de incertidumbre ser [x1n, bn], luego la funcin se evaluar en los puntos x1n+1 = x2n y el nuevo x2n+1 vendr dado por la expresin:
b n+1 x1 b n x2 = = b n+1 a n+1 b n x1n
n +1 n

(3.4.4) 1 + 5 0.618 , que es el nmero 2

De las expresiones anteriores se deduce que = ureo, el cual da nombre al presente algoritmo.

Figura 3.4. Ejemplo de dos intervalos consecutivos del algoritmo de la Seccin urea

Iterando el proceso anterior se va cerrando el intervalo entorno al mnimo de la funcin. Para salir de la iteracin se definen unas tolerancias para el tamao del intervalo de incertidumbre y para la variacin de la funcin entre dos intervalos consecutivos. Una vez que

46

3. Optimizacin no lineal

se sale del proceso iterativo por cualquiera de estos dos motivos, se realiza un ajuste cuadrtico de los puntos del ltimo intervalo: f ( x) = A x 2 + B x + C
(3.4.5)

De esta manera se puede calcular el mnimo y su posicin derivando la funcin anterior. x= B 2 A


(3.4.6)

La obtencin de los parmetros se realiza a partir de los tres puntos conocidos del ltimo intervalo mediante el siguiente sistema de ecuaciones de tres incgnitas. Invirtiendo la matriz se llega a obtener A B y C:
a n+1 2 b n +1 2 n+1 2 x2

( ) ( )

a n +1 b n+1 x2
n +1

1 A f (a n+1 ) 1 B = f (b n +1 ) n +1 f ( x2 ) C 1

(3.4.7)

Por ltimo basta la sustitucin de la ecuacin (3.4.6) en (3.4.5) para la obtencin del valor de la funcin en el mnimo.

3.5. Implementacin de los algoritmos de optimizacin.


En primer lugar se han implementado los algoritmos en FORTRAN para poder comprobar su funcionamiento con problemas matemticos. A continuacin se procedi a su implementacin en APDL, lenguaje paramtrico de Ansys. Se han comparado los resultados dados por ANSYS y FORTRAN mediante su aplicacin a problemas de solucin analtica conocida. De esta manera se comprueba el correcto funcionamiento de los algoritmos implementados en APDL. Los archivos que componen los programas de optimizacin tanto en APDL como en FORTRAN se adjuntan en el ANEXO A.
3.5.1. Algoritmo de primer orden.

Se ha implementado el algoritmo del mtodo del gradiente, mtodo bsico de optimizacin no lineal. Es un mtodo bastante general aunque de convergencia lenta, caracterstica que se atena frente a otros mtodos cuando se tiene una regin factible pequea, en la que la funcin no se diferencia en gran medida de una funcin lineal. La implementacin, tanto en FORTRAN como en APDL, ha requerido la creacin de varias funciones debido a la complejidad del algoritmo resultante, crendose as una estructura clara que ayuda a la comprensin del proceso de optimizacin. Hay que decir que los programas de optimizacin tambin son paramtricos, es decir, sirven para cualquier problema

47

3. Optimizacin no lineal

con slo cambiar algunos parmetros como el nmero de restricciones o de variables de diseo, as como sus valores iniciales e intervalos. En primer lugar hay que tener bien definido el problema mecnico a estudiar mediante el MEF. De esta manera es necesario que el problema est definido de forma paramtrica, para que pueda recibir en cada resolucin las variables de diseo que el programa de optimizacin vaya requiriendo. Una vez resuelto el problema, ste debe devolver al programa de optimizacin el valor de las distintas variables que forman parte de la funcin objetivo o de las restricciones. A continuacin se forma la funcin objetivo penalizada con las variables devueltas por el modelo. A esta funcin se le busca el ptimo mediante el mtodo del gradiente y se comprueba la convergencia, actualizando a su vez el parmetro de penalizacin. Una vez actualizado ste, se tiene otra funcin penalizada que se vuelve a optimizar mediante el mtodo del gradiente.
Inicio

Modelo.inp "f(x)"

xi , xi , g i , hi , wi , wi ,

Asignacin

Crear funcin objetivo Q=Qf+Qp Actualizacin de Bsqueda de ptimo

NO Convergencia en

S Q(xi*),xi*

Fin

Figura 3.5. Diagrama de flujo del proceso de optimizacin.

48

3. Optimizacin no lineal

La funcin objetivo penalizada resultante es del siguiente tipo: Q()=Pf+(Pg+Ph+Pw) (3.5.1) donde Q es la funcin objetivo penalizada, el parmetro de penalizacin, Pf la funcin objetivo adimensionada y Pg, Ph y Pw las funciones de penalizacin de las restricciones segn el signo de la inecuacin. La funcin objetivo original se adimensiona con su valor en el estimado inicial segn la siguiente ecuacin: Pf=F/F0 donde F0 es el valor de la funcin objetivo en el estimado inicial. En los siguientes diagramas de flujo se muestra el proceso de penalizacin siguiendo el mtodo de penalizacin interior extendida que se explica en el apartado 3.2.3. as como la generacin de la funcin objetivo penalizada.
Inicio
Inicio

(3.5.2)

Funcin objetivo F Restricciones:

Restriccin genrica;

gg hh w w w xxx

= C( ' p )a

gg 0

1 1 a 3 2

gg 0

xx 0

gg
S

NO

Pg =

1 gg

Crear funciones Penalizacin de cada restriccin. Pg , Ph , P w

Pg =
Q() = Pf + (Pg + Ph + Pw) Q( ) = Qf + Qp

2 g g

FIN

FIN

(a)

(b)

Figura 3.6. Creacin de la funcin objetiva penalizada (a) y penalizacin de una restriccin genrica.

49

3. Optimizacin no lineal

Una vez que se calcula la funcin objetivo se procede al clculo de la direccin de bsqueda, que en el mtodo del gradiente viene dada por la de mxima disminucin de la funcin objetivo. El clculo del gradiente se realiza mediante diferencias finitas. Para ello, partiendo del valor inicial, se aplican pequeos incrementos a cada variable de diseo, calculndose el valor de la funcin objetivo penalizada para el incremento de cada variable por separado. Por cada variable se tendr que formar una funcin objetivo penalizada, lo que implica la resolucin de un modelo mecnico por cada variable de diseo para el clculo del gradiente. Una vez se tiene la direccin se calcula el intervalo de bsqueda que ser entre el estimado actual y el valor de las variables de diseo que haga que una llegue a uno de sus lmites del rango de validez. De esta manera se imponen la ecuacin (3.4.4). El siguiente paso es la minimizacin monodimensional para la que se utiliza el algoritmo de la seccin urea. Esta bsqueda se realiza segn la ecuacin (3.3.2). Este proceso de minimizacin mediante el mtodo del gradiente se muestra en el siguiente diagrama de flujo. En la figura 3.8 se muestra el proceso de obtencin del valor lmite de las variables de diseo en la direccin de bsqueda. Como se observa se utiliza un parmetro s que va a caracterizar todo el proceso monodimensional, en primer lugar calculando su valor mximo smax para que las variables de diseo se encuentren en su intervalo de validez y posteriormente siendo el parmetro a variar durante la bsqueda monodimensional mediante el mtodo de la seccin urea. El proceso de bsqueda monodimensional, mostrado en la figura 3.9, mediante el mtodo de la seccin urea se realiza evaluando la funcin objetivo en unos puntos determinados en direccin del gradiente. Se comparan sus valores y se va reduciendo el intervalo de minimizacin, aprovechando para cada iteracin de bsqueda todos los valores calculados anteriormente menos uno. Es decir, para cada iteracin en la bsqueda monodimensional se evala una vez la funcin objetivo. Llega un momento en que el intervalo o la variacin de la funcin objetivo en dicho intervalo es tan pequeo que se pueden ajustar los puntos mediante una parbola con suficiente aproximacin. Lo que se hace llegado a este punto es obtener el mnimo de dicha parbola. Una vez finalizada cada iteracin de optimizacin se actualiza el punto inicial de las variables de diseo con el ptimo de la iteracin anterior. Cuando el ptimo obtenido en una iteracin se encuentra lo suficientemente prximo al ptimo anterior se termina el proceso de optimizacin mediante el mtodo del gradiente. Si el proceso global de optimizacin no ha terminado se actualiza el parmetro de penalizacin p y se vuelve a realizar el proceso de

50

3. Optimizacin no lineal

optimizacin de la funcin objetivo, penalizada con el nuevo p, mediante el mtodo del gradiente. El proceso global de optimizacin finaliza si se dan alguna de las dos situaciones siguientes: que el ptimo obtenido se encuentre prximo al ptimo obtenido en la anterior iteracin o que el gradiente sea nulo (condicin de ptimo).

Inicio

Q(x0)

xQ(x0 ) xQ(x j )
Obtencin del gradiente.

j j +1

xQ
x
k +1

= x sk

f ( x ) f ( x )
k

Calcular "Smax"

Minimizar Seccin urea

NO

Convergencia

S Q(xi*),xi*

Fin

Figura 3.7. Proceso de minimizacin mediante el mtodo del gradiente.

51

3. Optimizacin no lineal

INICIO Dadas la Direccin de bsqueda y punto de partida

xQ = xQi x0 = xi 0 i = 1Kn

i =1 i i ii + 11 +
NO

xQi = 0
NO

i=n
S

FIN por ptimo

Smax i = Smax i

xi xi 0 xQi xi xi 0 = xQi

NO

Smax = Smax i
*

Smax i 0

Smax * = Smax i

i i +1

xQi = 0
NO

Smax i = Smax i

xi xi 0 xQi xi xi 0 = xQi
NO

NO

Smax i Smax
S

NO

Smax i 0

Smax i Smax*
S

Smax * = Smax i

Smax * = Smax i

i=n
S

NO

FIN

Figura 3.8. Obtencin del valor lmite de las variables de diseo en la direccin de bsqueda.

52

3. Optimizacin no lineal

Inicio

x1 ,smax ,TolQ,Tolab a,b

n=1

Q(a),Q(b)

a b Tolab smax
NO

SI

Q(a) Q(b) TolQ Q(a)


NO

SI

Q(a) Q(b)

x1 <-- b b <-- a a

x2 <-- a a <-- b b

n <-- n+1

n >N

x <-- Ajuste cuadrtico

Fin

Figura 3.9. Proceso de bsqueda monodimensional mediante el algoritmo de la Seccin urea.

53

3. Optimizacin no lineal

3.5.2. Algoritmo de segundo orden.

El mtodo del gradiente presenta una convergencia lenta, necesitndose gran nmero de iteraciones para llegar a la solucin ptima. Cuando el tiempo de resolucin del modelo mecnico es elevado, resulta interesante la aplicacin de mtodos de segundo orden. Estos mtodos consiguen una convergencia ms rpida, reducindose as, en general el tiempo de resolucin. A pesar de requerir menos iteraciones necesita realizar ms operaciones en cada iteracin, pero son operaciones matriciales y de almacenamiento de datos que no suponen prdida de tiempo en la resolucin a no ser que se tuviera un nmero muy elevado de variables de diseo. An as, el tiempo requerido para estas operaciones adicionales al mtodo del gradiente es varios rdenes de magnitud inferior, en general, al de resolucin de un problema mecnico complejo mediante el MEF. Slo en el caso de un problema de muy rpida resolucin en MEF, y con un numero muy elevado de variables de diseo se vera incrementado apreciablemente el tiempo de resolucin del clculo de la direccin de bsqueda mediante un mtodo de segundo orden. El algoritmo de segundo orden implementado es el mtodo de Davidon-Fletcher-Powell. Lo que lo diferencia del mtodo del gradiente es el clculo de la direccin de bsqueda. Como se coment en la explicacin del mtodo, se aproxima la inversa de la matriz hessiana por una matriz Sk que se construye gracias a los gradientes ya calculados en iteraciones anteriores. Como en la primera iteracin no se posee la informacin de gradientes en iteraciones anteriores, se elige arbitrariamente la matriz S0 con la nica condicin de que sea definida positiva. En la implementacin se ha tomado la matriz identidad, por lo que la primera direccin de bsqueda es la dada por el mtodo del gradiente. A partir de aqu el proceso es idntico al del mtodo del gradiente slo que cuando se calcula la direccin de bsqueda sta viene dada por: d k = S f ( x ) El diagrama de flujo de este mtodo se muestra en la figura 3.10.
k k

(3.5.1)

54

3. Optimizacin no lineal

Inicio

Q(x0)

dk = Sk gk

Obtencin del gradiente. k -> k+1

xQ
x
+S
k

k +1

k +1

p p
kT

kT k

p q

S q q S q S q
kT k k

kT

= x sk

f ( x ) f ( x )
k

Calcular "Smax"
g
k
k +1

= f ( x

k +1

)
k +1

q = f (x ) f (x ) = g

k +1

Minimizar Seccin urea

NO

Convergencia

S Q(xi*),xi*

Fin

Figura 3.10. Proceso de optimizacin multidimensional mediante el algoritmo de Davidon-Fletcher-Powell.

55

También podría gustarte