You are on page 1of 12

ALGORTIMOS GENETICOS

FERNANDO MEJA

ESQUEMA GENERAL
DE UN ALGORITMO
GENETICO

SEUDOCODIGO

Individuos y su representacin

Reproduccin y mutacin

Mutacin

Que es eso de que un individuo es


suficientemente bueno?
Como se ha comentado los Algoritmos Evolutivos sirven para
resolver problemas de optimizacin combinatoria, pero tambin
se ha de decir que no siempre alcanzan la mejor solucin, por lo
tanto hay que definir un umbral a partir del cual consideramos
que la solucin que buscamos es lo suficientemente buena. Este
umbral se ha de obtener a partir de una funcin de evaluacin
que se ha de definir siempre que se utilicen algoritmos evolutivos.
Esta funcin de evaluacin es conocida como Funcin de
Fitness aunque tambin se le suele denominar funcin de calidad,
funcin de aptitud o funcin objetivo.

Que es eso de que un individuo es


suficientemente bueno?

Como deca, esta funcin de fitness evaluar lo bueno o


malo que es un individuo (o posible solucin del
problema) por lo tanto con esta funcin podemos
utilizar dos estrategias para obtener la mejor solucin al
problema en funcin del conocimiento que tengamos
del problema:

Que es eso de que un individuo es


suficientemente bueno?
Sino tenemos mucha idea de la solucin que nos dar el
problema, pondremos el algoritmo evolutivo a ejecutarse
hasta que complete N generaciones y en la generacin N
evaluaremos todos los individuos con la funcin de fitness y
cogeremos como solucin el individuo que mejor resultado
nos haya dado con la funcin de fitness.
La segunda estrategia se utiliza cuando sabemos el umbral de
calidad que queremos alcanzar para la solucin del problema.
En este caso se irn ejecutando generaciones (una por una) y
tras cada generacin se evaluaran todos los individuos con la
funcin de fitness y si alguno cumple un determinado umbral
de calidad, se parar de ejecutar el algoritmo, al haber
alcanzado una buena solucin.

CONCLUSION
Hasta este punto hemos intentado explicar (a grandes rasgos) en que consiste
la Computacin Evolutiva a nivel terico. Hay que decir que la CE es una rama de
la inteligencia artificial muy interesante (sobre todo a los que nos gusta la
inteligencia artificial) pero tambin se ha de dejar muy claro que no es la
panacea y que no se ha de aplicar la CE para resolver cualquier problema ya
que la CE no da los mejores resultados posibles a un problema aunque si puede
dar un resultado bueno o decente a determinados problemas de los que no
tenemos ni idea. Con esto quiero decir que a la hora de resolver un problema
hay que analizarlo bien y ver como se pueden alcanzar las mejores soluciones.
Existen algoritmos como el Backtracking (que mucho hemos sufrido ) que nos
da la mejor solucin para un problema de optimizacin combinatoria siempre
que este problema tenga un espacio de bsqueda tratable y finito y para esos
casos es mejor utilizar este algoritmo que no un algoritmo evolutivo. Si el
problema tuviese una gran cantidad de datos que el Backtracking no pudiese
darnos los resultados en un tiempo prudencial si que se podra utilizar los
algoritmos evolutivos.

RECOMENDACIN

Otra de las aplicaciones errneas que me he encontrado es la


de utilizar algoritmos genticos para encontrar el mnimo de
una determinada funcin. Para resolver este problema es tan
sencillo como derivar la funcin e igualarla a cero para
obtener su mnimo. Este ejemplo lo digo porque en mucho
sitios se ponen ejemplos didcticos de como obtener el
mnimo de una funcin con algoritmos evolutivos, y
precisamente la mejor forma de entender un algoritmo
evolutivo es solucionando este tipo de problemas, que por
algo son ejemplos didcticos pero no son ejemplo
eficientes, as que cuidado con la utilizacin de estos
algoritmos.

REFERENCIAS
http://bioinformatica.uab.es/base/base3.asp?sitio=gen
eticapoblaciones&anar=selecc&item=fitness
http://www.herrera.unt.edu.ar/gapia/Curso_AG.html
http://www.it.uc3m.es/jvillena/irc/practicas/0607/05.pdf

You might also like