optimización sin derivados - departamento de...

96
Optimización sin derivados Tomás Arredondo Vidal 29/5/13

Upload: doanminh

Post on 29-Sep-2018

214 views

Category:

Documents


0 download

TRANSCRIPT

Optimización sin derivados

Tomás Arredondo Vidal

29/5/13

Optimización sin derivados

Contenidos

• Características comunes• Algoritmos genéticos (Genetic Algorithms o GA)• Simulated annealing (SA)• Downhill simplex search

• Random search

• Programación Genética• Particle swarm optimization (PSO)• Stochastic hillclimbing• Memetic algorithms

Optimización sin derivados

Todos los métodos a discutir tienen las

siguientes características comunes:• No usan derivados de la función objetivo sino la

función objetivo misma• Usan conceptos intuitivos basados en sistemas

naturales (Ej. Evolución, Termodinamica)• Lentitud comparativa v/s métodos analíticos

derivados

Optimización sin derivados

Características comunes (cont):• Flexibles ya que no requieren funciones

diferenciables• Estocásticos (usan generadores aleatorios)• Dificultad analítica• Iterativos• Son métodos de gran utilidad para la

optimización y generación de modelos

Neural networks

Fuzzy inf. systems

Modelos

Adaptive systems

Derivative-free optim.

Derivative-based optim.

Métodos

Neural networks

Fuzzy inf. systems

Modelos

Adaptive systems

Derivative-free optim.

Derivative-based optim.

Métodos

Derivative-free optim.

Derivative-based optim.

Métodos

Optimización sin derivados

Contenidos

• Características comunes• Algoritmos genéticos (Genetic algorithms o GA)• Simulated annealing (SA)• Downhill simplex search

• Random search

• Programación Genética• Particle swarm optimization (PSO)• Stochastic hillclimbing• Memetic algorithms

6

•Motivación–Que es lo que nos da la evolución?

• Visión • Escuchar • Olfato• Paladar• Tocar• Aprender y razonar

–Podemos emular el proceso evolutivo con las computadoras que hoy tenemos?

Algoritmos Genéticos

7

Que son los AG?•Procedimientos paralelos de búsqueda •Son aplicables a problemas continuos y discretos•Son estocásticos y es poco probable que caigan en una mínima local (que siempre es una posibilidad en un problema de optimización y búsqueda)•Son flexibles y se pueden usar para varios tipos de problemas (Ej. identificar parámetros en redes neuronales, sistemas difusos, muchos mas)

Algoritmos Genéticos

8

Componentes:•Esquema de codificación en strings

– string => “1010...” o “7345...” etc

•Puede codificar – Posiciones– Valores enteros o reales– Pesos neuronales– Valores difusos etc...

•Evaluación de capacidad (fitness)•Típicamente una función a maximizar

Algoritmos Genéticos

9

Componentes (cont):•Selección basada en probabilidades y en fitness

– Pc = fi / ∑ fk•Con o sin elitismo•Cruce para intercambio de información genética•Con o sin cromosomas•1 o 2 o mas puntos de cruce•Mutación•Si Pm es alta se método se convierte en búsqueda aleatoria

Algoritmos Genéticos

10

•Terminología:–Función de fitness–Población–Esquema de codificación–Selección–Cruce–Mutación–Elitismo–Ranking

Algoritmos Genéticos

11

•Codificación binaria

(11, 6, 9) 1011 0110 1001

Gene

Chromosome

Cruce

Mutación

1 0 0 1 1 1 1 0

1 0 1 1 0 0 1 0 1 0 1 1 1 1 1 0

1 0 0 1 0 0 1 0

Crossover point

1 0 0 1 1 1 1 0 1 0 0 1 1 0 1 0

Mutation bit

Algoritmos Genéticos

12

•Algoritmo

1001011001100010101001001001100101111101

. . .

. . .

. . .

. . .

1001011001100010101001001001110101111001

. . .

. . .

. . .

. . .

SelecciónSelección CruceCruce MutaciónMutación

Generación actual Próxima generación

Elitismo

Algoritmos Genéticos

13

•Ejemplo: Encontrar el max. de función peaks•z = f(x, y) = 3*(1-x)2*exp(-(x2) - (y+1)2) - 10*(x/5 - x3 - y5)*exp(-x2-y2) -1/3*exp(-(x+1)2 - y2).

