You are on page 1of 33

Algoritmos genticos

Resumen:
Los algoritmos genticos son un logro ms de la Inteligencia Artificial en su intento de
replicar comportamientos biolgicos, con los avances cientficos que ello implica, mediante
la computacin. Se trata de algoritmos de bsqueda basados en la mecnica de la seleccin
natural y de la gentica. Utilizan la informacin histrica para encontrar nuevos puntos de
bsqueda de una solucin ptima del problema planteado, con esperanzas de mejorar los
resultados. En el presente trabajo de investigacin se realizar una introduccin a los
Algoritmos Genticos: qu son, de dnde proceden, y en qu difieren de otros mtodos de
bsqueda, comentndose, asimismo, sus aplicaciones principales.
Introduccin:
La capacidad del ser humano para predecir el comportamiento de su entorno, se ha ido
incrementando con el paso del tiempo. De igual modo, ha comprendido que, si bien era
capaz de controlar muchos aspectos de su vida, y su interaccin con lo que le rodeaba, no lo
era para otros tantos. La inteligencia artificial es responsable de muchos de esos logros. Los
pioneros de esta ciencia estaban tan interesados en la electrnica, como en la biologa, y por
eso sus aplicaciones iban desde calcular trayectorias de misiles, a tratar de modelizar el
cerebro, de imitar el proceso de aprendizaje humano, y de simular la evolucin biolgica.
Los aos ochenta (en el siglo pasado) marcan el florecimiento del inters de la comunidad
cientfica por estos temas computacionales inspirados en la biologa, que han visto como su
desarrollo les llevaba a cotas inimaginables, primero en el campo de las Redes Neuronales,
luego en el del Aprendizaje, y por ltimo en lo que ahora se conoce como computacin
evolutiva, de la que los algoritmos genticos constituyen su mximo exponente.

Antecedentes:
El algoritmo gentico es una tcnica de bsqueda basada en la teora de la evolucin de
Darwin, que ha cobrado tremenda popularidad en todo el mundo durante los ltimos aos.
En los ltimos aos, la comunidad cientfica internacional ha mostrado un creciente inters
en una nueva tcnica de bsqueda basada en la teora de la evolucin y que se conoce como

el algoritmo gentico. Esta tcnica se basa en los mecanismos de seleccin que utiliza la
naturaleza, de acuerdo a los cuales los individuos ms aptos de una poblacin son los que
sobreviven, al adaptarse ms fcilmente a los cambios que se producen en su entorno. Hoy
en da se sabe que estos cambios se efectan en los genes de un individuo (unidad bsica de
codificacin de cada uno de los atributos de un ser vivo), y que sus atributos ms deseables
(i.e., los que le permiten adaptarse mejor a su entorno) se transmiten a sus descendientes
cuando ste se reproduce sexualmente.
Un investigador de la Universidad de Michigan llamado John Holland era consciente de la
importancia de la seleccin natural, y a fines de los 60s desarroll una tcnica que permiti
incorporarla a un programa. Su objetivo era lograr que las computadoras aprendieran por s
mismas. A la tcnica que invent Holland se le llam originalmente "planes reproductivos",
pero se hizo popular bajo el nombre "algoritmo gentico" tras la publicacin de su libro en
1975.
Una definicin bastante completa de un algoritmo gentico es la propuesta por John Koza:
"Es un algoritmo matemtico altamente paralelo que transforma un conjunto de objetos
matemticos individuales con respecto al tiempo usando operaciones modeladas de acuerdo
al principio Darwiniano de reproduccin y supervivencia del ms apto, y tras haberse
presentado de forma natural una serie de operaciones genticas de entre las que destaca la
recombinacin sexual. Cada uno de estos objetos matemticos suele ser una cadena de
caracteres (letras o nmeros) de longitud fija que se ajusta al modelo de las cadenas de
cromosomas, y se les asocia con una cierta funcin matemtica que refleja su aptitud. "
Definicin:
Los Algoritmos Genticos (AGs) son mtodos adaptativos que pueden usarse para resolver
problemas de bsqueda y optimizacin. Estn basados en el proceso gentico de los
organismos vivos. A lo largo de las generaciones, las poblaciones evolucionan en la
naturaleza de acorde con los principios de la seleccin natural y la supervivencia de los ms
fuertes, postulados por Darwin. Por imitacin de este proceso, los Algoritmos Genticos
son capaces de ir creando soluciones para problemas del mundo real. La evolucin de

dichas soluciones hacia valores ptimos del problema depende en buena medida de una
adecuada codificacin de las mismas.
Un algoritmo gentico consiste en una funcin matemtica o una rutina de software que
toma como entradas a los ejemplares y retorna como salidas cules de ellos deben generar
descendencia para la nueva generacin.
Versiones ms complejas de algoritmos genticos generan un ciclo iterativo que
directamente toma a la especie (el total de los ejemplares) y crea una nueva generacin que
reemplaza a la antigua una cantidad de veces determinada por su propio diseo. Una de sus
caractersticas principales es la de ir perfeccionando su propia heurstica en el proceso de
ejecucin, por lo que no requiere largos perodos de entrenamiento especializado por parte
del ser humano, principal defecto de otros mtodos para solucionar problemas, como los
Sistemas Expertos.

Ventajas y desventajas:
No necesitan conocimientos especficos sobre el problema que intentan resolver.

Operan de forma simultnea con varias soluciones, en vez de trabajar de forma


secuencial como las tcnicas tradicionales.

Cuando se usan para problemas de optimizacin maximizar una funcin objetivoresultan menos afectados por los mximos locales (falsas soluciones) que las
tcnicas tradicionales.

Resulta sumamente fcil ejecutarlos en las modernas arquitecturas masivamente


paralelas.

Usan operadores probabilsticos, en vez de los tpicos operadores determinsticos de


las otras tcnicas.

Pueden tardar mucho en converger, o no converger en absoluto, dependiendo en


cierta medida de los parmetros que se utilicen tamao de la poblacin, nmero de
generaciones, etc.-.

Pueden converger prematuramente debido a una serie de problemas de diversa


ndole.

Limitaciones:
El poder de los Algoritmos Genticos proviene del hecho de que se trata de una
tcnica robusta, y pueden tratar con xito una gran variedad de problemas
provenientes de diferentes reas, incluyendo aquellos en los que otros mtodos
encuentran dificultades. Si bien no se garantiza que el Algoritmo Gentico
encuentre la solucin ptima, del problema, existe evidencia emprica de que se
encuentran soluciones de un nivel aceptable, en un tiempo competitivo con el resto
de algoritmos de optimizacin combinatoria. En el caso de que existan tcnicas
especializadas para resolver un determinado problema, lo ms probable es que
superen al Algoritmo Gentico, tanto en rapidez como en eficacia. El gran campo de
aplicacin de los Algoritmos Genticos se relaciona con aquellos problemas para los
cuales no existen tcnicas especializadas. Incluso en el caso en que dichas tcnicas
existan, y funcionen bien, pueden efectuarse mejoras de las mismas hibridndolas
con los Algoritmos Genticos.
Como saber si es posible usar un Algoritmo Gentico:
La aplicacin ms comn de los algoritmos genticos ha sido la solucin de
problemas de optimizacin, en donde han mostrado ser muy eficientes y confiables.
Sin embargo, no todos los problemas pudieran ser apropiados para la tcnica, y se
recomienda en general tomar en cuenta las siguientes caractersticas del mismo
antes de intentar usarla:
Su espacio de bsqueda (i.e., sus posibles soluciones) debe estar delimitado

