Title: Heursticas y Ciencias de la Vida
1Heurísticas y Ciencias de la Vida
- J. Marcos Moreno Vega
- Grupo de Computación Inteligente
- Dpto. de E.I.O. y Computación
- Escuela Técnica Superior de Ingeniería
Informática - Universidad de La Laguna
- jmmoreno_at_ull.es
- webpages.ull.es/users/jmmoreno
2- Heurísticas y Ciencias de la Vida
- Heurísticas
- Algoritmos Genéticos
- Optimización basada en Colonias de Hormigas
3HEURÍSTICAS CIENCIAS DE LA VIDA
Heurísticas
Medicina Sociología Zoología Biología
4HEURÍSTICAS CIENCIAS DE LA VIDA
- Supervivencia del más adaptado
- Trabajo en grupo
- Comunicación entre los miembros del grupo
5HEURÍSTICAS
- Origen
- Interpretaciones del término
- Campos de aplicación
- Clasificación
- Importancia
6HEURÍSTICAS Origen
- Heurística proviene del griego Heuriskein que
puede traducirse por hallar, descubrir, encontrar - Arquímedes salió corriendo desnudo por la calle
gritando Eureka (lo encontré), cuando descubrió
el principio de flotación mientras estaba en el
baño - Definición arte de inventar o descubrir hechos
valiéndose de hipótesis o principios que, aun no
siendo verdaderos, estimulan la investigación
7HEURÍSTICAS Interpretaciones
- Primera interpretación
- reglas con las que la gente gestiona el
conocimiento común - Segunda interpretación
- procedimiento de resolución de problemas
- Tercera interpretación
- función que permite evaluar la bondad de un
movimiento, estado, elemento o solución
8HEURÍSTICAS Primera Interpretación
- Buscar un problema parecido que haya sido
resuelto - Determinar cuáles fueron la técnica empleada para
su resolución y la solución obtenida. - Si es posible, usar la técnica y/o solución
anteriores para resolver el problema original.
9HEURÍSTICAS Primera Interpretación Ejemplo
? 4x sinx dx
- 4x cosx ? cosx 4 dx - 4x cosx 4 ? cosx dx
- - 4x cosx 4 sinx C
10HEURÍSTICAS Segunda Interpretación
- Un método heurístico (también llamado un
algoritmo aproximado, un procedimiento inexacto,
o, simplemente, una heurística) es un conjunto
bien conocido de pasos para identificar
rápidamente una solución de alta calidad para un
problema dado. - Barr, Golden, Kelly, Resende, Stewart
11HEURÍSTICAS Segunda Interpretación Ejemplo
Heurística desde el bar actual nos movernos al
bar más cercano que no hayamos visitado
12HEURÍSTICAS Tercera Interpretación
- Una función heurística es una correspondencia
entre las descripciones de estados del problema
hacia alguna medida de deseabilidad, normalmente
representada por números. Los aspectos del
problema que se consideran, cómo se evalúan estos
aspectos y los pesos que se dan a los aspectos
individuales, se eligen de forma que el valor que
la función da a un nodo en el proceso de búsqueda
sea una estimación tan buena como sea posible
para ver si ese nodo pertenece a la ruta que
conduce a la solución.
Elaine Rich, Kevin Knight
13HEURÍSTICAS Tercera Interpretación Ejemplo
O
X
X
Función heurística número de filas, columnas o
diagonales en las que se puede ganar
fx(1) 3 fx(2) 2 fx(3) 3 fx(4) 2 fx(5)
4 fx(6) 2 fx(7) 3 fx(8) 2 fx(9) 3
fO(1) 2 fO(2) 1 fO(3) 2 fO(4) 1 fO(6)
1 fO(7) 2 fO(8) 1 fO(9) 2
fX(1) 2 fX(2) 1 fX(4) 2 fX(6) 1 fX(7)
2 fX(8) 2 fX(9) 2
14HEURÍSTICAS
Algunos métodos de resolución de problemas
emplean funciones heurísticas, para evaluar
determinados movimientos o elementos. Además, las
funciones heurísticas usadas intentan representar
el conocimiento que emplean los expertos para
resolver los problemas.
15HEURÍSTICAS Campos de aplicación
Métodos para resolver problemas
Planificación y secuenciación de tareas
Determinación automática de las trayectorias de
un robot
Reconocimiento de formas
Sistemas de Búsqueda en Internet
Minería de datos
Bioinformática
Logística
Seguridad Informática
16HEURÍSTICAS Clasificación
- Métodos constructivos
- G.R.A.S.P.
- Métodos de búsqueda
- Búsquedas Locales
- Búsquedas Multiarranque
- Simulated Annealing
- VNS
- Scatter Search
- Métodos basados en el comportamiento de Sistemas
Biológicos - Algoritmos Genéticos
- Optimización basada en Colonias de Hormigas
17HEURÍSTICAS Importancia Asociaciones
Metaheuristics Network web site
18HEURÍSTICAS Importancia Congresos
7th International Conference on Artificial
Evolution
19HEURÍSTICAS Importancia Empresas
hestley
20HEURÍSTICAS Importancia
- Las Heurísticas no son sólo la línea de
investigación de algunos (muchos) investigadores.
- Son el núcleo de sistemas informáticos que
resuelven importantes problemas prácticos.
21ALGORITMOS GENÉTICOS
- Un poco de historia
- Evolución natural de las especies
- Proceso evolutivo en la resolución de problemas
- Buscando el máximo de una función
22ALGORITMOS GENÉTICOS Un poco de historia
Evolución natural
Charles Robert Darwin
Gregor Johann Mendel
Hugo De Vries
23ALGORITMOS GENÉTICOS Un poco de historia
Darwin
- Charles Robert Darwin El 27 de diciembre de
1831 zarpa de Davenport (Inglaterra) el Beagle,
buque al mando del capitán Fitz-Roy, con varios
objetivos científicos completar el estudio de
las costas de la Patagonia y Tierra del Fuego,
realizar la cartografía de las costas de Chile,
Perú y algunas islas del Pacífico y realizar
varias observaciones cronométricas alrededor del
mundo. A bordo viaja el joven naturalista de 22
años, Charles Robert Darwin (1809-1882). El 6 de
enero de 1832 el Beagle fondea frente a las
costas de Tenerife. Sin embargo, las autoridades
obligan a la tripulación a permanecer a bordo del
buque por miedo a que padezca el cólera. La larga
travesía del Beagle, que atraca el 2 de octubre
en Falmouth, sirve a Darwin para enunciar su
teoría acerca del origen y evolución de las
especies. Uno de los elementos claves en la
teoría de Darwin es que la evolución se debe a la
selección natural. Es decir, aquellos individuos
más adaptados al medio tienen mayor probabilidad
de sobrevivir y, de esta forma, las
características que les hacen mejores se propagan
entre la descendencia. De esta forma, y de manera
gradual, surgen las diversas especies.
24ALGORITMOS GENÉTICOS Un poco de historia
Mendel
- Gregor Johann Mendel El monje agustino
austriaco Johann Mendel (1822-1884) se interesó
por los principios que rigen la herencia de
características en las especies. En 1843 se
ordenó sacerdote y diez años más tarde fue
nombrado profesor suplente de la escuela moderna
de Brno, lugar donde pasó la mayor parte de su
vida. En el jardín del mencionado convento
cultivó algunas variedades de guisantes. Escogió
algunas características con alternativas claras.
Por ejemplo, semillas redondas o rugosas.
Seleccionó variedades de guisantes que producían
descendencias homogéneas para estas
características y estudió sus sucesivas
descendencias. De esta forma, pudo enunciar sus
leyes acerca de la herencia. Estas muestran en
que proporción se manifiestan las alternativas de
cada característica. Para explicar las
proporciones observadas, Mendel enunció la
hipótesis de que la primera generación de
guisantes contenía elementos hereditarios para
ambas alternativas del carácter. Sus trabajos
pueden considerarse como la base de la genética
25ALGORITMOS GENÉTICOS Un poco de historia De
Vries
- Hugo De Vries El botánico holandés Hugo De
Vries (1848-1935) introdujo el concepto de
mutación. Creía que las especies no surgían de
manera gradual, sino a través de mutaciones de
especies conocidas. Si estas mutaciones derivan
en características beneficiosas, las mismas se
propagan entre la descendencia. Fue responsable
de que los trabajos de Mendel viesen la luz, ya
que en 1900, dieciséis años después de la muerte
de Mendel, encontró dichos trabajos y los dio a
conocer.
26ALGORITMOS GENÉTICOS Evolución natural de las
especies (i)
- La evolución se produce por dos procesos la
selección y la alteración genética de los
cromosomas que almacenan las características de
la especie. La alteración genética tiene lugar
durante la reproducción de los individuos, o
cuando éstos sufren algún tipo de mutación. En el
proceso de selección, aquellos individuos más
adaptados o adecuados al medio sobreviven en la
reproducción, los individuos intercambian
material cromosómico y en la mutación, se altera
parte de la información de los cromosomas. - En la naturaleza, estos procesos ocurren sobre
una generación, y luego sobre su descendencia, y
a continuación sobre la descendencia de ésta, y
así sucesivamente. Después de cada ciclo, la
generación actual será (o al menos así se desea)
mejor que las anteriores. Esto es, los individuos
estarán más evolucionados y adaptados al medio.
27ALGORITMOS GENÉTICOS Evolución natural de las
especies (ii)
28ALGORITMOS GENÉTICOS Proceso evolutivo en la
resolución de problemas
- En 1975, John Holland defendió su tesis doctoral
Adaptation in Natural and Artificial Systems
(Adaptación en Sistemas Naturales y Artificiales)
en la Universidad de Michigan. En ella, se
proponía por primera vez una clase de métodos,
llamados Algoritmos Genéticos, para la resolución
de problemas. La idea que subyace en los
algoritmos genéticos es que es posible
implementar, en un ordenador, un programa que,
guiado por los principios de la herencia y la
evolución de las especies, suministre la solución
de un problema.
29ALGORITMOS GENÉTICOS Proceso evolutivo en la
resolución de problemas
- Para usar las ventajas del modelo del proceso
evolutivo en la resolución de un problema, se
deben establecer las siguientes correspondencias
- Una apropiada codificación de las posibles
soluciones del problema representará a éstas de
la misma forma que el cromosoma representa a los
individuos de la especie. Dada esta unívoca
relación, se usarán indistintamente los términos
solución, codificación, cromosoma o individuo. - La adecuación de cada solución será una medida
del comportamiento de ésta en el problema
particular considerado. Normalmente, es el valor
objetivo de la solución. Así, una solución está
más adecuada a un problema cuanto mejor sea su
valor objetivo. - Se definirán unos operadores genéticos que, al
actuar sobre una o varias soluciones, suministren
una o más soluciones al alterar genéticamente los
cromosomas. Juegan el papel del cruce y la
mutación en el proceso evolutivo natural.
30ALGORITMOS GENÉTICOS Proceso evolutivo en la
resolución de problemas
- Con las consideraciones anteriores, el Algoritmo
Genético trabaja como sigue -
- 1. Generar una población inicial de soluciones.
- 2. Seleccionar, de la población actual, las
soluciones mejor adaptadas al medio. - 3. Cruzar algunas soluciones para obtener su
descendencia. - 4. Mutar algunas soluciones para obtener las
soluciones mutadas. - 5. Si se alcanza el número máximo de
generaciones, parar en otro caso, volver al paso
2. - Al finalizar los pasos anteriores, la mejor
solución de la población es la que se propone
como solución del problema.
31ALGORITMOS GENÉTICOS Buscando el máximo de una
función
Encontrar el máximo global de la función real de
una variable f(x) x2 5x 3 sobre el
intervalo (0, 4) con una precisión de 3 dígitos
tras el punto decimal.
Máximo en x 2.5, con valor 9.25
32ALGORITMOS GENÉTICOS Buscando el máximo de una
función Representando las soluciones
Para representar de forma apropiada las
soluciones de este problema usamos la
representación binaria. Representamos cada número
real del intervalo (0,4) en base 2 con una
precisión de 10-3. Puesto que 4 1002 y
000000000012 2-10 lt 10-3 será suficiente con
tomar como soluciones posibles de nuestro
problema a los números reales representados en
forma binaria por dos cifras antes de la coma y
10 detrás. Cromosoma Número real
(100101110000)
2359375000 (011000111010)
1546640625
33ALGORITMOS GENÉTICOS Buscando el máximo de una
función Población inicial
Una forma sencilla de construir una población
inicial de tamaño n para el problema planteado
consiste en generar, aleatoriamente, n cadenas
binarias de tamaño 12. Para n 5, en la tabla
siguiente se muestra una de tales poblaciones
iniciales. En dicha tabla se recoge la cadena
binaria, el número real que representa y el valor
de dicha cadena. Cromosoma Número real
(xi) Valor de la función (f(xi)) x1
(100101110000) 2359375000 92302 x2
(011000111010) 1546640625 83411 x3
(111100101010) 3791015625 75831 x4
(100000111010) 2056640600 90534 x5
(000001111010) 0119140600 35815 Suma de
los valores de la función ? f(x) 377893
34ALGORITMOS GENÉTICOS Buscando el máximo de una
función Selección (i)
Durante esta fase, debe obtenerse una nueva
población desde la población anterior. El
procedimiento debe ser tal que los individuos más
adaptados, es decir, las soluciones, x, con mayor
valor de la función f(x), tengan mayor
probabilidad de ser elegidos. Para ello,
emplearemos el conocido como método de la rueda
de hilar. En este método se asigna a cada
solución, x, de la población un segmento del
intervalo 0,1 proporcional al valor relativo de
la función f
x1 f(x1) 92302 f(x1)/?f(x)
92302/377893 0244 x2 f(x2) 83411
f(x2)/?f(x) 83411/377893 0221
35ALGORITMOS GENÉTICOS Buscando el máximo de una
función Selección (ii)
Cromosoma Número real (xi) Valor de la función
(f(xi)) x1 (100101110000) 2359375000 92302
x2 (011000111010) 1546640625 83411 x3
(111100101010) 3791015625 75831 x4
(100000111010) 2056640600 90534 x5
(000001111010) 0119140600 35815 Suma de
los valores de la función ? f(x) 377893
0125, 0750, 01875, 03125, 08125
36ALGORITMOS GENÉTICOS Buscando el máximo de una
función Cruce (i)
- Formar aleatoriamente parejas para el cruce
- Aplicar el operador de cruce a cada pareja
Operador de cruce para cadenas binarias
seleccionar una posición de cruce al azar e
intercambiar las subcadenas de la derecha.
(110100110000)
(100101110101)
37ALGORITMOS GENÉTICOS Buscando el máximo de una
función Cruce (ii)
Cromosoma Número real (xi) Valor de la función
(f(xi)) x1 (100101110000) 2359375000 92302
x4 (100000111010) 2056640600 90534 x1
(100101110000) 2359375000 92302 x2
(011000111010) 1546640625 83411 x4
(100000111010) 2056640600 90534 Suma de
los valores de la función ? f(x) 449073
x1, x4
38ALGORITMOS GENÉTICOS Buscando el máximo de una
función Mutación (i)
- Para cada bit del cromosoma decidir
aleatoriamente si éste muta o no. - Aplicar el operador de mutación a los
correspondientes bits
Operador de mutación para cadenas binarias
sustituir el valor del bit por su complementario
(0 por 1, 1 por 0)
(100101110000)
(100001110010)
39ALGORITMOS GENÉTICOS Buscando el máximo de una
función Mutación (ii)
Cromosoma Número real (xi) Valor de la función
(f(xi)) x1 (100101111010) 2369140625 9232
9 x4 (100000111010) 2056640600 90534 x1
(100101110000) 2359375000 92302 x2
(011000111010) 1546640625 83411 x4
(100000110000) 2046875000 90447 Suma de
los valores de la función ? f(x) 449023
Muta el quinto bit de la solución x1
40ALGORITMOS GENÉTICOS Buscando el máximo de una
función Finaliza un ciclo evolutivo
- De esta forma finaliza un ciclo evolutivo.
- La mejor solución encontrada en esta etapa es
x1 (100111111010) 2494140625 92500
- El proceso continúa hasta que se decida parar
(en general, se finaliza cuando cuando se alcanza
un número máximo de generaciones).
41OPTIMIZACIÓN BASADA EN COLONIAS DE HORMIGAS
- Hormigas reales
- Explicamos su comportamiento
- Cómo usar lo anterior?
- Etapas del procedimiento
42OPTIMIZACIÓN BASADA EN COLONIAS DE HORMIGAS
La estrategia empleada por las Colonias de
Hormigas para descubrir fuentes de alimentación,
establecer el camino más corto entre éstas y el
hormiguero y transmitir esta información al resto
de sus compañeras inspiró a los investigadores
Marco Dorigo, Vittorio Maniezzo y Alberto
Colorni. Éstos, emulando dicha estrategia,
propusieron un nuevo procedimiento de resolución
de problemas que supone actualmente uno de los
tópicos en los que más se investiga.
43HORMIGAS REALES
44HORMIGAS REALES Algunas observaciones
- Si no encuentran un rastro de feromona, se
mueven aleatoriamente. - Las hormigas construyen iterativamente
soluciones al problema que se les plantea e
intercambian información sobre éstas para
construir mejores soluciones. - La atracción que sienten por un determinado
camino es proporcional a la intensidad del rastro
de feromona sobre el mismo.
45EXPLICAMOS SU COMPORTAMIENTO Características de
las hormigas artificiales
- Tendrán memoria
- No serán completamente ciegas.
- Vivirán en un entorno discreto.
- Se moverán a razón de una unidad de espacio por
unidad de tiempo.
46EXPLICAMOS SU COMPORTAMIENTO Simulación
47CÓMO USAR LO ANTERIOR? Problema del Viajante
de Comercio
- Sistema Hormiga Colocar una hormiga en cada
ciudad. - Cada hormiga escoge la ciudad a la que ir con
una probabilidad que depende de la distancia a
dicha ciudad, y del rastro de feromona presente
en la arista que conecta la ciudad de origen con
la ciudad destino. - Empleando la memoria de que están dotadas, las
hormigas construyen circuitos legales evitando
repetir ciudades previamente visitadas. - Cuando se completa un circuito, las hormigas
(todas o algunas) segregan feromona sobre las
aristas que han sido atravesadas. - La feromona segregada, y la que estaba presente
en las aristas, se usa para actualizar el rastro
de feromona en la siguiente iteración.
48CÓMO USAR LO ANTERIOR? Problema del Viajante
de Comercio Elementos
dij distancia entre las ciudades i y j ?ij 1/
dij inversa de la distancia entre las ciudades i
y j Sk(i) conjunto de ciudades alcanzables por
la k-ésima hormiga desde la ciudad i ?ij
intensidad del rastro de feromona de la arista
(i,j) ??ijk incremento de feromona de la arista
(i,j) debido a la aportación de la k-ésima
hormiga ??ij incremento de feromona de la
arista (i,j) debido a la aportación de todas las
hormigas Lk longitud del circuito construido
por la k-ésima hormiga c rastro inicial de cada
arista (constante fijada por el usuario) Q
constante fijada por el usuario el rastro que
recibe una arista depende de este valor ?
parámetro fijado por el usuario (1- ?)
representa la cantidad de feromona que
desaparece de una arista por efecto de la
evaporación
49CÓMO USAR LO ANTERIOR? Problema del Viajante
de Comercio
50CÓMO USAR LO ANTERIOR? Problema del Viajante
de Comercio Pseudocódigo
Procedure Sistema Hormiga begin
Inicialización repeat for k 1 to n
do begin i k
repeat Escoge j ? Sk(i)
i j until Solución
Factible Calcula incremento del
rastro end Actualiza(Rastro)
Almacena(Mejor Solución) until
(criterio de parada) end.
51CÓMO USAR LO ANTERIOR? Problema del Viajante
de Comercio Incremento y actualización del
rastro
52CÓMO USAR LO ANTERIOR? Problema del Viajante
de Comercio Probabilidad de transición
53CÓMO USAR LO ANTERIOR? Problema del Viajante
de Comercio Un ejemplo
Matriz de distancias
Matriz de visibilidad
1
2
54CÓMO USAR LO ANTERIOR? Problema del Viajante
de Comercio Un ejemplo
55CÓMO USAR LO ANTERIOR? Problema del Viajante
de Comercio Un ejemplo
4
5
Hormiga 1
3
6
2
1
56CÓMO USAR LO ANTERIOR? Problema del Viajante
de Comercio Un ejemplo
Matriz de feromona inicial
Matriz de feromona tras una iteración
57ETAPAS DEL PROCEDIMIENTO
1. Inicialización Se fija el rastro inicial 2.
Fase constructiva. Se construyen soluciones al
problema empleando la información que suministra
el rastro de feromona y alguna función heurística
de lo apropiado de una elección. 3. Cálculo del
incremento del rastro. Se calcula el incremento
en la intensidad del rastro. 4. Actualizar el
rastro de feromona. Se calcula el nuevo rastro de
feromona. 5. Criterio de parada. Si el criterio
de parada se cumple, finalizar la búsqueda. En
caso contrario, volver al paso 2.
58ALGUNAS NOTICIAS Sistemas hormigas
59ALGUNAS NOTICIAS Algoritmos Genéticos