•Obtener el maximo valor usando f ’(x,y) no es trivial.

Algoritmos Genéticos

14

•Procesamiento del GA:

población inicial 5a generación 10a generación

MATLAB : go_ga.m

Algoritmos Genéticos

15

•Aprendizaje en una corrida (one run)

Algoritmos Genéticos

Algoritmos Genéticos

Ejemplo: Diseño de antenas usando AG

Algoritmos Genéticos

• El problema (Altshuler 1998) es determinar las coordenadas x-y-z tridimensionales de terminales (X1, Y1, Z1, X2, Y2, Z2,… , X7, Y7, Z7) de 7 cables para que una antena tenga ciertas caracteristicas

• El primer cable parte en el punto (0, 0, 0) de el plano a tierra

• La antena deber caber en un cubo de 0.5λ• Antena es para comunicaciones entre tierra y

satélites

Diseño de antenas usando AG:

Algoritmos Genéticos

• Genoma de 105-bits• Cada coordenada es de 5 bits (4-bit de datos y uno de

signo: 3 × 7 × 5 = 105 bits

X1 Y1 Z1 X2 Y2 Z2 …

+0010 -1110 +0001 +0011 -1011 +0011 …

Diseño de antenas usando AG:

Algoritmos Genéticos

• Fitness es la suma del cuadrado de la diferencia entre el background y el gain de la antena

• Se quiere una ganancia uniforme en un patrón de 10° sobre el horizonte

• Fitness esta basada en el patrón de radiación basado en National Electromagnetics Code (NEC)

• Suma se toma de los angulos Θ entre -90° y +90° y azimuth Φ de 0° a 180°

Diseño de antenas usando AG:

Algoritmos Genéticos

Patrón de Ganancia:

Diseño Final: U. S. PATENT 5,719,794

Algoritmos Genéticos

Optimización sin derivados

Contenidos

• Características comunes• Algoritmos genéticos (Genetic algorithms o GA)• Simulated annealing (SA)• Downhill simplex search

• Random search

• Programación Genética• Particle swarm optimization (PSO)• Stochastic hillclimbing• Memetic algorithms

23

• Analogía con la termodinámica• Cuando hay altas temperaturas las moléculas de líquidos se mueven libremente• Si el liquido se enfría lentamente los átomos se pueden alinear y organizar en forma de cristales

Simulated Annealing

24

• Si el liquido (Ej. metal a alta temperatura) es enfriado rápidamente no va a llegar al mínimo estado de energía al final del enfriamiento• Lo importante es controlar el ritmo del enfriamiento (cooling schedule) de la temperatura del sistema para lograr que llegue al mínimo global de energía no a una mínima local

Simulated Annealing

E(x)

x

25

•Terminología:– Función objetivo E=f(x): función a ser optimizada, traduce un

vector de input x a un valor real (scalar), cada x es un punto en un espacio de posibilidades de múltiples dimensiones

– Conjunto de movimientos (move set): conjunto de próximos puntos a explorar ∆x = xnew – x

– Función de generación g(∆x, T): especifica la función de probabilidades (pdf) en base a la diferencia entre el punto actual y el próximo punto a ser visitado.

– Clásicamente se usa el pdf del tipo maquina de Boltzmann como función de generación:

g(∆x, T) = (2πT)-n/2exp[-|Δx|2/(2T)] • n es la dimensión del espacio siendo explorado.

– Para muchas implementaciones del SA g( ) es independiente de T y simplemente g( ) genera posibles movidas que después son aceptadas o no aceptadas.

Simulated Annealing

26

•Terminología:– Función de aceptación h(∆E, T): para determinar si un nuevo

punto seleccionado debe ser o no aceptado. Típicamente h(∆E, T) = exp(-∆E/(kBT)).

Lo común es de aceptar xnew con una probabilidad h(∆E, T).

– Ritmo de enfriamiento (Annealing o cooling schedule): ritmo para reducir la temperatura T. Típicamente se reduce T por un porcentaje en cada iteración

– Valores validos: En muchos problemas de optimización el vector x esta confinado a ser de N posibles puntos, estas restricciones se dan para limitar el espacio de búsqueda a puntos legales (valid move set)

Simulated Annealing

27

•Típicamente h(∆E, T) = exp(-∆E/(kBT)).–constante de Boltzmann: kB= 1.38065×10−23 J K−1

Simulated Annealing

0 2 4 6 8 10 0 2

4 6

8 10 0

0.2

0.4

0.6

0.8

1

exp(-x/y)

E2-E1

T

28

• Algoritmo SA:1. Elegir un punto de partida x y elegir una alta temperatura T de

partida, el contador de iteración k=12. Evaluar E = f(x)3. Elegir un nuevo punto xnew del move set con probabilidad

determinada por g(∆x,T) 4. Calcular Enew = f(xnew)

5. Asignar x = xnew y E = Enew con probabilidad determinada por la función de aceptación h(∆E, T)

6. Reducir la temperatura de acuerdo al ritmo deseado7. Incrementar la cuenta de iteración k (hasta un máximo de

iteraciones). Volver al paso 3.

Simulated Annealing

29

•Flowchart:

Select a new point xnew in the move setsvia generating function

Select a new point xnew in the move setsvia generating function

Compute the obj. function E(xnew)Compute the obj. function E(xnew)

Set x to xnew with prob. determinedby h(∆E, T)

Set x to xnew with prob. determinedby h(∆E, T)

Reduce temperature TReduce temperature T

Simulated Annealing

30

• Aplicaciones Típicas de SA:1. Vendedor ambulante (Traveling salesman) tipo de

problemas (Jang p.184), TSP es un problema de tipo NP-completo en el cual el tiempo de computación requerido para encontrar una solución optima se incrementa exponencialmente con el numero de nodos (ciudades)

2. Maximización/minimización de funciones (Michalewitz p.27)

3. Posibles aplicaciones en dominios específicos (Ej. Minimización de circuitos, optimización de diseños etc etc)

Simulated Annealing

31

•Travelling Salesperson Problem (TSP)Como visitar n ciudades visitándo cada una una sola vez y con una distancia total minima?

Simulated Annealing

32

•Conjunto de movidas para TSP

1-2-3-4-5-6-7-8-9-10-11-12

1

2

3

4 5

6

7

8 9

10

11

12

1

2

3

4 5

6

7

8 9

10

11

12

1-2-3-4-5-9-8-7-6-10-11-12

1

2

3

4 5

6

7

89

10

11

12

1-2-3-4-8-7-5-9-6-10-11-12

1

2

3

4 5

6

7

89

10

11

12

1-2-11-4-8-7-5-9-6-10-3-12

Inversion

Switching

Translation

Simulated Annealing

33

•TSP de 100 ciudades usando SA

Initial random path During SA process Final path

MATLAB file: tsp.m

Simulated Annealing

34

• TSP 100 de ciudades con penalidades al cruzar un radio

Penalty = 0 Penalty = 0.5 Penalty = -0.3

Simulated Annealing

Optimización sin derivados

Contenidos

• Características comunes• Algoritmos genéticos (Genetic algorithms o GA)• Simulated annealing (SA)• Downhill simplex search

• Random search

• Programación Genética• Particle swarm optimization (PSO)• Stochastic hillclimbing• Memetic algorithms

36

•Simplex: un set de n+1 puntos en un espacio de n-dimensiones

–Un triangulo en espacio 2D–Un tetrahedro en espacio 3D

•Concepto de downhill simplex search–Repetidamente remplaza el punto mas alto en el

simplex con uno mas bajo–Reemplazos exitosos agrandan el simplex–Reemplazos no exitosos llevan a achicar el

simplex

Downhill Simplex Search

37

•Comportamiento

– El simplex se adapta al entorno de la función objetivo y (como una ameba) eventualmente encuentra una mínima local cercana

•Como generar un simplex– El simplex tiene que contener un volumen de n

dimensiones

– Para generar el simplex se comienza con un punto inicial P0 y los otros se generan usando: Pi = P0 + λiei, i = 1, ...,n

– En el cual ei son los vectores base (basis) de nuestro espacio de n dimensiones y λi son constantes reflejando el largo de la escala deseada para el problema

Downhill Simplex Search

38

• Implementación

– Si yi es el valor de la función en el punto Pi

– Dado que l = arg mini ( yi), h = arg maxi ( yi )

– l y h son los índices para la mínima (Pl) y máxima (Ph) de yi

– Pavg es el promedio (centroide de los n+1) puntos

– P* es un punto de reflexión de Ph

– Dependiendo del valor de P* podemos tener una de cuatro operaciones para que el simplex explore el entorno de la función

Downhill Simplex Search

39

• Operaciones1. Reflexión de Ph : P* = Pavg + α(Pavg – Ph)

2. Reflexión y expansión de Ph : P** = Pavg + γ(P* – Pavg)

3. Contracción en dirección de la línea conectando Ph y Pavg :

P* = Pavg + β(Ph – Pavg)

4. Contracción hacia Pl en todas las dimensiones : Pi = (Pi+Pl )/2

Downhill Simplex Search

40

• Hay cuatro intervalos a considerar:

• Si y* esta en intervalo 1: { y | y ≤ yL } ejecutar expansión

• Si y* esta en intervalo 2: { y | yL ≤ y ≤ maxi,i≠h {yi}} remplazar Ph por P*

• Si y* esta en intervalo 3: { y | maxi,i≠h {yi} ≤ y ≤ yh} remplazar Ph por P* e ir a contracción

• Si y* esta en intervalo 4: { y | yh < y} ir a contracción

Downhill Simplex Search

41

• Algoritmo

Downhill Simplex Search

42

•Ejemplo: Encontrar el min. de función “peaks”

MATLAB file: go_simp.m

Downhill Simplex Search

Optimización sin derivados

Contenidos

• Características comunes• Algoritmos genéticos (Genetic algorithms o GA)• Simulated annealing (SA)• Downhill simplex search

• Random search

• Programación Genética• Particle swarm optimization (PSO)• Stochastic hillclimbing• Memetic algorithms

44

• La búsqueda aleatoria explora el espacio parametrico de una manera aparentemente aleatoria para encontrar el punto (x) que minimiza o maximiza la función f(x)

• El método introducido por Matyas sigue lo siguiente:

1. Elegir un punto x como el punto de partida

2. Sumar un valor aleatorio dx al punto x y evaluar f(x+dx)

3. Si f(x+dx) < f(x) designar el nuevo punto x = x+dx

4. Parar con el máximo numero de iteraciones. De otra manera volver al paso 2.

Random Search

45

• La búsqueda aleatoria mejorada tiene algunas mejoras vs la versión original:

• Si la búsqueda en una dirección (x+dx) resulta en un valor mas alto de f entonces la dirección opuesta de dx (x-dx) típicamente va a dar un valor menor de f

• Sucesivas búsquedas exitosas en una dirección deberían inducir un bias b en búsquedas subsecuentes en esa misma dirección f(x+b+dx)

• Al contrario búsquedas erradas en una dirección deberían desincentivar búsquedas subsecuentes en esa dirección f(x+b-dx)

Random Search II

46

•Flowchart:Select a random dxSelect a random dx

x = x + b - dxb = b - 0.4 dxx = x + b - dxb = b - 0.4 dx

b = 0.5 bb = 0.5 b

f(x+b+dx)<f(x)?

f(x+b-dx)<f(x)?

x = x + b + dxb = 0.2 b + 0.4 dx

x = x + b + dxb = 0.2 b + 0.4 dx

yes

yes

no

no

Random Search

47

•Ejemplo: Encontrar el min. de función “peaks”

MATLAB file: go_rand.m

Random Search

Optimización sin derivados

Contenidos

• Características comunes• Algoritmos genéticos (Genetic algorithms o GA)• Simulated annealing (SA)• Downhill simplex search

• Random search

• Programación Genética• Particle swarm optimization (PSO)• Stochastic hillclimbing• Memetic algorithms

49

• El método de programación genética busca la generación de programas a través de métodos evolutivos

• Esto incluye sistemas que constituyen o contienen referencias explicitas a programas

• Los programas evolucionados pueden ser en C, LISP u otros lenguajes como netlists (SPICE)

• Los programas pueden ser representados en variados tipos de estructuras incluyendo árboles, listas (como en LISP) u otros

• Los programas a evolucionar no necesariamente tienen que ser código secuenciales, pueden ser redes neuronales u otros.

Programación Genética

50

Aplicaciones:

• Se ha usado la PG en aplicaciones de optimización y diseño de sistemas

• Algunos diseños desarrollados incluyen complejos sistemas como circuitos, antenas, estructuras

• Se podría usar cualquier algoritmo de búsqueda paralelo (e.g. GA) para estas aplicaciones

Programación Genética

Algoritmo de Búsqueda

simulador

Mejor solución

51

• La PG usa métodos estocásticos para hacer decisiones

• La PG construye programas de variados largos usando estructuras de unidades básicas llamadas funciones y terminales

• Las funciones hacen operaciones en sus inputs, que pueden ser terminales u otras funciones.

• El ensamblaje de los programas (de funciones y terminales) ocurre al principio de cada iteración

• La PG usa operadores genéticos como cruce y mutación

• Hay muchos otros operadores mas (ver Banzhaf)

• La PG simula la evolución de la población usando selección basada en capacidad

Programación Genética

52

Definiciones:

• Terminales: El set de terminales esta compuesto de los valores de input al PG, las constantes del PG y las funciones sin argumento. Los terminales terminan las ramas del PG en el caso que este usando una estructura de árbol

• Arity: El arity es el numero de inputs o argumentos a una función

• Funciones: El set de las funciones incluye las instrucciones, operadores y las funciones disponibles al PG.

Programación Genética

53

Las funciones pueden ser de varios tipos:

• Booleanas: AND, OR, NOT, XOR...• Aritméticas: PLUS, MINUS, MULT, DIVIDE, MOD,...• Transcendentales: SIN, COS, LOG,...• De asignación y lectura de variables: a:=1, a:=2,...

(ASSIGN a 1), (READ a)

• De acceso a memoria usando indices

• Condicionales: IF, THEN, ELSE, CASE, SWITCH• Transferencia de control: GO TO, CALL, JUMP• Loop: WHILE DO, REPEAT UNTIL, FOR DO• Se pueden crear rutinas y funciones adicionales

dependiendo de la aplicación

Programación Genética

54

Selección de funciones para resolver un problema:

• Para evolucionar un problema especifico se deben seleccionar las funciones adecuadas.

• No es bueno usar un set de funciones innecesariamente amplio ya que el espacio de búsqueda se incrementa y hace que sea mas difícil encontrar una solución

• Solamente con la funciones lógicas y aritméticas se pueden resolver muchísimos problemas

• Boolean: AND, OR, NOT, XOR...

• Aritméticas: PLUS, MINUS, MULT, DIVIDE, MOD,...

Programación Genética

55

Estructuras de Programas Genéticos:• El árbol es una de las estructuras clásicas de los PG• Para ejecutar el PG se evalúan los nodos descendientes de izquierda

a derecha para los cuales todos los inputs están disponibles• Este orden de ejecución se refiere como orden postfijo porque los

operadores aparecen después que los operandos• Ejemplo:

• El orden de evaluación es: ((d, e, or), (a, (b, c, +), *), -)• Los valores son locales al nodo que los contiene: (b, c, +)

Programación Genética

-

or *

d e a +

b c

56

Estructuras de Programas Genéticos:• En el orden de ejecución prefijo los operadores aparecen antes que

los operandos• Ejemplo:

• El orden de evaluación en ese caso es: (+ (or(d, e), /(a, -(b,c)))

Programación Genética

+

or /

d e a -

b c

57

Operadores Genéticos:

• La elección de los miembros elegidos a cruzarse es típicamente una probabilidad basada en la capacidad de cada miembro dividida por la capacidad total de la población (fitness proportional reproduction)

• En el operador de cruce se selecciona un nodo en los árboles padre y madre y se intercambian los subárboles

• Hay dos tipos de mutaciones que pueden ocurrir• En el primero se puede mutar solo una función por otra

función y un terminal por otro terminal

• En el segundo se puede mutar un subárbol por otro subárbol generado para ese efecto

Programación Genética

58

•Flowchart: Create initial random population

i = 1

Create initial random population

i = 1

i >= MAX_GENyesno

Programación Genética

Apply fitness measure to population

Apply fitness measure to population

Perform crossover, mutation using Pc, Pmut on new_population

copy new_population to population

Perform crossover, mutation using Pc, Pmut on new_population

copy new_population to population

ENDEND

Based on fitness select individuals for reproduction

and copy into new_populationi = i + 1

Based on fitness select individuals for reproduction

and copy into new_populationi = i + 1

59

Ejemplo cruce: padres

hijos

Programación Genética

+

- /a b a -

b c

*

or -

d e a -

b c

*-

a -

b c

-

b c

+

- /a b a or

d e

60

Ejemplo mutación: individuo original

individuo mutado

Programación Genética

+

or /

d e a -

b c

+

* /

d e a ord /

a c

Ejemplo: Crear programas aleatorios en C• Funciones disponibles

F = {+, -, *, %, >, IF}• Terminales disponibles

T = {X, Y, Random-Constants}

• Programas son aleatorios:– De diferentes tamaños y formas– Sintácticamente validos– Ejecutables

Programación Genética

• Un programa en C y en representación de árbol:

int foo (int time){ int temp1, temp2; if (time > 10) temp1 = 3; else temp1 = 4; temp2 = temp1 + 1 + 2; return (temp2);}

(+ 1 2 (IF (> TIME 10) 3 4))

Programación Genética

Programación Genética

• Como reutilizar código y resultados:– Subrutinas con posibles parámetros– Lazos e iteraciones– Recursión– Memoria (variables)

Ejemplo: Evolucionar un programa par calcular la diferencia en volúmenes de dos cubos

D = L0W0H0 – L1W1H1

Programación Genética

1

case L0 W0 H0 L1 W1 H1 Dependent variable D

1 3 4 7 2 5 3 54

2 7 10 9 10 3 1 600

3 10 9 4 8 1 6 312

4 3 9 5 1 6 4 111

5 4 3 2 7 6 1 -18

6 3 3 1 9 5 4 -171

7 5 9 9 1 7 6 363

8 1 2 9 3 9 2 -36

9 2 6 8 2 6 10 -24

10 8 1 10 7 5 1 45

Programación Genética• Valores de la relación

(- (* (* W0 L0) H0) (* (* W1 L1) H1))

Programación Genética

Solución I: Sin reutilización

Solución II: Con función VOLUME

Programación Genética

(progn

(defun volume (arg0 arg1 arg2)

(values

(* arg0 (* arg1 arg2))))

(values

(- (volume L0 W0 H0)

(volume L1 W1 H1))))

Solución II: Con función VOLUME

Programación Genética

69

Aplicación: Circuitos auto recuperables de fallas

Programación Genética

70

Aplicación: Desarrollo de Circuitos Analógicos

• Utiliza un circuito embrión y un lenguaje de hardware en conjunto con GP para evolucionar un circuito

Programación Genética

Program Tree

+ IN OUT z0

Embryonic Circuit

Fully Designed Circuit (NetGraph)

Circuit Netlist (ascii)

Circuit Simulator (SPICE)

Circuit Behavior (Output)

Fitness

71

Aplicación: Desarrollo de Circuitos Analógicos

• Lenguaje (programa) usa instrucciones en las cuales los componentes están conectados uno tras otro

– place_resistor(144.92, new_node)– place_transistor(ground, new_node, previous_node)– place_capacitor(183e-6, ground)

• Circuito embrión

Programación Genética

72

Aplicación: Amplificador de 85dBtransistor(N, ACTIVE_NODE, NEW_NODE,INPUT_NODE);transistor(N, BASE, ACTIVE_NODE,PREVIOUS_NODE);resistor_cast_to_ps(4.618467e+04);capacitor_cast_to_input(1.628423e-04);transistor(N, NEW_NODE, ACTIVE_NODE, GROUND_NODE);resistor_cast_to_ps(9.396477e+04);transistor(N, NEW_NODE, ACTIVE_NODE, GROUND_NODE);transistor(P, NEW_NODE, ACTIVE_NODE, PS_NODE);transistor(N, NEW_NODE, ACTIVE_NODE, PS_NODE);transistor(N, PS_NODE, ACTIVE_NODE,NEW_NODE);resistor_move_to_output(1e-06);

PG

73

Aplicación: Desarrollo de Circuitos Analógicos II

• Lenguaje (programa) basado en árbol generado por PG:

(LIST (C (– 0.963 (– (– -0.875 -0.113) 0.880)) (series (flip

end) (series (flip end) (L -0.277 end) end) (L (– -0.640 0.749)

(L -0.123 end)))) (flip (nop (L -0.657 end)))))

Programación Genética

74

Aplicación: Circuitos (cont)

• Embrion o circuito inicial:

Programación Genética

75

Aplicación: Circuitos (cont)• Circuito despues de (2):(LIST (C (– 0.963 (– (–

-0.875 -0.113) 0.880)) (series (flip end) (series (flip end) (L -0.277 end) end) (L (– -0.640 0.749) (L -0.123 end)))) (flip (nop (L -0.657 end)))))