dentro de un cierto rango.


Debe poderse definir una funcin de aptitud que nos indique qu tan buena o
mala es una cierta respuesta.

Las soluciones deben codificarse de una forma que resulte relativamente

fcil de implementar en la computadora.


El primer punto es muy importante, y lo ms recomendable es intentar resolver
problemas que tengan espacios de bsqueda discretos aunque stos sean muy
grandes. Sin embargo, tambin podr intentarse usar la tcnica con espacios de
bsqueda continuos, pero preferentemente cuando exista un rango de soluciones
relativamente pequeo.
Esquema Bsico:
En la naturaleza todo el proceso de evolucin biolgica se hace de forma natural pero para
aplicar el algoritmo gentico al campo de la resolucin de problemas habr que seguir una
serie de pasos. Una premisa es conseguir que el tamao de la poblacin sea lo
suficientemente grande para garantizar la diversidad de soluciones. Se aconseja que la
poblacin sea generada de forma aleatoria para obtener dicha diversidad. En caso de que la
poblacin no sea generada de forma aleatoria habr que tener en cuenta que se garantice
una cierta diversidad en la poblacin generada. Los pasos bsicos de un algoritmo gentico
son:
Evaluar la puntuacin de cada uno de los cromosomas generados.
Permitir la reproduccin de los cromosomas siendo los ms aptos los que tengan ms
probabilidad de reproducirse.
Con cierta probabilidad de mutacin, mutar un gen del nuevo individuo generado.
Organizar la nueva poblacin. Estos pasos se repetirn hasta que se d una condicin de
terminacin. Se puede fijar un nmero mximo de iteraciones antes de finalizar el
algoritmo gentico o detenerlo cuando no se produzcan ms cambios en la poblacin
(convergencia del algoritmo). Esta ltima opcin suele ser la ms habitual. Veamos el
esquema general de un algoritmo gentico simple:

Figura 1. Estructura de un Algoritmos Gentico

Cromosoma: En los algoritmos genticos, un cromosoma es una estructura de datos


que representa una de las posibles soluciones del espacio de bsqueda del problema.
Los cromosomas son sometidos a un proceso de evolucin que envuelve evaluacin,

seleccin, cruzamiento y mutacin.


Gen: Corresponde a cada uno de los elementos que conforman un cromosoma.
Alelos: Son los valores que pueden tomar los genes de un cromosoma.

Parmetros de los algoritmos genticos.


Para el estudio de los algoritmos genticos hay que tener en cuenta una serie de parmetros:
1. Tamao de la Poblacin
Este parmetro nos indica el nmero de cromosomas que tenemos en nuestra
poblacin para una generacin determinada. En caso de que esta medida sea
insuficiente, el algoritmo gentico tiene pocas posibilidades de realizar
reproducciones con lo que se realizara una bsqueda de soluciones escasa y poco

ptima. Por otro lado si la poblacin es excesiva, el algoritmo gentico ser


excesivamente lento.
2. Probabilidad de Cruce
Indica la frecuencia con la que se producen cruces entre los cromosomas padre es
decir, que haya probabilidad de reproduccin entre ellos. En caso de que no exista
probabilidad de reproduccin, los hijos sern copias exactas se los padres. En caso
de haberla, los hijos tendrn partes de los cromosomas de los padres. Si la
probabilidad de cruce es del 100% el hijo se crea totalmente por cruce, no por
partes.
3. Probabilidad de Mutacin
Nos indica la frecuencia con la que los genes de un cromosoma son mutados. Si no
hay mutacin, los descendientes son los mismos que haba tras la reproduccin. En
caso de que haya mutaciones, parte del cromosoma descendiente es modificado y si
la probabilidad de mutacin es del 100%, la totalidad del cromosoma se cambia. En
este caso, no se cambian simplemente unos bits del cromosoma sino que se cambian
todos, lo que significa que se produce una inversin en el cromosoma y no una
mutacin por lo que la poblacin degenera muy rpidamente.

Operaciones de los algoritmos genticos


Tras parametrizar el problema en una serie de variables, se codifican en un
cromosoma. Todos los operadores utilizados por un algoritmo gentico se aplicarn
sobre estos cromosomas, o sobre poblaciones de ellos.
En el algoritmo gentico va implcito el mtodo para resolver el problema. Hay que
tener en cuenta que un algoritmo gentico es independiente del problema, lo cual lo
hace un algoritmo robusto, al resultar til en cualquier mbito de accin, pero a la
vez dbil, pues no est especializado en ninguno. Las soluciones codificadas en un
cromosoma compiten para ver cul constituye la mejor solucin (aunque no
necesariamente la mejor de todas las soluciones posibles). El ambiente, constituido
por las otras soluciones, ejercer una presin selectiva sobre la poblacin, de forma
que slo los mejor adaptados (aquellos que resuelvan mejor el problema) sobrevivan
o leguen su material gentico a las siguientes generaciones, igual que en la

evolucin de las especies. La diversidad gentica se introduce mediante mutaciones


y reproduccin sexual. Por lo tanto, un algoritmo gentico consiste en hallar de qu
parmetros depende el problema, codificarlos en un cromosoma, y aplicar los
mtodos de la evolucin: seleccin y reproduccin sexual con intercambio de
informacin y mutaciones que generen diversidad.
Codificacin de las Variables
Los cromosomas de alguna manera debern contener informacin acerca de la
solucin que representa. La codificacin se puede realizar de varias formas. La ms
utilizada es mediante una cadena de nmeros binarios (1s o 0s). Pero tambin se
puede realizar la codificacin mediante nmeros enteros o incluso cadenas de
palabras. La eleccin de la codificacin depender tambin del problema a resolver
pues puede darse la situacin en la que la resolucin de un caso sea ms ptimo el
uso de una codificacin basada en nmeros reales mientras que esa codificacin
complique la solucin en otro caso. As pues hay que estudiar la codificacin ms
ptima segn el caso que se est estudiando.
1. Codificacin Binaria
Es la codificacin ms extendida debido a que los primeros algoritmos
genticos utilizaron este tipo de codificacin. En este caso, cada cromosoma
es una cadena de bits (0 o 1). A su favor tiene que puede abarcar muchos
cromosomas incluso con un nmero reducido de genes. Sin embargo por otro
lado esta opcin no es la idnea para muchos problemas y en algunas
ocasiones es necesario realizar correcciones despus de la reproduccin y/o
mutacin. Este tipo de codificacin se utiliza por ejemplo en el problema de
la mochila. En este problema tenemos una mochila con una cierta capacidad
y una serie de objetos que queremos introducir. Estos objetos tendrn un
peso y un beneficio o un valor para nosotros. La capacidad de la mochila es
inferior a la suma del peso de todos los objetos. El objetivo es conseguir que
la suma de los beneficios o valores sea mxima y que la suma de los pesos
no supere el de la capacidad de la mochila.

