1. Introducción

Anuncio
1. Introducción
IIC 2632 – Computación Evolutiva
© Rodrigo Sandoval
IIC 2632 – Computación Evolutiva
Contenidos
•
•
•
•
•
•
•
Un poco de historia
Solución de problemas
¿Cómo nos abstraemos?
Un algoritmo genético básico
Clasificación
Ejemplos
Aplicando conceptos en un ejemplo simple
Base: José T. Eterovic 2008
Un poco de historia
• En el siglo XIX, el estudio de
la genética partió con Mendel.
– Define que la información pasa
“de alguna forma” de padres a
hijos.
• Paralelamente, Darwin
propone que las especies
evolucionan de generación en
generación, logrando
adaptarse mejor al ambiente.
– Cada generación no tiene por
qué ser mejor que la anterior,
– … pero potencialmente lo es.
Un poco de historia
• A mediados de este mismo
siglo se aisló por primera vez
ADN.
• Sólo a principios del siglo XX
se supo que el ADN guardaba
la información genética.
Un poco de historia
• En el año 1953, en una publicación en
Nature, Watson y Crick presentan la
estructura del ADN. En 1962 se les otorga
el Nobel por eso
• En 1957, Watson y Crick
presentan la relación
ADN - ARN - proteínas,
lo que es la base de la
biología molecular.
Un poco de historia
• En el año 1966 se presenta el concepto de
programación evolutiva.
– Lawrence Fogel, M. Evans, M. Walsh
“Artificial Intelligence through Simulated Evolution”
• Luego, en el año 1975 se presenta el concepto
de algoritmo genético
– John Holland,
“Adaptation in Natural and
Artificial Systems”
• Posteriormente se han
desarrollado versiones alternativas,
finalmente definiéndose el concepto
de Programas Evolutivos.
Solución de Problemas
• En la naturaleza, el problema es adaptarse al medio
(sobrevivir).
• La naturaleza no sabe cómo solucionar el problema,
pero si sabe como evaluarlo (selección natural).
• Cada especie es la solución al
problema de adaptarse a su
ambiente particular.
• Cada problema (ambiente) tiene
más de una solución.
• Las soluciones no son óptimas,
pero son suficientemente
buenas.
¿Y eso qué?
• Podemos extrapolar la forma
que tiene la naturaleza para
solucionar el problema de la
adaptación al medio,
aplicándolo a la solución de
algún otro.
• Tenemos que entender la
molécula de ADN como un
repositorio de información, que
define la solución propuesta.
Todo lo que se
necesita para definir
una posible solución
al problema está aquí.
Abstrayendo . . .
• Una solución, generada en parte por más
de una solución “padre”, es
potencialmente mejor que cada uno de los
padres por separado.
• Existe un nivel de incertidumbre en la
copia de la información de una generación
a la siguiente.
• La selección natural elige a los que mejor
solucionan el problema para que sean los
padres de la próxima generación.
Partamos por el principio …
ALGORITMO GENÉTICO
Optimización
• Escalada
global
local
Optimización … (2)
• Multi-montañistas
Optimización … (3)
• Algoritmo Genético
No estoy en la cumbre
¡Mi altura es mejor!
mejor!
Estoy en la cumbre
La altura es …
Voy a continuar
Optimización … (4)
• Algoritmo Genético
… poco después
Un Algoritmo Genético Básico
Procedure GA
Generar una población inicial
repeat
Función Objetivo
Evaluación de “optimalidad”
de cada individuo.
Evaluar cada uno de los individuos
Seleccionar los padres de la sig. generación
Crear la siguiente generación
Selección, modificación y
Modificar algunos de los individuos
nueva Generación
Criterios que determinan cómo
until Condición de término
se recorre el dominio.
Condición de Término
Criterio que impide seguir “para siempre”. Determina cuándo
es suficiente. No garantiza encontrar un real “óptimo”.
Un Algoritmo Genético Básico
• Un proceso evolutivo que busca el individuo más apto
(el óptimo de acuerdo a una función objetivo).
Varias
Generaciones
Primera
Generación Selección y
operadores
¡El más apto se queda!
7
7
7
2
3
4
Recombinación
3
8
5
1
3
4
1
2
¿Qué tan 2
aptos son?
3
Mutación
2
¿Qué tan aptos
son estos ahora?
8
...
7
11
8
10
6
9
Clasificación
• Representación lineal
– Algoritmos genéticos: se basan en la
recombinación.
– Estrategias evolutivas: se basan en la
mutación.
– Algoritmos de estimación de distribución
• En un solo operador mezclan la recombinación y
mutación.
• Un individuo es hijo de toda la generación anterior,
en lugar de 2 padres.
• Representaciones no lineales
Aplicación en casos reales
EJEMPLOS
Ejemplo - Optimización
Ejemplo - Optimización
Ejemplo – Arte Evolutivo
Ejemplo – Movimiento de
Robots
Proceso de deposición
(semiconductor)
• Un proceso que depende de los ángulos
utilizados por el cañón de iones.
• La implantación
depende de tres
parámetros
dependientes de
ángulo y tiempo:
– sputcn (n: 1,2,4)
– time.
Proceso de deposición
(semiconductor)
Proceso de deposición
(semiconductor)
• Función Objetivo para Optimización (función de fitness).
T = F(sputc1, sputc2, sputc4, time)
• Optimización: encontrar la combinación de parámetros
para producer una capa de Nitrato adecuada, con la sig.
forma:
–
–
–
Ta1 cerca de 0.27 μm
Ta2 cerca de 0.25 μm
Ta3 cerca de 0.01 μm
Aplicando los conceptos
EJEMPLO DE OPTIMIZACIÓN
[Michalewicz 1996]
Optimización de una función simple
• Max f(x)
f (x) = x · sin(10 π x) + 1
• Restricción:
El valor de x debe
estar dentro del
rango [−1, 2]
Optimización simple - Representación
• En GA se usa un vector para representar la solución, en
este caso un vector binario.
• ¿Qué tan largo? Para este experimento utilizaremos una
precisión de 6 dígitos decimales, mientras que el largo de
3 se usa para la parte entera dentro del rango definido.
• Entonces, necesitaremos 22 bits por valor, es decir, cada
uno de nuestros individuos es un arreglo de 22 bits.
• Finalmente, el valor representado (función de mapeo) es:
−1 + 3x/(222 −1)
Optimización simple - Representación
−1 + 3x/(222 −1)
• Por ejemplo, el valor representado por el
cromosoma 1000101110110101000111 es
−1 + 3·2288967/4194303 = 0.637197
• Los bordes del dominio:
– 0000000000000000000000  x = -1.0
– 1111111111111111111111  x = 2.0
• La población inicial es un conjunto de arreglos
de bits de tamaño 22, inicializados de manera
aleatoria.
Optimización simple – Función objetivo
• Como lo que queremos es maximizar la
función f (x) = x · sin(10 π x) + 1, el cálculo
del valor de esta función para cada uno de
los valores representados por nuestros
individuos será una excelente función de
evaluación.
Optimización simple - Recombinación
• Crossover: basado en 2 padres, genera 2 hijos.
• Se selecciona aleatoriamente un punto de corte.
• El primer hijo tiene la región inicial (hasta el
punto de corte) igual al primer padre, y la región
final (desde el punto de corte) igual al segundo
padre.
• El segundo hijo es el opuesto del primero.
p = 000101010000|1111010101
• Ejemplo: p = 010111010100|0101001110
1
2
h1 = 000101010000|0101001110
h2 = 010111010100|1111010101
Optimización simple - Mutación
• Este operador modifica el valor de uno de
los bits de un individuo, regenerándolo.
• El índice de ese valor es generado de
manera aleatoria.
• Como el valor es regenerado, es posible
(50% de probabilidad) que el individuo no
sufra cambios.
• Ejemplo: i = 0010101101010001010100
i’= 0010101101110001010100
Optimización simple - Parámetros
• Probabilidad de recombinación (pc):
Probabilidad de que 2 padres escogidos, realmente
sean recombinados y no pasen como copias a la
siguiente generación.
• Probabilidad de mutación (pm):
Probabilidad de que un individuo sufra una mutación en
una generación en particular.
• Cantidad de iteraciones (iter):
Cantidad de generaciones por las que se llevará a cabo
la simulación.
• Tamaño de la población (pop_size):
Cantidad de individuos existentes en cada generación
Optimización simple - Resultados
• pr = 0.8, pm = 0.5, iter = 100, pop_size
= 20
Aplicando los conceptos
PRIMEROS EJEMPLOS
[A.E. Eiben & J.E. Smith]
Ejemplo: Maximizar f(x) = x2
Goldberg ‘89 (1)
• max x2 sobre {0,1,…,31}
• Definir:
– Representación.
– Parámetros de Ejecución. ¿Cuáles?
– Operadores de Búsqueda.
– Esquema de Selección.
Ejemplo: Maximizar f(x) = x2
• Representación
– binaria, e.g. 01101  13
• Parámetros de Ejecución:
– Tamaño población: 4
– ¿Condición de término?
• Sin mejoras por más de N generaciones
• ¿Solución inicial?
– Probabilidad de Crossover.
– Probabilidad de Mutación.
Ejemplo: Maximizar f(x) = x2
• Operadores de Búsqueda:
– Crossover:
• ¿1 punto o más?
• Probabilidad de ser seleccionado para crossover.
– Mutación
• Probabilidad de ser seleccionado para mutación.
• Selección
Selección
Crossover
Mutación
Aplicando los conceptos
OTROS EJEMPLOS
[Michalewicz 1996]
Otros Ejemplos
• Dilema del Prisionero
– Hay 2 prisioneros acusados de un crimen, cada uno
en celda separada, siendo interrogados.
– A cada uno de ellos se les dice que si delatan al otro,
y éste no lo delata, el otro recibirá una condena de 5
años y ellos saldrán libres.
– Si ninguno de los dos delata al otro, ambos reciben
una condena de 1 año.
– Si ambos delatan al otro, ambos reciben una
condena de 3 años ¿Cómo debería comportarse un
prisionero dada la historia de comportamiento de su
compañero?
Dilema del Prisionero
• Representación
– Por simplicidad, vamos a asumir que el
prisionero recuerda las últimas 3 situaciones
en las que estuvo con este compañero como
prisioneros.
– Por lo que sólo basta que el prisionero tenga
una decisión tomada para cada posibilidad de
historia (64 posibilidades), tomando esa
decisión cuando le corresponda.
Dilema del Prisionero
• Representación
– Se puede representar como un arreglo de bits
de tamaño 64, con un 1 si se debe delatar y
con un 0 si no se debe delatar.
– Hay que agregarle decisiones para los casos
en los que aún no existen 3 situaciones
anteriores (16 casos para la tercera vez, 4
casos para la segunda vez y 1 caso para la
primera vez), con lo que la cantidad de casos
es 85.
Vendedor Viajero
• Dada una colección de ciudades y el costo de viajar
entre pares de éstas, el Problema del Vendedor
Viajero (TSP), consiste en encontrar la forma más
barata de recorrer todas las ciudades y volver al punto
de inicio.
• Se asume costo de viajar de XY, equivalente a
viajar YX.
TSP
n
minimize:
n
 cij xij
i 1 j 1
n
subject to:
x
1
x
1
j 0
n
ij
1 i  n
(out degrees = 1)
1  j  n (in degrees = 1)
i 0
ti  t j  nxij  n  1 2  i, j  n (??)
ij
• cij = distance from city i to city j
• xij = 1 if tour visits i then j, and 0
otherwise (binary)
• ti = arbitrary real numbers we need to
solve for
Descargar