ALGORITMOS GENETICOS ADR

Post on 26-Jul-2015

286 views 1 download

Transcript of ALGORITMOS GENETICOS ADR

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

MUCHAS GRACIAS POR SU

ATENCION

AUTOR

Ricardo Antonio Díaz Roque

EMAIL

CONSULTORES-ADR@HOTMAIL.COM