2. Codificacin Numrica
En este tipo de codificacin se utilizan cadenas de nmeros que representan un
nmero en una secuencia. Se utiliza en problemas en los que hay que ordenar algo,
donde resulta muy til. En algunos casos tambin es necesario como en el caso
anterior realizar correcciones tras relaciones o mutaciones. Un ejemplo clsico de
este tipo de codificacin es el problema del viajante de comercio. En este caso
tenemos una serie de ciudades por las que el comerciante debe pasar y las distancias
entre ellas. El objetivo es que el comerciante, partiendo de una ciudad origen,
recorra todas las
ciudades

vuelva al punto
de partida pero
recorriendo
menor
de
Figura 2.Esquema del problema del viajero

el

nmero

kilmetros,

por lo que habr

que localizar la combinacin de ciudades que minimice dicho recorrido.

3. Codificacin por Valor Directo


Este tipo de codificacin ser el utilizado en caso de resolucin de
problemas en el que se requiera del uso de valores de cifrado complicado
como podra ser en el uso de nmeros reales, cuya codificacin con nmeros
binarios sera muy complejo. En codificacin por valor directo cada
cromosoma es una cadena de valores relacionados con el problema a
estudiar, pudiendo ser desde nmeros decimales, cadenas de caracteres o
incluso una combinacin de varios de ellos. Su aplicacin es muy buena en
ciertos problemas concretos. Por el contrario para la utilizacin de esta
codificacin, normalmente es necesario desarrollar nuevas tcnicas de

reproduccin y mutacin especificas hacia la resolucin del problema. Una


aplicacin de esta codificacin se da en la resolucin de problemas para la
bsqueda de pesos para las redes neuronales. En este asunto se trata de
encontrar el peso de las neuronas para ciertas entradas y as entrenar a la red
para obtener la salida deseada. El valor del peso de las entradas vendr
representado en el propio cromosoma con dicha codificacin.

Figura 3.Esquema red neuronal

4. Codificacin en rbol
Este tipo de codificacin se utiliza principalmente en el desarrollo de programas o
expresiones para programacin gentica. Cada cromosoma ser en este caso un
rbol con ciertos objetos. En este mtodo, los cambios aleatorios pueden generarse
cambiando el operador, alterando el valor de un cierto nodo del rbol o simplemente
sustituyendo un subrbol por otro.

Seleccin:
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.

1. Seleccin por Rueda de Ruleta

Se crea para
esta seleccin
una ruleta con
los
cromosomas
presentes

en

una
Figura 4.Rueda de ruleta de seleccin.

generacin.

Cada cromosoma tendr una parte de esa ruleta mayor o menor en


funcin a la puntuacin que tenga cada uno. Se hace girar la ruleta y se
selecciona el cromosoma en el que se para la ruleta. Obviamente el
cromosoma con mayor puntuacin saldr con mayor probabilidad. En
caso de que las probabilidades difieran mucho, este mtodo de seleccin
dar problemas puesto que si un cromosoma tiene un 90% de
posibilidades de ser seleccionado, el resto apenas saldr lo que reducira
la diversidad gentica.
2. Seleccin por Rango
En este mtodo a cada cromosoma se le asigna un rango numrico
basado en su aptitud y la seleccin se realiza en base a este
ranking. Veamos la diferencia entre el caso anterior y este a travs de un
ejemplo grfico.

Figura 5.Caso de seleccin por ruleta.

Figura 6.Caso de seleccin por ranking.

Vemos como en este ltimo caso se va a producir una variedad gentica


mucho ms rica que en el primer caso. El problema de esta seleccin es
que la convergencia puede ser ms lenta ya que no existe tanta
diferencia entre el mejor cromosoma y el resto como ocurra antes.
3.

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.
4. Seleccin por Estado Estacionario
La descendencia de los individuos

seleccionados

en

cada

generacin vuelve a la poblacin gentica preexistente, reemplazando a


algunos de los miembros menos aptos de la anterior generacin. Se
conservan algunos individuos entre generaciones.
5. Seleccin por Torneo
Se escogen de forma aleatoria un nmero de individuos de la poblacin,
y el que tiene puntuacin mayor se reproduce, sustituyendo su
descendencia al que tiene menor puntuacin.
6. 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.
7. 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.


8.

Otras Selecciones
Existen otras tcnicas de seleccin que simplemente se comentarn a
continuacin.
Una de ellas es la seleccin por prueba de aptitud en las que los
cromosomas con ms aptitud tienen ms posibilidad de ser
seleccionados pero no la certeza.
La seleccin

generacional

en la que ningn miembro

de la

poblacin anterior se encuentra en la nueva.


Reproduccin o Crossover
Una vez se realiza la seleccin

de los cromosomas

se procede a realizar la

reproduccin o cruce entre dos de estos cromosomas Ms

concretamente,

el

crossover consiste en el intercambio de material gentico entre dos cromosomas.


El objetivo del cruce es conseguir que el descendiente mejore la aptitud de sus
padres.
Para aplicar el cruce habr que seleccionar con anterioridad dos individuos de la
poblacin con una de las diversas tcnicas de seleccin que hemos mencionado
en el punto anterior. Adems esta seleccin puede elegir el mismo padre para un
descendiente. Esto no es ningn problema pues se asegura la perpetuacin del
cromosoma

ms

dominante

pero

si este cruce

se produjese

con mucha

frecuencia podra acarrear consecuencias adversas en caso de que ese cromosoma


dominante presente algunos genes no deseados. Hay diferentes formas de realizar
los cruces para cada codificacin

siendo algunas tcnicas aplicables

indistintamente a las distintas codificaciones como veremos a continuacin.


1.

Crossover 1 Punto

Los dos cromosomas


padres se cortan por un
punto.

Se

informacin

copia

la

gentica

de uno de los padres


desde el inicio hasta el
punto de cruce y el Figura 7.Crossover punto para codificacin en rbol.
resto se copia del otro progenitor. Es una de las formas clsicas de
crossover.