Programación Genética

76

Aplicación: Circuitos (cont)• Circuito despues de (3):(LIST (C (– 0.963 (– (–

-0.875 -0.113) 0.880)) (series (flip end) (series (flip end) (L -0.277 end) end) (L (– -0.640 0.749) (L -0.123 end)))) (flip (nop (L -0.657 end)))))

Programación Genética

77

Aplicación: Circuitos (cont)• Circuito despues de (5):(LIST (C (– 0.963 (– (–

-0.875 -0.113) 0.880)) (series (flip end) (series (flip end) (L -0.277 end) end) (L (– -0.640 0.749) (L -0.123 end)))) (flip (nop (L -0.657 end)))))

Programación Genética

78

Aplicación: Circuitos (cont)• Circuito despues de (9):(LIST (C (– 0.963 (– (–

-0.875 -0.113) 0.880)) (series (flip end) (series (flip end) (L -0.277 end) end) (L (– -0.640 0.749) (L -0.123 end)))) (flip (nop (L -0.657 end)))))

Programación Genética

79

Aplicación: Circuitos (cont)• Circuito despues de (10):(LIST (C (– 0.963 (– (–

-0.875 -0.113) 0.880)) (series (flip end) (series (flip end) (L -0.277 end) end) (L (– -0.640 0.749) (L -0.123 end)))) (flip (nop (L -0.657 end)))))

