algoritmos geneticos adr
TRANSCRIPT
UNMSME.A.P INVESTIGACION OPERATIVA
ALGORITMOS GENÉTICOS
( EL AGENTE VIAJERO)
AUTOR :
Ricardo Antonio Díaz Roque
REDES DE OPTIMIZACION
INVESTIGACIÓN OPERATIVA
Saludos estimados amigos de Perú.
En esta oportunidad les presento:
Algoritmos Genéticos
( El agente Viajero)
Ingeniería Matemática
equivalente a:
Investigación Operativa
UNMSM
UNA DEFINICIÓN COMPLETA DE UN
ALGORITMO GENÉTICO ES LA PROPUESTA
POR JHON KOZA
“Es un algoritmo matemático
altamente paralelo que
transforma un conjunto de
objetos matemáticos
individuales con respecto al
tiempo usando operaciones
modeladas de acuerdo al
principio Darwiniano de
reproducción y supervivencia
del mas apto, y tras haberse
presentado de forma natural
una serie de operaciones
genéticas de entre las que
destaca la recombinación
sexual.”
ALGORITMO GENÉTICO
John Holland, 1960s
“Los organismos vivientes
son consumados
resolvedores de problemas”
Adaptation in natural and
artificial systems, 1975
¿W. o G.
Bateson?
ALGORITMO GENÉTICO
Población de soluciones
Serie de caracteres (cromosomas)
Carácter (gen, rasgo)
Reproducción sexual y cross-over
Mutación
Ciclo:– 1. Generar población
– 2. Evaluar adecuación
– 3. Los mejores se reproducen, los peoresse extinguen
– 4. Aplicar mutaciones
– 5. Actualizar población
– 6. Volver a 2
•Trabajan con un conjunto de parámetros
codificados y no con los parámetros mismos.
•Inician la búsqueda desde un conjunto de
puntos, no de uno solo.
•Usan una función a optimizar en lugar de la
derivada u otro conocimiento adicional.
•Usan reglas de transición probabilísticas no
determinísticas.
DIFERENCIAS CON OTROS
MÉTODOS
PROCESO
Dado un problema especifico a resolver, la
entrada del AG es un conjunto de soluciones
potenciales a ese problema, codificadas de
alguna manera, y una métrica llamada función
de aptitud que permite evaluar
cuantitativamente a cada candidata.
En un acervo de candidatas generadas
aleatoriamente, por supuesto, la mayoría no
funcionarían en absoluto, y serian eliminadas.
Unas pocas pueden ser prometedoras
(pueden mostrar actividad), aunque sólo sea
actividad débil e imperfecta, hacia la solución
del problema.
Estas candidatas prometedoras se conservan
y se les permite reproducirse.
Las candidatas que han empeorado o no han
mejorado con los cambios en su código son
eliminadas de nuevo; pero, de nuevo, por
puro azar, las variaciones aleatorias
introducidas en la población pueden haber
mejorado a algunos individuos,
convirtiéndolos en mejores soluciones del
problema, mas completas o mas eficientes.
PARAMETROS NECESARIOS AL APLICAR
ALGORITMOS GENETICOS
Tamaño de la población
Condición de terminación
Individuos que intervienen en la
reproducción de cada generación
Probabilidad de ocurrencia de una
mutación
SELECCIÓN Selección proporcional a la función
adaptativa
Selección por ruleta.
Selección por torneo (deterministica,
probabilística).
SELECCIÓN
CRUZAMIENTO
COPIA CRUZAMIENTO
CROSS-OVER La riqueza no está en el azar, sino en la
diversidad
Ejemplo: Match – William Langdon, UCLALGORITMO GENETICO EN POSADAS
2726 = 16,423,203,268,260,700,000,000,000,000,000,000,000
1017 = 100,000,000,000,000,000
MUTACIÓN
MUTACIÓN
MUTACIÓN El termino mutación quiere decir “cambio”,
así como en la naturaleza las especiescambian para sobrevivir en un entornocambiante, en la IA se busca obtener lasmejores soluciones a través de la variaciónde dichas soluciones esto se realizavariando ciertos cromosomas de la solución.
Al igual que una mutación en los seres vivoscambia un gen por otro, una mutación en unalgoritmo genético también causa pequeñasalteraciones en puntos concretos del códigode un individuo.
Se encarga de modificar en forma aleatoria uno
o más genes del cromosoma de un
descendiente.
La siguiente figura muestra el quinto gen
siendo mutado, a lo que se conoce como
“mutación sencilla”:
MUTACIÓN
Es el método por el cual se insertan
los hijos en la población, por ejemplo
mediante la eliminación del individuo
más débil o al azar.
REEMPLAZO
Crossover
Representación de un Algoritmo
Genético
soluciones11001010
10111110
00100101
01011011
cromosomas
11001010
10111110
00100101
11001110
10111101
Mutación
01011011
00100101
11001010
10111110
00100101
01011011
00100101
11001110
10111101
hijos
Cálculode
Fitness
EvaluaciónSelección
Ruletaruleta
Nueva Población
Paradigma de Holland (220):
“seleccionar los padres
a recombinar”
EVALUACIÓN
Establece una medida numérica de la
bondad de una solución. Esta medida
recibe el nombre de ajuste.
En la naturaleza el ajuste (o adecuación)
de un individuo puede considerarse como
la probabilidad de que ese individuo
sobreviva hasta la edad de reproducción y
se reproduzca. Esta probabilidad deberá
estar ponderada con el número de
descendientes.
Se pueden diferenciar cuatro tipos
de ajuste o fitness [Koza, 1992]:
Fitness Puro: r (i, t)
Fitness Estandarizado: s (i, t)
Fitness Ajustado: a (i, t)
Fitness Normalizado: n (i, t)
PUNTOS A CONSIDERAR EN UN
AG BÁSICO• Criterio de paro. Normalmente cuando un
porcentaje alto de la población converge a un
valor. Si con ese valor no se llega a la medida
esperada, entonces se toma una pequeña
proporción y se inyecta ”diversidad genética'„
(se generan aleatoriamente nuevos individuos),o
inclusive se reemplaza completamente la
población.
• Operadores genéticos. Los principales son:
cruza(crossover), mutación, selección (algunos
autores lo consideran como tal) y reemplazo
(aunque existen más).
ALGORITMO GENÉTICO
DEFINICIÓN
John Koza :
"Es un algoritmo matemático altamente paralelo
que transforma un conjunto de objetos
matemáticos individuales con respecto al
tiempo usando operaciones modeladas de
acuerdo al principio Darwiniano de
reproducción y supervivencia del más apto, y
tras haberse presentado de forma natural una
serie de operaciones genéticas de entre las que
destaca la recombinación sexual”.
HISTORIA
Fueron inventados en 1975 por John Holland, de
la Universidad de Michigan.
John Holland desde pequeño, se preguntaba
cómo logra la naturaleza, crear seres cada vez
más perfectos.
Cuando Holland se enfrentó a los AG, los
objetivos de su investigación fueron dos:
Imitar los procesos adaptativos de los sistemas
naturales
Diseñar sistemas artificiales (normalmente
programas) que retengan los mecanismos
importantes de los sistemas naturales.
CARACTERÍSTICA
Perfeccionar su propia heurística en el proceso de
ejecución, por lo que no requiere largos períodos
de entrenamiento especializado por parte del ser
humano, principal defecto de otros métodos para
solucionar problemas, como los Sistemas
Expertos.
CUANDO USAR LOS A.G.
Si la función a optimizar tiene muchos
máximos/mínimos locales se requerirán más
iteraciones del algoritmo para "asegurar" el
máximo/mínimo global.
Si la función a optimizar contiene varios puntos
muy cercanos en valor al óptimo, solamente
podemos "asegurar" que encontraremos uno de
ellos (no necesariamente el óptimo).
COMO SABER SI ES POSIBLE
USAR UN A.G. Su espacio de búsqueda (i.e, sus posibles
soluciones) debe estar delimitado dentro de
un cierto rango.
Debe poderse definir una función de
aptitud que nos indique qué tan buena o
mala es una cierta respuesta.
Las soluciones deben codificarse de una
forma que resulte relativamente fácil de
implementar en la computadora.
VENTAJAS
Una clara ventaja es que los algoritmos
genéticos son intrínsecamente paralelos, es
decir, operan de forma simultánea con varias
soluciones, en vez de trabajar de forma
secuencial como las técnicas tradicionales.
Esto significa que mientras técnicas
tradicionales sólo pueden explorar el espacio
de soluciones hacia una solución en una
dirección al mismo tiempo, y si la solución que
descubren resulta subóptima, no se puede
hacer otra cosa que abandonar todo el trabajo
hecho y empezar de nuevo.
DESVENTAJAS
Pueden tardar mucho en converger, o no
converger en absoluto, dependiendo en
cierta medida de los parámetros que se
utilicen tamaño de la población, número de
generaciones.
LIMITACIONES
No se garantiza que el Algoritmo Genético
encuentre la solución óptima, del problema,
existe evidencia empírica de que se encuentran
soluciones de un nivel aceptable, en un tiempo
competitivo con el resto de algoritmos de
optimización combinatoria
APLICACIONES
Diseño de sistemas de distribución de aguas.
Diseño de topologías de circuitos impresos.
Diseño de topologías de redes computacionales.
En Teoría de juegos, resolución de equilibrios.
Análisis de expresión de genes.
Aprendizaje de comportamiento de robots.
Aprendizaje de reglas de Lógica difusa.
Optimización de estructuras moleculares.
Planificación de producción multicriterio.
Predicción.
Aplicación
Segmentación Automática de Bases de Datos
Distribuidas
SOLUCIONAR
PROBLEMAS
8-puzzle
Problema del viajante
Mastermind
APLICACIÓN
ESPECIFICA DE
ALGORITMOS
GENETICOS
MERCADOS FINANCIEROS
Se utilizaron un algoritmo genético para
predecir el rendimiento futuro de 1.600
acciones ofertadas públicamente.
Concretamente, al AG se le asignó la tarea
de predecir el beneficio relativo de cada
acción.
MATEMÁTICAS Y ALGORITMIA
Para resolver ecuaciones de derivadas
parciales no lineales de alto orden,
normalmente encontrando los valores para los
que las ecuaciones se hacen cero, y dan como
ejemplo una solución casi perfecta para los
coeficientes de la ecuación de quinto orden
conocida como Super Korteweg de Vries.
LINEA DE INVESTIGACIÓN
OPERATIVA
Durante los últimos años una gran parte de la
investigación en esta área se ha concentrado
en el desarrollo de mejoras al desempeño de
los algoritmos genéticos. Se han propuesto
nuevas técnicas de representación, selección
y cruza, con resultados muy alentadores.
APLICACIÓN DE
ALGORITMOS GENÉTICOS
EN PROBLEMAS DE
ASIGNACIÓN DE RUTAS
PARA LA DISTRIBUCIÓN
DE ACCESORIOS Y
EQUIPOS MÉDICOS
INTRODUCCIÓN
Se presenta la
aplicación de las
Metaheurísticas
mediante la
construcción de un
Algoritmo Genético que
busca encontrar una
solución de buena
calidad enfocada en la
minimización del
recorrido de despacho
en un circuito
hamiltoniano.
DESCRIPCIÓN DEL PROBLEMA
El problema de distribuir productos desde ciertos
depósitos a sus usuarios finales juega un papel
central en la gestión de algunos sistemas
logístico , y su adecuada planificación puede
significar considerables ahorros y ventajas
competitivas (Tohtetal.,2000).
La comercializadora estudiada ha ido
aumentando el número de clientes locales ,por lo
que la programación de ruta para la entrega de la
mercancía es cada vez más compleja , debido a
que , la combinación de clientes cambia cada vez
que se debe realizar un recorrido de entrega,
generando un sin número de posibles
alternativas de solución.
OBJETIVO DE LA
INVESTIGACIÓN
Construir un Algoritmo
Genético que indique el
recorrido de entrega de
mercancía, de tal manera, que
se logre el menor kilometraje
posible en cada programación.
ALGORITMO GENÉTICO
INFORMACIÓN PRELIMINAR
El proceso de la distribución de la
mercancía en la empresa, se
desarrolla como un problema
PAV(Problema del Agente Viajero),en
donde el vehículo distribuidor debe
hacer un tour que pase por cada uno
de los clientes , de manera que se
minimice el recorrido total.
INFORMACIÓN PRELIMINAR Para un grafo conectado de n vértices
(n>2), las posibles alternativas de
solución que pueden ser obtenidas son:
(n-1)!/2
Como actualmente se tiene 20 clientes
más la empresa, el modelo PAV
contemplará 21vértices. Partiendo de la
fórmula citada las posibles alternativas de
solución serán:
2.4329*10elevado(18)
INFORMACIÓN PRELIMINAR
Explosión Combinatoria
CONSTRUCCIÓN DEL
ALGORITMO - Codificación
Codificación-Matriz de distancias
“d”
POBLACIÓN INICIAL
Será generada de forma aleatoria.
Teniéndose en cuenta que el circuito
obtenido es Hamiltoniano. Es decir, no se
permite visitar un cliente más de una vez y la
alternativa obtenida los deberá incluir a
todos.
POBLACIÓN INICIAL
La población inicial es una matriz
generada de manera aleatoria, en la cual,
la cantidad de filas es controlada por un
parámetro denominado “tampoblación”
(Tamaño de la población) y la cantidad de
columnas es controlada por el número de
nodos “numgenes” que se deban visitar
(Número de genes en cada cromosoma).
Es así, como cada vector de la matriz que
forma la población inicial, será una
alternativa de solución
POBLACIÓN INICIAL
FUNCIÓN OBJETIVOSe evalúa la función objetivo de cada una de
las alternativas de solución teniendo en
cuenta la distancia (kilometraje) total
recorrida en cada tour.
SELECCIÓN Se utiliza Torneo determinístico, técnica
presentada por Goldberg and Deb (2004),quien
plantea que en este tipo de selección se
realizan torneos entre parejas de individuos
escogidos aleatoriamente y la alternativa de
mayor calidad (mejor valor de la función de
objetivo)es seleccionada para pasar su copia
genética a la siguiente generación. Se debe
escoger, usando torneo , un número de
alternativas igual al tamaño de la población.
Por esta razón, si el tamaño de la población es
n, se deben realizar 2n torneos para conformar
el total de individuos.
SELECCIÓN
CRUZAMIENTO
Se utiliza el operador PMX , el cual puede
ser visto como una recombinación de
permutaciones que garantiza que todos
los alelos son encontrados sólo una vez
en cada descendiente (Murata and
Ishibuchi,1995).
Paso 1: Se escogen aleatoriamente de la
población dos cromosomas (alternativas
de solución), los cuales se llamarán Padre
y Madre.
CRUZAMIENTO
Paso 2: Se generan aleatoriamente dos
puntos de corte Pc1 y Pc2.
Paso 3: Los genes que están fuera de la
franja limitada por los dos puntos de corte
son copiados del padre al descendiente,
conservando las mismas posiciones.
Paso 4: Los genes faltantes en el
descendiente son tomados de la madre,
conservando el orden en el que se
encuentran en ella.
CRUZAMIENTO
MUTACIÓN Para ejecutar esta parte del Algoritmo
Genético se usó un valor de 0.4 como la
tasa de mutación y se le asignó a un
parámetro llamado “tasa mutación”. Es
así, como después de haber realizado
la Selección y el Cruzamiento respectivo ,
se genera un número aleatorio entre 0 y 1
para ser comparado con la tasa de
mutación. Si el valor está por debajo de
dicha tasa, se inicia el proceso de
Mutación.
MUTACIÓN
SOLUCIÓN DE BUENA
CALIDAD
Alternativa (tour que se debe realizar).
Para una distancia total recorrida de 9,949 km
CONCLUSIONES
Históricamente se recorrían
alrededor de 20.93 kilómetros en las
entregas, con la utilización del
algoritmo genético se obtiene una
reducción del 52.5%. Además, el
tiempo de las entregas disminuye de
una jornada completa a media
jornada.
CONCLUSIONES
Los Algoritmos Genéticos son
idóneos cuando se tiene problemas
de explosión combinatoria, ya que ,
permiten la exploración de una
cantidad relevante de alternativas de
solución . Sin embargo no se
garantiza la optimalidad , por lo que
hay que realizar varias corridas hasta
estar seguro de la solución.
Existen varios paquetes y bibliotecas de algoritmos genéticos en el
mercado, a continuación se presentan algunos:
GAGS
Generador de aplicaciones basadas en algoritmos genéticos, escrito en
C++. Desarrollado por el grupo de J.J. Melero.
Dirección primaria: kal-el.ugr.es/gags.html
Dirección para descargar vía FTP:kal-el.ugr.es/GAGS/.
GALIB
Biblioteca de algoritmos genéticos de Matthew. Conjunto de clases en
C++ de algoritmos genéticos.
Dirección primaria: lancet.mit.edu/ g a /
Dirección para descargar vía FTP:lancet.mit.edu/pub/ g a /
SOFTWARE
SOFTWAREGPDATA
Para desarrollar algoritmos genéticos en C++.
Dirección primaria: cs.ucl.ac.uk/genetic/papers/
Dirección para descargar vía FTP:
ftp.cs.bham.ac.uk/pub/authors/ W.B.Langdon/ g p-code/
GPJPP
Bibliotecas de clases para desarrollar algoritmos genéticos en Java
Dirección primaria: www.turbopower.com/~ kimk/gpjpp.asp.
SOFTWARE
LIL-GP
Herramientas para programación genética en C.
Dirección primaria:isl.msu.edu/GA/software/l I l-gp/index.html
Dirección para descargar vía FTP:isl.cps.msu.edu/pub/GA/l i lgp/
GPsys
Sistema de programación genética en Java.
Dirección primaria:www.cs.ucl.ac.uk/ staff/ A.Qureshi / gpsys.html.
INVESTIGACIÓN OPERATIVA
Saludos estimados amigos de Perú.
En esta oportunidad les presento:
Algoritmos Genéticos
( El agente Viajero)
Ingeniería Matemática
equivalente a:
Investigación Operativa
UNMSM