2. Crossover 2 Puntos
Se trata de la misma filosofa que en el caso anterior peo en este
caso los padres se cortan por dos puntos. Se copiar al
descendiente los genes de un cromosoma progenitor desde el
principio hasta el primer punto de cruce, los genes del otro
progenitor desde el primer punto de cruce hasta el segundo y del
segundo punto de cruce hasta el final se copiar del otro
progenitor.
Viendo unos ejemplos grficos:

Figura 8.Crossover 2 puntos para codificacin por valor directo

Figura 9.Crossover 2 puntos para codificacin binaria

3.Crossover Uniforme:

Cada gen del descendiente se obtiene de cualquiera de los padres


de forma aleatoria. Una opcin es generar un nmero aleatorio. Si
este nmero supera un cierto umbral se elegir un padre
determinado y si no lo supera se elige al otro.

Figura 10.Crossover uniforme para codificacin binaria.7

4. Crossover Aritmtico
Los progenitores se recombinan segn algn operador aritmtico
para generar su descendiente.

Figura 11.Crossover aritmtico genrico.

Mutacin
Tras el cruce, tiene lugar la mutacin.

Si nos referimos en trminos de

evolucin, la mutacin se manifiesta de forma extraordinaria, nada comn. Las


mutaciones suelen en promedio 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 ser el aumento del tamao de la poblacin o
garantizar la aleatoriedad de la poblacin inicial.
Para el caso de una codificacin binaria, la mutacin consiste simplemente en la
inversin del gen mutado que corresponder con un bit. En el caso de una
codificacin numrica, la mutacin podra consistir en sustituir un nmero por otro
o intercambiar un nmero por otro que est en otra posicin del cromosoma. En el
caso de codificacin por valor directo en el que por ejemplo usemos nmeros
reales, la mutacin puede consistir simplemente en modificar el valor en unos
decimales. Por ltimo, en una codificacin en rbol, la mutacin podra radicar en el
cambio de operador, de un nmero o incluso en la mutacin de una rama entera.

Figura 12.Mutacion de rama para una codificacin en rbol.

OTROS OPERADORES

En algunos problemas se pueden utilizar otro tipo de operadores que buscan


soluciones de forma ms ordenada o que actan en las ltimas fases para optimizar
la solucin.
1.

Cromosomas de longitud variable.

Puede suceder que para ciertas aplicaciones como en las redes


neuronales no se conozca de antemano el nmero de neuronas que
vamos a utilizar por lo que habr que disponer de alguna tcnica para
solventar el problema.
En estos casos,

necesitamos

dos operadores

ms:

aadir

eliminar. Estos operadores se utilizan para aadir un gen, o


eliminar

un gen del cromosoma.

La forma ms habitual es

duplicar uno ya existente, el cual sufre mutacin y se aade al lado


del anterior. En este caso, los operadores del algoritmo gentico
simple (seleccin, mutacin, crossover) funcionarn de la forma
habitual, salvo, claro est, que slo se har crossover en la zona del
cromosoma de menor longitud. Estos operadores permiten, adems,
crear un algoritmo gentico de dos niveles: a nivel de cromosoma y a
nivel de gen.
2.

Operadores de Nicho

Estos operadores estn encaminados a mantener la diversidad gentica


de la poblacin, de forma que cromosomas similares sustituyan slo a
cromosomas similares, y son especialmente tiles en problemas
con

muchas

operadores

soluciones.

Un

algoritmo gentico

con estos

es capaz de hallar todos los mximos, dedicndose

cada especie a un mximo. Ms que operadores genticos, son formas


de enfocar la seleccin y la evaluacin de la poblacin.
APLICACIONES DE LOS ALGORITMOS GENTICOS

La aplicacin ms comn de los algoritmos genticos ha sido la solucin de problemas


de optimizacin, en donde han mostrado ser muy eficientes. Sin embargo, no todos los
problemas pudieran ser apropiados para esta tcnica. Se recomienda en general tomar en
cuenta las siguientes caractersticas del mismo antes de intentar usarla:
Cabe destacar entre ellos:

Optimizacin: Se trata de un campo especialmente abonado para el uso de los


Algoritmos Genticos, por las caractersticas intrnsecas de estos problemas. No en
vano fueron la fuente de inspiracin para los creadores estos algoritmos. Los
Algoritmos Genticos se han utilizado en numerosas tareas de optimizacin,
incluyendo la optimizacin numrica, y los problemas de optimizacin

combinatoria.
Programacin automtica: Los Algoritmos Genticos se han empleado para
desarrollar programas para tareas especficas, y para disear otras estructuras

computacionales tales como el autmata celular, y las redes de clasificacin.


Aprendizaje mquina: Los algoritmos genticos se han utilizado tambin en muchas
de estas aplicaciones, tales como la prediccin del tiempo o la estructura de una
protena. Han servido asimismo para desarrollar determinados aspectos de sistemas
particulares de aprendizaje, como pueda ser el de los pesos en una red neuronal, las
reglas para sistemas de clasificacin de aprendizaje o sistemas de produccin

simblica, y los sensores para robots.


Economa: En este caso, se ha hecho uso de estos Algoritmos para modelizar
procesos de innovacin, el desarrollo estrategias de puja, y la aparicin de mercados

econmicos.
Sistemas inmunes: A la hora de modelizar varios aspectos de los sistemas inmunes
naturales, incluyendo la mutacin somtica durante la vida de un individuo y el
descubrimiento de familias de genes mltiples en tiempo evolutivo, ha resultado til

el empleo de esta tcnica.


Ecologa: En la modelizacin de fenmenos ecolgicos tales como las carreras de
armamento biolgico, la coevolucin de parsito-huesped, la simbiosis, y el flujo de

recursos.
Gentica de poblaciones: En el estudio de preguntas del tipo Bajo qu
condiciones ser viable evolutivamente un gene para la recombinacin?

Evolucin y aprendizaje: Los Algoritmos Genticos se han utilizado en el estudio de

las relaciones entre el aprendizaje individual y la evolucin de la especie.


Sistemas sociales: En el estudio de aspectos evolutivos de los sistemas sociales,
tales como la evolucin del comportamiento social en colonias de insectos, y la
evolucin de la cooperacin y la comunicacin en sistemas multi-agentes. Aunque
esta lista no es, en modo alguno, exhaustiva, s transmite la idea de la variedad de
aplicaciones que tienen los Algoritmos Genticos. Gracias al xito en estas y otras
reas, los Algoritmos Genticos han llegado a ser un campo puntero en la
investigacin actual.