Programación Genética

80

Aplicación: Circuitos (cont)• Circuito despues de (11):(LIST (C (– 0.963 (– (–

-0.875 -0.113) 0.880)) (series (flip end) (series (flip end) (L -0.277 end) end) (L (– -0.640 0.749) (L -0.123 end)))) (flip (nop (L -0.657 end)))))

Programación Genética

81

Aplicación: Circuitos (cont)• Circuito despues de (12):(LIST (C (– 0.963 (– (–

-0.875 -0.113) 0.880)) (series (flip end) (series (flip end) (L -0.277 end) end) (L (– -0.640 0.749) (L -0.123 end)))) (flip (nop (L -0.657 end)))))

Programación Genética

82

Aplicación: Circuitos (cont)• Circuito despues de (17):(LIST (C (– 0.963 (– (–

-0.875 -0.113) 0.880)) (series (flip end) (series (flip end) (L -0.277 end) end) (L (– -0.640 0.749) (L -0.123 end)))) (flip (nop (L -0.657 end)))))

Programación Genética

83

Aplicación: Circuitos (cont)• Circuito despues de (20):(LIST (C (– 0.963 (– (–

-0.875 -0.113) 0.880)) (series (flip end) (series (flip end) (L -0.277 end) end) (L (– -0.640 0.749) (L -0.123 end)))) (flip (nop (L -0.657 end)))))

