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
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:
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
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
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
(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
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
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.