Ambientes de Programacin
En la actualidad existe un gran nmero de ambientes de programacin disponibles en el
mercado para experimentar con los algoritmos genticos.
Se pueden distinguirse 3 clases de ambientes de programacin:
1) Sistemas Orientados a las aplicaciones: Son esencialmente "cajas negras" para el usuario,
pues ocultan todos los detalles de implementacin. Sus usuarios -normalmente nefitos en
el rea- los utilizan para un cierto rango de aplicaciones diversas, pero no se interesan en
conocer la forma en que stos operan. Ejemplos de este tipo de sistemas son: Evolver
(Axcelis, Inc.) y XpertRule GenAsys (Attar Software).
2) Sistemas Orientados a los algoritmos: Soportan algoritmos genticos especficos, y
suelen subdividirse en:
Sistemas de uso especfico: Contienen un solo algoritmo gentico, y se dirigen a una
aplicacin en particular. Algunos ejemplos son: Escapade (Frank Hoffmeister), GAGA
(Jon Crowcroft) y Genesis (John Grefenstette).
Bibliotecas: Agrupan varios tipos de algoritmos genticos, y diversos operadores ( distintas
formas de realizar la cruza y la seleccin). Evolution Machine (H. M. Voigt y J. Born) y
OOGA (Lawrence Davis) constituyen 2 ejemplos representativos de este grupo.

En estos sistemas se proporciona el cdigo fuente para que el usuario -normalmente un


programador- pueda incluir el algoritmo gentico en sus propias aplicaciones.
3) Cajas de Herramientas: Proporcionan muchas herramientas de programacin, algoritmos
y operadores genticos que pueden aplicarse en una enorme gama de problemas.
Normalmente se subdividen en:
Sistemas Educativos: Ayudan a los usuarios novatos a introducirse de forma amigable a los
conceptos de los algoritmos genticos. GA Workbench (Mark Hughes) es un buen ejemplo
de este tipo de ambiente.
Sistemas de Propsito General: Proporcionan un conjunto de herramientas para programar
cualquier algoritmo gentico y desarrollar cualquier aplicacin. Tal vez el sistema ms
conocido de este tipo es Splicer (NASA).

Ejemplo desarrollo:
Un grupo de financieros mexicanos ha resuelto invertir 10 millones de pesos en la nueva
marca de vino "Carta Nueva". As pues, en 4 ciudades de las principales de Mxico se
decide iniciar una vigorosa campaa comercial: Mxico en el centro, Monterrey en el
noroeste, Guadalajara en el occidente y Veracruz en el oriente. A esas 4 ciudades van a
corresponder las zonas comerciales I, II, III y IV. Un estudio de mercado ha sido realizado
en cada una de las zonas citadas y han sido establecidas curvas de ganancias medias, en
millones de pesos, en funcin de las inversiones totales (almacenes, tiendas de venta,
representantes, publicidad, etc.) Estos datos se ilustran en la tabla 2 y en la figura 4. Para
simplificar los clculos, supondremos que las asignaciones de crditos o de inversiones
deben hacerse por unidades de 1 milln de pesos. La pregunta es: en dnde se deben de
asignar los 10 millones de pesos de los que se dispone para que la ganancia total sea
mxima?
Inversin(Millones)
0
1
2

Beneficio I
0
0.28
0.45

Beneficio II
0
0.25
0.41

Beneficio

Beneficio

III

IV

0
0.15
0.25

0
0.20
0.33

0.65

0.55

0.40

0.42

0.78

0.65

0.50

0.48

0.90

0.75

0.62

0.53

1.02

0.80

0.73

0.56

1.13

0.85

0.82

0.58

1.23

0.88

0.90

0.60

1.32

0.90

0.96

0.60

10

1.38

0.90

1.00

0.60

Tabla 1.Datos obtenidos con la investigacin de mercado en cada una de las regiones
en estudio

1) Representacin: Para poder aplicar el algoritmo gentico, lo primero que necesitamos


determinar es cul ser el esquema a utilizarse para representar las posibles soluciones del
problema. En este caso necesitamos 4 bits (2^4 = 16) para representar cada solucin,
porque cada una admite 11 valores posibles (de 0 a 10). Como existen 4 valores
independientes (uno por cada zona de estudio), se requieren entonces 16 bits (4 x 4) por
cada cromosoma. Es importante hacer notar que se requiere una funcin de codificacin
(i.e., que transforme el valor de la inversin a binario) y una de decodificacin (i.e., que
realice el proceso inverso). Debido a que en este caso los 4 bits utilizados para representar
una solucin pueden producir ms valores de los que se necesitan, se usar una funcin de
ajuste que haga que los resultados producidos siempre se encuentren en el rango vlido.
2) Funcin de Aptitud: Dado que el objetivo es obtener las inversiones que sumen 10, y
que tengan un beneficio mximo, podemos usar la siguiente funcin de aptitud penalizada:
F ( x )=

c 1+c 2+c 3+ c 4
500V +1

donde c1, c2, c3 y c4 son las ganancias por zona, que se calculan de acuerdo a los valores
de la tabla 2, y v es el valor absoluto de la diferencia entre la suma obtenida de las
inversiones y 10. Ntese que cuando no se viole ninguna restriccin (i.e., cuando la suma
de inversiones sea exactamente 10) la funcin de aptitud no ser "castigada".
3) Operadores: Se usar una cruza de 2 puntos. La probabilidad que se dar a la misma
ser del 80%. En cuanto a la mutacin, se le asignar una probabilidad baja, que ser del

1%. El tamao de poblacin manejado para este ejemplo ser de 50 cromosomas, y se


correr el algoritmo gentico durante 20 generaciones.
4) Resultados: El resultado obtenido en una corrida tpica es un beneficio de 1.81 millones
de pesos, correspondiente a invertir 4 millones en la zona comercial I, 3 millones en la zona
II, 1 milln en la zona III y 2 millones en la zona IV. Esta es la solucin ptima, la cual se
obtuvo originalmente mediante programacin dinmica. El tiempo que le tom al algoritmo
gentico encontrar este valor fue de slo 13 segundos. Debe hacerse notar que, en este caso,
si deseramos analizar inversiones que sumen otra cantidad, y en unidades menores al
milln, el algoritmo gentico tendra que modificarse de manera mnima, mientras que la
programacin dinmica requerira una cantidad tal de trabajo que prcticamente se volvera
inoperante.

Casos de xito:
Geofsica
Sambridge y Gallaguer en 1993 utilizaron un algoritmo gentico para los hipocentros de
los terremotos basndose en datos sismolgicos. Esto es una tarea sumamente compleja, ya
que las propiedades de las ondas ssmicas dependen de las propiedades de las capas de roca
a travs de las que viajan. El mtodo tradicional para localizar el hipocentro se basa en lo
que se conoce como algoritmo de inversin ssmico, que empieza con la mejor estimacin
de la ubicacin, calcula las derivadas del tiempo de viaje de la onda con respecto al punto
de origen, y realiza una operacin de matriz para proporcionar una ubicacin actualizada.
Este proceso se repite hasta que se alcanza una solucin aceptable. Sin embargo, este
mtodo requiere informacin diferencial y es propenso a quedar atrapado en ptimos
locales.
Un algoritmo de localizacin que no dependa de informacin diferencial o modelos de
velocidad puede evitar esta deficiencia calculando slo el problema directo -la diferencia
entre los tiempos de llegada de la onda observados y predichos para distintas localizaciones
del hipocentro. Sin embargo, un mtodo de bsqueda exhaustivo basado en este mtodo
sera demasiado costoso computacionalmente. ste, por supuesto, es precisamente el tipo
de problema de optimizacin en el que destacan los algoritmos genticos. Como todos los