Programación Genética

84

Aplicación: Circuitos (cont)• Circuito final:(LIST (C (– 0.963 (– (–

-0.875 -0.113) 0.880)) (series (flip end) (series (flip end) (L -0.277 end) end) (L (– -0.640 0.749) (L -0.123 end)))) (flip (nop (L -0.657 end)))))

Programación Genética

85

Aplicación: Desarrollo de Antenas

• Lenguaje (programa):– forward(length radius)– rotate_x(angle)– rotate_y(angle)

– rotate_z(angle)

– Forward puede tener 0-3 hijos

– Rotate tiene solo un hijo

Programación Genética

86

Aplicación: Desarrollo de Antenas

• Fitness– F = VSWR_Score * Gain_Score * Penalty_Score

Programación Genética

Optimización sin derivados

Contenidos

• Características comunes• Algoritmos genéticos (Genetic algorithms o GA)• Simulated annealing (SA)• Downhill simplex search

• Random search

• Programación Genética• Particle swarm optimization (PSO)• Stochastic hillclimbing• Memetic algorithms

88

• El método PSO de Kennedy y Eberhardt fue originalmente implementado para simular el comportamiento social de una bandada de pájaros, un efecto de esta simulación es que los individuos generalmente llamados partículas estaban haciendo optimización.

