Sunteți pe pagina 1din 1

Algoritmos genticos

Bueno, hoy vamos a hablar sobre los algoritmos genticos (a partir de ahora AG). La idea bsica de los AG es
la de resolver los problemas de la misma manera que lo hace la naturaleza. Para ver esto mejor voy a usar una
pequea historia:
Hace mucho tiempo, haba una pequea colonia de bhos que estaban desde siempre estaban en una pequea
cueva donde no entraba ni un rayo de sol, y por tanto no tenan la necesidad de unos ojos. El agua
la obtenan de un pequeo lago que haba en el medio, y la comida del musgo que creca al rededor. Todo era
perfecto para ellos, ya que ah dentro no tenan ningn depredador que les pudiera atacar. Pero un da hubo un
pequeo terremoto, y una de las paredes se desprendi, dando lugar a una abertura por donde entraba el sol, y
por primera vez sintieron el calor de sus rayos. Unos pocos aventureros salieron en busca de ms comida,
pero no solo encontraron eso, sino tambin unas guilas que se llevaron a algunos. En la siguiente generacin
de bhos unos pocos nacieron con una mutacin en sus genes, que les hizo tener una
pequea membrana sensitiva a la luz, que les ayud a saber si fuera haba depredadores, pero todava estaba
muy poco desarrollada. Esta ventaja sobre el resto signific que no murieron en el exterior, eran ms fuertes,
y por tanto los bhos hembra les preferan para hacer hijitos, por lo que esta membrana
se sigui desarrollando en siguientes generaciones, dando lugar a unos ojos muy tiles.
Esto, ms all de ser una simple historia ha introducido muchos de los trminos que vamos a utilizar. Estos
son:
Cromosoma: es un conjunto de genes. Para nosotros una persona tendra un solo gen.
Gen: Es donde se codifica la informacin sobre esa persona. En esta historia los genes de
los bhos pueden ser, el color de las alas, el nmero de alas,
Aptitud: Esto es la cercana a la resolucin del problema. En el caso de los bhos el problema era
encontrar una manera de detectar a las guilas. Cuanto mayor sea la aptitud mayor sera la
probabilidad de que hagan bebes que pasen a la siguiente generacin.
Creacin de la nueva generacin: Este es el proceso ms complejo que hay en todo el AG. Se
divide en varias partes:
1. La ruleta de la suerte: Aqu se deciden los padres, que tienen ms posibilidad de ser elegidos si
su aptitud es mayor, dado que son mejores.
2. El cruce: En este paso se eligen el nmero de genes de cada padre que llevaran los hijos, que
depende de la tasa de cruce, un nmero con el que se eligen las partes que se tomarn.
3. Mutacin: Existe una pequea posibilidad de que un gen cambie por completo. En el caso de los
bhos si el gen del nmero de alas mutara, el bho podra tener 3 alas, o ninguna. Esto depende de la
tasa de mutacin.
Todo esto esta muy bien, os diris, pero, por que me merece la pena usar esto en vez de una, por ejemplo,
FSM?. Para responder a esto voy a usar un ejemplo de un juego para el que necesitamos un sistema de IA:
Imagina que tenemos un juego al estilo WoW. Tiene un sistema de lucha de personajes complejo, incluyendo
clases, razas, profesiones que mas tarde aprenda, armas que pueda utilizar, armaduras muy diferentes, ,
a dems de la posibilidad de que se ataque en grupo o en separado. La FSM que tratara todo esto sera
grandsima, y si quisiramos aadir algo nuevo habra que reescribirla, algo horroroso y que, al menos a mi,
me hara mandarlo todo a la mi . Pero esto es evitable si tenemos un AG sencillo que se adapte y amolde al
jugador sin supervisin alguna. Creo que queda claro su ventaja, no? :-) .
Tambin esto tiene partes difciles, pero para el nivel al que nos vamos a centrar solo hay una, el decidir como
asignamos la aptitud, pero ya esta, el resto va como la seda. Os animo a que probis, mientras publico las
siguientes partes, a practicar con alguna cosilla. No hace falta que sea programando, sino simplemente tomar
un problema cualquiera y pensar como representarlo, la manera de asignar la aptitud a ese problema en
concreto, como codificar los genes, .
Para esta guia introductoria vamos a usar un problema ms sencillo que el de arriba. Si habis ledo mi
anterior artculo probablemente ya sabris qu sera lo tenis?, bueno, si no sabis a lo que me refiero lo
que vamos a implementar es un AG para encontrar un camino, como haramos con el A*, pero sin pedir que
el camino sea el ms corto posible.
Bueno, de momento esto es lo que tenis que saber sobre los algoritmos genticos, solo queda comenzar la
escritura del cdigo, algo que haremos en el siguiente captulo. As que, hasta la prxima!.

S-ar putea să vă placă și