AGs, el propuesto por el artculo citado es paralelo en naturaleza -en lugar de mover un
solo hipocentro ms y ms cerca hacia la solucin, comienza con una nube de hipocentros
potenciales que encoge con el tiempo hasta converger en una sola solucin. Los autores
afirman que su mtodo ``puede localizar rpidamente soluciones casi ptimas sin una
bsqueda exhaustiva del espacio de parmetros'' , muestra ``un comportamiento muy
organizado que produce una bsqueda eficiente'' y es ``un compromiso entre la eficiencia
de los mtodos basados en derivadas y la robustez de una bsqueda exhaustiva
completamente no lineal'' . Los autores concluyen que su algoritmo gentico es ``eficiente
para una verdadera optimizacin global'' y ``una herramienta nueva y poderosa para
realizar bsquedas robustas de hipocentros.
Robtica
El torneo internacional RoboCup es un proyecto para promocionar el avance de la robtica,
la inteligencia artificial y los campos relacionados, proporcionando un problema estndar
con el que probar las nuevas tecnologas -concretamente, es un campeonato anual de ftbol
entre equipos de robots autnomos. (El objetivo fijado es desarrollar un equipo de robots
humanoides que puedan vencer al equipo humano de ftbol que sea campen del mundo en
2050; actualmente, la mayora de los equipos de robots participantes funcionan con ruedas).
Los programas que controlan a los miembros del equipo robtico deben exhibir un
comportamiento complejo, decidiendo cundo bloquear, cundo tirar, cmo moverse,
cundo pasar la pelota a un compaero, cmo coordinar la defensa y el ataque, etctera. En
la liga simulada de 1997, David Andre y Astro Teller inscribieron a un equipo llamado
Darwin United cuyos programas de control haban sido desarrollados automticamente
desde cero mediante programacin gentica, un desafo a la creencia convencional de que
``este problema es simplemente demasiado difcil para una tcnica como sa'' .
Para resolver este difcil problema, Andre y Teller le proporcionaron al programa gentico
un conjunto de funciones de control primitivas como girar, moverse, tirar, etctera. (Estas
funciones estaban tambin sujetas al cambio y refinamiento durante el curso de la
evolucin). Su funcin de aptitud, escrita para que recompensara el buen juego en general
en lugar de marcar goles expresamente, proporcionaba una lista de objetivos cada vez ms
importantes: acercarse a la pelota, golpear la pelota, conservar la pelota en el campo

contrario, moverse en la direccin correcta, marcar goles y ganar el partido. Debe sealarse
que no se suministr ningn cdigo para ensear especficamente al equipo cmo conseguir
estos objetivos complejos. Luego los programas evolucionados se evaluaron utilizando un
modelo de seleccin jerrquico: en primer lugar, los equipos candidatos se probaron en un
campo vaco y, si no marcaban un gol en menos de 30 segundos, se rechazaban. Luego se
evaluaron hacindoles jugar contra un equipo estacionario de ``postes pateadores'' que
golpeaban la pelota hacia el campo contrario. En tercer lugar, el equipo jugaba un partido
contra el equipo ganador de la competicin RoboCup de 1997. Finalmente, los equipos que
marcaron al menos un gol contra este equipo jugaron unos contra otros para determinar cul
era el mejor.
De los 34 equipos de su divisin, Darwin United acab en decimosptima posicin,
situndose justo en el medio de la clasificacin y superando a la mitad de los participantes
escritos por humanos. Aunque una victoria en el torneo sin duda habra sido ms
impresionante, este resultado es competitivo y significante de pleno derecho, y lo parece
an ms a la luz de la historia. Hace unos 25 aos, los programas informticos que jugaban
al ajedrez estaban en su infancia; por primera vez, una computadora haba sido inscrita
recientemente en una competicin regional, aunque no gan. Pero ``una mquina que juega
al ajedrez a un nivel medio de la capacidad humana es una mquina muy capaz, y podra
decirse que lo mismo es cierto para el ftbol robotizado. Si las mquinas de ajedrez actuales
compiten al nivel de los grandes maestros, qu tipo de sistemas producir la programacin
gentica dentro de 20 o 30 aos?
Astronoma y astrofsica
Charbonneau en 1995 sugiere la utilidad de los AGs para problemas de astrofsica,
aplicndolos a tres problemas de ejemplo: obtener la curva de rotacin de una galaxia
basndose en las velocidades rotacionales observadas de sus componentes, determinar el
periodo de pulsacin de una estrella variable basndose en series de datos temporales, y
sacar los valores de los parmetros crticos de un modelo magneto hidrodinmico del viento
solar. Son tres difciles problemas no lineales y multidimensionales.

El algoritmo gentico de Charbonneau, PIKAIA, utiliza seleccin generacional y


proporcional a la aptitud, junto con elitismo, para asegurar que el mejor individuo se copia
una vez hacia la siguiente generacin sin ninguna modificacin. PIKAIA tiene un ritmo de
cruzamiento de 0,65 y un ritmo de mutacin variable que se pone a 0,003 inicialmente y
luego aumenta gradualmente, mientras la poblacin se aproxima a la convergencia, para
mantener la variabilidad en el acervo gentico.
En el problema de la curva de rotacin galctica, el AG produjo dos curvas, y ambas
estaban bien ajustadas a los datos (un resultado comn en este tipo de problema, en el que
hay poco contraste entre cimas cercanas); observaciones posteriores pueden distinguir cul
es la preferible. En el problema de la serie temporal, el AG fue impresionantemente exitoso,
generando un ajuste de los datos de gran calidad, aunque otros problemas ms difciles no
se ajustaron tan bien (aunque, como seala Charbonneau, estos problemas son igualmente
difciles de resolver con tcnicas convencionales). El artculo sugiere que un AG hbrido
que emplee tanto evolucin artificial como tcnicas analticas estndar, podra funcionar
mejor. Finalmente, en el problema de obtener los seis parmetros crticos del viento solar, el
AG determin con xito el valor de tres con una precisin de menos del 0,1% y los otros
tres con precisiones entre el 1 y el 10%. (Aunque siempre seran preferibles unos errores
experimentales menores para estos tres parmetros, Charbonneau seala que no existe
ningn otro mtodo eficiente y robusto para resolver experimentalmente un problema no
lineal 6-dimensional de este tipo; un mtodo de gradiente conjugado funciona ``siempre
que se pueda proporcionar un valor inicial muy acertado. En contraste, los AGs no
requieren un conocimiento del dominio tan bien afinado).
Basndose en los resultados obtenidos hasta ahora, Charbonneau sugiere que los AGs
pueden y deben encontrar uso en otros problemas difciles de astrofsica, en particular,
problemas inversos como las imgenes por Doppler y las inversiones helio ssmicos. Para
terminar, Charbonneau sostiene que los AGs son un ``contendiente poderoso y prometedor''
en este campo, del que se puede esperar que complemente (no sustituya) a las tcnicas
tradicionales de optimizacin, y concluye que ``el punto decisivo, si es que tiene que haber
alguno, es que los algoritmos genticos funcionan, y a menudo colosalmente bien.