• En esta búsqueda las partículas exploran el espacio parametrico para encontrar el punto (x) que minimiza o maximiza la función de costo f(x), f: Rn → R.

Particle Swarm Optimization

89

Algoritmo:1. Elegir aleatoriamente un punto x de partida con velocidad v para cada partícula.2. Actualizar la velocidad usando la formula:

v ← ωv + φprp (p – x) + φgrg (g – x)En los cuales rp , rg ~ U(0,1),φp, φg є R son parámetros definidos por el usuario de comportamiento, p es la mejor posición previa de la partícula y g es la mejor posición previa del swarm (i.e. la bandada). Generalmente se limita la velocidad dentro de los máximos limites dados por el espacio de busqueda [Shi]. 3. Designar la nueva posición de cada partícula: x ← x + vSe limitan las posiciones dentro de limite dado por el espacio de búsqueda [Shi].4. Parar con el máximo numero de iteraciones. De otra manera volver al paso 2.

Particle Swarm Optimization II

90

• φp es un parámetro que determina el impacto de la mejor posición encontrada por el swarm (un mecanismo implícito de comunicación entre las partículas) en la nueva velocidad de la partícula,

• φg determina el impacto de la mejor posición encontrada por la partícula hasta ahora,

• ω es un parámetro de inercia.• Hay muchas maneras de simplicar PSO incluyendo:

– φp = 0, – seleccionar aleatoriamente la particula a actualizar (en vez de

actualizar todo el swarm) (Many Optimizing Liasons o MOL PSO) [Pedersen]

Particle Swarm Optimization III

Optimización sin derivados

Contenidos

• Características comunes• Algoritmos genéticos (Genetic algorithms o GA)• Simulated annealing (SA)• Downhill simplex search

• Random search

• Programación Genética• Particle swarm optimization (PSO)• Stochastic hillclimbing• Memetic algorithms

92

• El método de Stochastic Hillclimbing (Ackley 1987) es un método que hace una búsqueda en un espacio discreto S con el fin de encontrar un estado que tenga un fitness lo mas alto (o bajo) posible. El algoritmo lo hace al hacer sucesivas mejoras a un estadoσ S.ϵ

• La forma de los estados en S depende de como se codificaron las soluciones al problema a resolver.

• Se puede considerar el neighboorhood de S como un grafo no direccionado G en el conjunto de nodos posibles S.

Stochastic Hillclimbing

Stochastic Hillclimbing

Algoritmo:• ϵR denota seleccion aleatoria usando una distribucion razonable.• N(σ) denota los vecinos de σ.

σ ϵR S;for J = 1 to M

τ ϵR N(σ); if f(τ) ≥ f (σ) then

