Professional Documents
Culture Documents
Programacin Entera
Proyecto final
19 de noviembre de 2013
en
la
bsqueda
de
Contenido
Objetivo............................................................................................................. 4
Introduccin..................................................................................................... 4
Algoritmos genticos...................................................................................... 5
Orgenes............................................................................................................ 5
Robustidad en mtodos tradicionales de optimizacin y bsqueda.......6
Evolucin natural y algoritmos genticos...................................................7
Codificacin...................................................................................................... 9
Seleccin......................................................................................................... 10
Seleccin por rueda de ruleta........................................................................11
Seleccin por rango....................................................................................... 11
Seleccin elitista............................................................................................ 11
Seleccin por estado estacionario.................................................................11
Seleccin por torneo...................................................................................... 11
Seleccin escalada......................................................................................... 11
Seleccin Jerrquica....................................................................................... 12
Cruce................................................................................................................ 12
Cruce de 1 punto (Single Point Exchange, SPX).............................................13
en
la
bsqueda
de
en
la
bsqueda
de
Objetivo
Recopilar informacin sobre los algoritmos genticos, para exponer sus
orgenes, objetivos, alcances, aplicaciones y caractersticas, justificando el por
qu son una herramienta que se debe de tomar en cuenta para la solucin de
problemas de optimizacin combinatoria, tales como son los problemas de
Programacin Entera, la cual motiva la elaboracin de este texto.
Introduccin
La Inteligencia artificial es una disciplina que se dedica al desarrollo de
software informtico capaz de ejecutar trabajos inteligentes. Sus principales
objetivos son:
1. Desarrollar modelos computacionales del comportamiento inteligente,
incluyendo tanto el aspecto cognitivo como el perceptual;
2. El desarrollo de programas computacionales que puedan resolver
problemas que normalmente se supondra que requieren de
pensamiento humano. (Richard O. Duda, 1983)
La Inteligencia Artificial es multidisciplinar y se apoya en los conceptos y
tcnicas de otras disciplinas, tales como: informtica, ingeniera, sociologa,
ciencia del comportamiento, psicologa cognitiva, investigacin de operaciones,
economa, teora general de sistemas, etc. (Snchez Toms, 1993)
Dentro de los principales campos de desarrollo de la Inteligencia artificial se
encuentran los algoritmos genticos.
en
la
bsqueda
de
Algoritmos genticos
Segn Goldberg, los algoritmos genticos son algoritmos de bsqueda
basados en la mecnica de la seleccin natural y la gentica. Combinan la
sobrevivencia del ms apto entre estructuras de secuencias con un intercambio
de informacin estructurado, aunque aleatorizado, para construir as un
algoritmo de bsqueda que tenga algo de las genialidades de las bsquedas
humanas. En cada generacin, un nuevo arreglo de criaturas artificiales es
creado usando pedazos y piezas de lo ms ajustado del anterior;
ocasionalmente una nueva pieza ser probada para mejorar la medida. Aunque
aleatorios, los algoritmos genticos no son una simple caminata aleatoria.
Explotan eficientemente la informacin histrica para especular sobre los
nuevos puntos de bsqueda, de donde se espera un mejor desempeo.
(Goldberg, 1989)
Orgenes
El desarrollo de los algoritmos genticos se debe en gran medida a John
Holland, investigador de la Universidad de Michigan. A finales de la dcada de
los 60 desarroll una tcnica que imitaba en su funcionamiento a la seleccin
natural. Aunque originalmente esta tcnica recibi el nombre de planes
reproductivos, a raz de la publicacin en 1975 de su libro Adaptation in
Natural and Artificial Systems (Holland, 1975) se conoce principalmente con el
nombre de Algoritmos Genticos. A grandes rasgos un Algoritmo Gentico
consiste en una poblacin de soluciones codificadas de forma similar a
cromosomas. Cada uno de estos cromosomas tendr asociado un valor de
ajuste, que cuantifica su validez como solucin al problema. En funcin de este
valor se le darn ms o menos oportunidades de reproduccin. Adems, con
cierta probabilidad se realizarn mutaciones de estos cromosomas (Goldberg,
2002).
La Programacin Evolutiva surge principalmente a raz del trabajo Artificial
Intelligence Through Simulated Evolution de Fogel, Owens y Walsh, publicado
en 1966. En este caso los individuos, conocidos aqu como organismos, son
mquinas de estado finito. Los organismos que mejor resuelven alguna de las
funciones objetivo obtienen la oportunidad de reproducirse. Antes de
producirse los cruces para generar la descendencia se realiza una mutacin
sobre los padres.
en
la
bsqueda
de
en
la
bsqueda
de
pero todos los problemas que no cumplan con esto se resuelven de manera
ineficiente o no se pueden resolver por medio de estos mtodos.
Para encontrar ventajas sobre otros mtodos de optimizacin y bsqueda
tradicionales en cuanto a robustidad, los algoritmos genticos deben ser
diferentes en ciertas formas fundamentales:
en
la
bsqueda
de
en
la
bsqueda
de
en
la
bsqueda
de
10
Codificacin
Desde los primeros trabajos de John Holland la codificacin suele hacerse
mediante valores binarios. Se asigna un determinado nmero de bits a cada
parmetro y se realiza una discretizacin de la variable representada por cada
gen. El nmero de bits asignados depender del grado de ajuste que se desee
alcanzar. Evidentemente no todos los parmetros tienen por qu estar
codificados con el mismo nmero de bits. Cada uno de los bits pertenecientes a
un gen suele recibir el nombre de alelo.
en
la
bsqueda
de
11
Individuo gentico binario (Gestal, Rivero, Rabual, Dorado, & Pazos, 2010).
Seleccin
Es necesario hacer una seleccin con los individuos ms capacitados para que
estos sean los que se reproduzcan con ms probabilidad, de acuerdo con la
teora de Darwin, en la cual los ms capacitados son los que deben sobrevivir y
crear una nueva descendencia ms facultada.
Por lo tanto una vez evaluado cada cromosoma y obtenida su puntuacin, se
tiene que crear la nueva poblacin teniendo en cuenta que los buenos rasgos
de los mejores se transmitan a sta. Esta seleccin se puede realizar de varias
formas como se ver a continuacin en algunas tcnicas recopiladas por Arranz
de la Pea y Parra Truyol.
en
la
bsqueda
de
12
Seleccin elitista
En ciertas ocasiones puede suceder que tras el cruce y la mutacin, perdamos
el cromosoma con mejor adaptacin. Este mtodo de seleccin copia el mejor
cromosoma o alguno de los mejores en la nueva poblacin. El resto se realiza
de la misma forma que hemos visto anteriormente. El elitismo puede mejorar
el funcionamiento de los algoritmos genticos al evitar que se pierda la mejor
solucin. Una variacin del elitismo es que el mejor cromosoma solo se copie a
la siguiente generacin en caso de que tras una reproduccin/mutacin no se
haya generado un cromosoma mejor.
Seleccin escalada
Al incrementarse la aptitud media de la poblacin, la fuerza de la presin
selectiva tambin aumenta y la funcin de aptitud se hace ms discriminadora.
Este mtodo puede ser til para seleccionar ms tarde, cuando todos los
individuos tengan una aptitud relativamente alta y slo les distingan pequeas
diferencias en la aptitud.
en
la
bsqueda
de
13
Seleccin Jerrquica
En esta seleccin, los individuos atraviesan mltiples rondas de seleccin en
cada generacin. Las evaluaciones de los primeros niveles son ms rpidas y
menos discriminatorias, mientras que los que sobreviven hasta niveles ms
altos son evaluados ms rigurosamente. La ventaja de este mtodo es que
reduce el tiempo total de clculo al utilizar una evaluacin ms rpida y menos
selectiva para eliminar a la mayora de los individuos que se muestran poco o
nada prometedores, y sometiendo a una evaluacin de aptitud ms rigurosa y
computacionalmente ms costosa slo a los que sobreviven a esta prueba
inicial.
Cruce
Una vez seleccionados los individuos, stos son recombinados para producir la
descendencia que se insertar en la siguiente generacin, como estrategia de
reproduccin sexual.
Su importancia para la transicin entre generaciones es elevada, puesto que
las tasas de cruce con las que se suele trabajar rondan el 90%.
Los diferentes mtodos de cruce podrn operar de dos formas diferentes. Si se
opta por una estrategia destructiva los descendientes se insertarn en la
poblacin temporal aunque sus padres tengan mejor ajuste (trabajando con
una nica poblacin esta comparacin se realizar con los individuos a
reemplazar). Por el contrario, utilizando una estrategia no destructiva la
descendencia pasar a la siguiente generacin nicamente si supera la bondad
del ajuste de los padres (o de los individuos a reemplazar).
La idea principal del cruce se basa en que, si se toman dos individuos
correctamente adaptados al medio y se obtiene una descendencia que
comparta genes de ambos, existe la posibilidad de que los genes heredados
sean precisamente los causantes de la bondad de los padres. Al compartir las
caractersticas buenas de dos individuos, la descendencia, o al menos parte de
ella, debera tener una bondad mayor que cada uno de los padres por
separado. Si el cruce no agrupa las mejores caractersticas en uno de los hijos
y la descendencia tiene un peor ajuste que los padres no significa que se est
dando un paso atrs. Optando por una estrategia de cruce no destructiva
garantizamos que pasen a la siguiente generacin los mejores individuos. Si,
an con un ajuste peor, se opta por insertar a la descendencia, y puesto que
los genes de los padres continuarn en la poblacin (aunque dispersos y
posiblemente levemente modificados por la mutacin), en posteriores cruces
en
la
bsqueda
de
14
Cruce de dos puntos (Gestal, Rivero, Rabual, Dorado, & Pazos, 2010).
en
la
bsqueda
de
15
en
la
bsqueda
de
16
Algoritmos de Reemplazo
Cuando en vez de trabajar con una poblacin temporal se hace con una nica
poblacin, sobre la que se realizan las selecciones e inserciones, deber
tenerse en cuenta que para insertar un nuevo individuo deber de eliminarse
previamente otro de la poblacin. Existen diferentes mtodos de reemplazo:
o
o
o
Mutacin
Tras el cruce, tiene lugar la mutacin. Las mutaciones suelen ser beneficiosas,
pues contribuyen a la diversidad gentica de la especie. Adems previenen a
las soluciones de la poblacin de verse limitadas por un ptimo local. Por lo
tanto la mutacin consiste en modificar ciertos genes de forma aleatoria
atendiendo a la probabilidad de mutacin establecida con anterioridad. La
mutacin depende de la codificacin y de la reproduccin. Si se abusa de la
mutacin podemos caer en el uso del algoritmo gentico como una simple
bsqueda aleatoria. Por lo tanto antes de aumentar las mutaciones, conviene
estudiar otras soluciones que aporten diversidad a la poblacin como podra
en
la
bsqueda
de
17
Evaluacin
Para el correcto funcionamiento de un Algoritmo Gentico se debe de poseer
un mtodo que indique si los individuos de la poblacin representan o no
buenas soluciones al problema planteado. De esto se encarga la funcin de
evaluacin, que establece una medida numrica de la bondad de una solucin.
Esta medida recibe el nombre de ajuste. En la naturaleza el ajuste (o
adecuacin) de un individuo puede considerarse como la probabilidad de que
ese individuo sobreviva hasta la edad de reproduccin y se reproduzca. Esta
probabilidad deber estar ponderada con el nmero de individuos de la
poblacin gentica.
En el mundo de los Algoritmos Genticos se emplear esta medicin para
controlar la aplicacin de los operadores genticos. Es decir, permitir controlar
el nmero de selecciones, cruces, copias y mutaciones llevadas a cabo.
La aproximacin ms comn consiste en crear explcitamente una medida de
ajuste para cada individuo de la poblacin. A cada uno de los individuos se le
asigna un valor de ajuste escalar por medio de un procedimiento de evaluacin
bien definido (Gestal, Rivero, Rabual, Dorado, & Pazos, 2010).
en
la
bsqueda
de
18
en
la
bsqueda
de
19
en
la
bsqueda
de
20
Aplicaciones
Los algoritmos genticos tienen, en general, aplicacin en la solucin de
problemas donde los mtodos alternativos no satisfacen los requerimientos de
robustidad del caso en cuestin, como se mencion en el apartado
correspondiente de este texto, sin embargo, se puede destacar su utilizad en
las siguientes reas:
en
la
bsqueda
de
21
Conclusiones
Los algoritmos genticos, como tcnica heurstica para la solucin de
problemas, resulta ser una herramienta poderosa y aplicable a muchos casos
en los que los mtodos o tcnicas exactas pueden fallar o no son aplicables. Se
caracterizan por buscar soluciones basndose, en una buena medida, en
tcnicas estocsticas, combinndolas con algunas determinsticas, por lo que a
diferencia de otros mtodos heursticos, no se busca directamente en los
puntos de solucin que rodean al punto actual, por lo que tiene ventajas al
buscar los ptimos globales aunque el algoritmo se encuentre sobre un ptimo
local, aunque no se garantice que se encuentre el ptimo global.
Este tipo de algoritmos, adems nos presentan mucha versatilidad a la hora de
disearlos, buscando lo que ms nos convenga a la hora de atacar un
problema en especfico, cambiando los parmetros o tcnicas mediante las
cules se ejecutan los procesos derivados de los operadores genticos.
Por su naturaleza y forma de bsqueda de soluciones, los algoritmos genticos
pueden tener muchas ventajas en su aplicacin a problemas de optimizacin
combinatoria, por lo que representan una alternativa de solucin para
problemas de programacin entera en los que los mtodos de solucin exactos
en
la
bsqueda
de
22
Referencias
Arranz de la Pea, J., & Parra Truyol, A. (s.f.). Algoritmos Genticos. Madrid:
Universidad Carlos III.
Gestal, M., Rivero, D., Rabual, J., Dorado, J., & Pazos, A. (2010). Introduccin a
los Algoritmos Genticos y Programacin Gentica. La Corua:
Universidade da Corua, Servizo de Publicacins.
Goldberg, D. E. (1989). Genetic algorithms in search, optimization, and
machine learning. Estados Unidos: Addison-Wesley Publishing Company.
Richard O. Duda, E. H. (1983). Expert Systems Research. Science, 261-220.
Snchez Toms, A. (1993). Sistemas expertos en Auditora. Tcnica Contable,
529-544.
Tolmos Rodriguez-Piero, P. (2000). Introduccin a los algoritmos genticos y
sus aplicaciones. Madrid, Espaa.