Conclusin:
Los algoritmos genticos son actualmente una fuerte fuente de resolucin de problemas
complejos al realizar su ejecucin en paralelo pudiendo as obtener diferentes soluciones al
problema.
Sin embargo, como se ha podido observar, no hay ninguna estrategia que sea siempre
invencible, sino que hay un conjunto de estrategias que suelen dar buenos resultados. As
pues, habr que ajustar los parmetros de accin en funcin de cada problema a modelar
para obtener una solucin que se adapte mejor a unas determinadas condiciones. Sin
embargo, en una situacin real puede suceder que no se conozcan los parmetros iniciales o
que no se sepa la duracin del algoritmo.
Por lo tanto habr que elegir con sumo cuidado los parmetros iniciales. Un crossover
elevado es recomendable para la mayora de los problemas aunque hay situaciones en las
que un crossover menor dar mejores resultados. La mutacin deber ser baja, entorno al
1%. Para una ptima resolucin, el resto de parmetros habr que determinarlos en funcin
del problema. La poblacin a elegir debe atender a un valor ptimo (no por tener una
poblacin mayor, se va a tener una solucin mejor), la codificacin depender del problema
a resolver como se ha visto con anterioridad y por ltimo el mtodo de seleccin ms
utilizado es el de seleccin por rueda de ruleta, aunque como se ha comentado, depender
de la cuestin que nos trate.
Por ltimo, se pretende que estos algoritmos se parezcan lo ms posible a lo que en realidad
sucede en la naturaleza. Por ejemplo, cuando una poblacin

queda aislada en la

naturaleza,

como sucede,

por

ejemplo,

diversidad

al haber un grupo reducido

con

los linces

que se reproduce

de Doana,

se pierde

entre si constantemente

perdindose esa tan necesaria diversidad para sobrevivir. De hecho se ha comprobado que
no evolucionan y que su adaptacin a las condiciones no mejora en funcin del cambio de
stas.
Por lo tanto hay que tener cuidado con la perdida de diversidad en nuestra poblacin, que se
puede conseguir entre otras formas mediante la mutacin.

Tema: Procesos heursticos de bsqueda


Introduccin:
La bsqueda heurstica en espacios de estados es una de las tcnicas clsicas de la
Inteligencia Artificial. Es una tcnica que permite resolver problemas de optimizacin
combinatoria incorporando conocimiento especfico del dominio problema.
A la hora de disear un sistema de bsqueda en espacios de estados para resolver un
determinado problema debemos considerar los siguientes componentes: los estados, las
reglas u operadores y la estrategia de control. Los estados representan las sucesivas
situaciones, o problemas residuales, por los que se pasa durante la resolucin de un
problema. Las reglas u operadores permiten pasar de un estado a otro, es decir obtener a
partir de un estado sus sucesores; el coste asociado a cada regla u operador depende de la
funcin objetivo del problema a resolver.
Cuando se desea resolver un problema de optimizacin existen dos maneras bsicas de
abordarlo, utilizando un mtodo exacto o mediante la aplicacin de mtodos heursticos.
Los mtodos exactos proporcionan una solucin ptima del problema y utilizan algoritmos
contrastados y de propsito general, tales como el mtodo simplex para resolver
programacin lineal, o el algoritmo de ramificacin y acotamiento utilizado en
programacin entera. Sin embargo, muchos de los problemas que se presentan en la
prctica no pueden ser resueltos mediante mtodos exactos; debido a su complejidad, el
tiempo requerido para hacerlo es extremadamente alto, aumentando exponencialmente con

el tamao del problema. A estos problemas se les conoce como difciles de resolver o en
lenguaje matemtico NP-hard. En contraposicin a los mtodos exactos, los mtodos
heursticos se limitan a proporcionar una buena solucin del problema, no necesariamente
ptima, pero en un tiempo de computacin aceptable. En problemas difciles de resolver,
han demostrado ser ms eficaces y encuentran buenas soluciones en forma mucho ms
rpida. El destacable xito de los mtodos heursticos para resolver problemas de
optimizacin de difcil solucin, especialmente aquellos que surgen en aplicaciones del
mundo real, ha causado una explosin de nuevas aplicaciones durante los ltimos aos.
Definicin de heurstica:
La idea ms general del trmino heurstica est relacionada con la tarea de resolver
inteligentemente problemas reales usando el conocimiento disponible. La palabra heurstica
proviene del griego Heurskein que puede traducirse por encontrar, descubrir, hallar .Una
definicin intuitiva es la propuesta por Zeneckis: Las heursticas son procedimientos
simples basados en el sentido comn que se supone que obtendrn una buena solucin (no
necesariamente la mejor) a un problema difcil de un modo sencillo y rpido. En
Investigacin de Operaciones, una heurstica es una tcnica de resolucin de problemas de
optimizacin (conformada por una regla o un conjunto de reglas) que busca buenas
soluciones a un costo computacional razonable, sin garantizar optimalidad. Una
caracterstica de los mtodos heursticos es que pueden encontrar una solucin de alta
calidad pero que no necesariamente es la ptima, e incluso, en muchos casos no se llega a
establecer lo cerca que est una solucin heurstica de la solucin ptima. En una primera
aproximacin puede parecer que existen serios inconvenientes relacionados al uso de los
mtodos heursticos, sin embargo, es necesario enfatizar que muchas tcnicas heursticas
brindan soluciones muy buenas en la prctica. Cabe destacar el inters creciente por el
estudio y aplicacin de procedimientos heursticos en Investigacin de Operaciones,
pasando de ser considerados pobres herramientas a instrumentos fundamentales y, en
muchos casos, imprescindibles para la resolucin prctica de un problema.
Cundo utilizar heursticas:

El uso de un procedimiento heurstico en lugar de un procedimiento exacto para resolver un