σ = τ;

Optimización sin derivados

Contenidos

• Características comunes• Algoritmos genéticos (Genetic algorithms o GA)• Simulated annealing (SA)• Downhill simplex search

• Random search

• Programación Genética• Particle swarm optimization (PSO)• Stochastic hillclimbing• Memetic algorithms

95

• La idea de Memetic Algorithms (Moscato 1989) representa un área de investigación híbrida que mezcla aprendizaje basado en poblaciones con aprendizaje local o métodos de mejoramiento local para resolver problemas.

• El “meme” (Dawkins 1989) es la “unidad básica de transmisión cultural o imitación”.

Memetic Algorithms

Optimización sin derivadosReferencias:

[1] Michalewicz, Z., Genetic Algorithms + Data Structure = Evolution Programs, Springer, 1999

[2] Banzhaf, W., Genetic Programming, An Introduction, Kaufmann, 1998

[3] Jang, J-S.R. Et al, “Neuro-Fuzzy and Soft Computing”, Prentice Hall, 1997

[4] Koza, J., Apuntes Curso Stanford, 2003

[5] Lohn, J., Evolvable Systems for Space Applications, NASA Ames Research Center, 2003

[6] Shi, Y., Eberhardt, R.C.. A Modified Particle Swarm Optimizer. In Proc. Of the 1998 IEEE Int. Conf. On Evolutionary Computation, pp. 69-73, 1998.

[7] Pedersen, M., Chipperfield, A. Simplifying Particle Swarm Optimization, Applied Soft Computing, 2009.

[8] Juels, A., Wattenberg, M., Stochastic Hillclimbing as a Baseline Method for Evaluating Genetic Algorithms, Technical report, University of California, Berkeley, 1994.