problema est especialmente indicado cuando:
1. El problema es de una naturaleza tal que no se conoce algn mtodo exacto para su
resolucin.
2. Aunque existe un mtodo exacto para resolver el problema, su uso es
computacionalmente muy costoso.
3. Se prefiere abordar, por medio de heursticas, una representacin ms ajustada del
problema planteado que una versin menos realista de tal problema que pueda resolverse de
forma exacta. Es decir, se prefiere resolver de forma aproximada un modelo ajustado a la
realidad que resolver de forma exacta un modelo aproximado de la realidad. En este
sentido, los mtodos heursticos son ms flexibles que los mtodos exactos, permitiendo la
incorporacin de condiciones de difcil modelizacin.
4. Se desea aumentar la eficiencia de un procedimiento exacto. En ese caso un mtodo
heurstico puede proporcionar una buena solucin inicial de partida o participa en un paso
intermedio del procedimiento, como por ejemplo, las reglas de seleccin de variables de
entrada en el mtodo simplex, o el establecimiento de cotas en el algoritmo de ramificacin
y acotamiento.
5. Se tiene que resolver repetidas veces un mismo problema, probablemente con datos
distintos. En estas circunstancias se requiere un procedimiento eficiente de resolucin que
suministre de forma rpida una solucin suficientemente buena.
Estas situaciones se presentan, por ejemplo, al tener que determinar diariamente valores de
las variables de inters.
Inconvenientes de las tcnicas heursticas
A pesar de que las heursticas son una alternativa excelente para resolver problemas de
difcil solucin, stas tambin adolecen de ciertas propiedades deseables. Un inconveniente
de la gran mayora de los mtodos heursticos es su dependencia de la estructura del
problema para el cual fue diseado, y su falta de habilidad para adaptarse a nuevas

situaciones o modificaciones del problema de partida. As, usan propiedades de la regin


factible y/o de la funcin objetivo o informacin a priori que hacen que los procedimientos
sean vlidos slo bajo esas condiciones. A diferencia de los mtodos exactos, no existe un
procedimiento conciso y preestablecido, independiente del problema. En los mtodos
heursticos las tcnicas e ideas aplicadas a la resolucin de un problema son especficas de
ste y aunque, en general, pueden ser trasladadas a otros problemas, han de particularizarse
en cada caso. Otro problema importante de los heursticos es su incapacidad para escapar
de ptimos locales. Una solucin heurstica para un problema podra corresponder o estar
muy cercana a un ptimo local y no a un ptimo global, ya que estos algoritmos pueden
quedarse atrapados en una zona del espacio de soluciones.
Tipos de Algoritmos Heursticos
En una primera clasificacin podemos decir que los algoritmos heursticos pueden ser:

Simples: tienden a tener reglas de terminacin bien definidas y se detienen en un


ptimo local.

Complejos: pueden no tener reglas de terminacin estndar y buscan soluciones


mejores hasta alcanzar un punto de parada arbitrario.

Dentro de los algoritmos heursticos complejos podemos hacer una segunda clasificacin,
esta vez orientada a la funcionalidad de los mismos:

Aquellos algoritmos que fueron diseados para dar solucin a problemas de


bsqueda de ptimos o clasificacin.

Aquellos algoritmos que tratan de deducir conocimiento a partir de un conjunto de


axiomas, conocidos como sistemas basados en el conocimiento.

Entre los algoritmos de bsqueda de ptimos se encuentran los siguientes mtodos:


1. Bsqueda Tab
2. Temple Simulado
3. Algoritmos Genticos

4. Redes Neuronales
Los sistemas basados en el conocimiento definen un rea muy concreta dentro de la
inteligencia artificial, conocida como Ingeniera del conocimiento. Los sistemas
desarrollados en este campo siguen un patrn heurstico similar al razonamiento humano.
Tema a desarrollar

Conclusin:
Los mtodos heursticos tienen un enorme potencial en la resolucin de problemas de
bsqueda, dada la complejidad implcita es este tipo de problemas. Los mtodos heursticos
estudiados en esta monografa han mostrado su efectividad en diferentes aplicaciones
citadas en la literatura, desde problemas de planificacin sencillos hasta problemas con
restricciones complejas tales como restricciones espaciales o no lineales. Asimismo, pueden
encontrar buenas soluciones a problemas de grandes dimensiones en un tiempo de
computacin aceptable. No es posible definir cul de los mtodos heursticos es mejor, ya
que su desempeo depende del problema particular que se est tratando, en algunas
aplicaciones puede resultar ms eficiente alguna de las tcnicas, pero esos resultados
pueden variar para otros casos. No obstante, al momento de seleccionar alguna de las
mtodos heursticos aqu tratados (Temple simulado, bsqueda tab y algoritmos genticos)
para resolver un problema, vale la pena conocer cules son las ventajas y las desventajas
que cada una de ellas puede presentar. El Temple simulado es una tcnica que generalmente
logra una buena calidad de la solucin, es decir el mnimo absoluto o un buen mnimo
relativo, adems es un mtodo general y fcil de implementar para resolver problemas de
optimizacin de diferente ndole. Sin embargo, requiere de muchos parmetros para los
cuales es necesario hacer ajustes empricos y los resultados son muy sensibles a los valores
de los parmetros. La bsqueda tab utiliza procedimientos de memoria adaptativa (se
actualiza en funcin del tiempo y del anlisis del entorno) que le permiten hacer una

bsqueda en el espacio de soluciones en forma efectiva y econmica, pudiendo entrar en


complejidades que usualmente son difciles de abordar con otros enfoques alternativos. Es
tcnica robusta ha mostrado muy buen desempeo en una amplia variedad de problemas, y
en muchos casos encuentra soluciones superiores a las obtenidas por otros mtodos. El
principal inconveniente es que existen muchas variantes de la bsqueda tab, por lo que en
algunos casos puede requerirse de un estudio cuidadoso para determinar cules son las
estrategias ms adecuadas para un problema determinado.
En cuanto a los algoritmos genticos, stos se han constituido como un mtodo heurstico
robusto con muchos campos de aplicacin que van ms all de la solucin de problemas de
optimizacin. Una de sus ventajas es que resultan menos afectados por los ptimos locales
que otras tcnicas, y adems, son fciles de entender y manipular. Su principal
inconveniente es que en algunos casos pueden tardar mucho en converger, o no converger
en absoluto. Las tcnicas de temple simulado, bsqueda tab y algoritmos genticos dieron
buenos resultados para los ejemplos de aplicacin expuestos en esta monografa.
En trminos de eficiencia y rapidez result mejor la bsqueda tab, seguida por el
algoritmo de temple simulado y el algoritmo gentico. Obtener diferentes soluciones
cercanas al ptimo puede ser una ventaja para el planificador, ya que tiene varias
alternativas para seleccionar aquella que sea ms conveniente de implementar en la
prctica; en ocasiones tener nicamente la solucin ptima puede ser problemtico a la hora
de llevar la solucin a la realidad. Lo que nos lleva a concluir que los mtodos heursticos
tratados tienen muchas ventajas al dar resultados a problemas complejos, y al aplicarlos en
la vida real nos brindara eficiencia y optimizacin en la bsqueda de soluciones en
cualquier rea que se desee aplicar.