V. Operadores del AG


Panorama general

Como puede verse en el esquema del algoritmo genetico, el cruce y la mutacion estan entre las partes mas importantes de un algoritmo genetico. Su rendimiento esta influido principalmente por estos dos operadores. Antes de explicar el cruce y la mutacion con mas detalle, conviene decir algunas cosas sobre los cromosomas.



Codificacion de un cromosoma

De alguna manera, un cromosoma debe contener informacion sobre la solucion que representa. La codificacion que se usa con mayor frecuencia es una cadena binaria. Un cromosoma podria verse asi:

Cromosoma 1 1101100100110110
Cromosoma 2 1101111000011110

Cada cromosoma tiene una cadena binaria. Cada bit de esa cadena puede representar alguna caracteristica de la solucion. O toda la cadena puede representar un numero; eso es lo que se uso en el demostracion basica del AG.

Por supuesto, hay muchas otras formas de codificacion. Esto depende principalmente del problema que se este resolviendo. Por ejemplo, se pueden codificar numeros enteros o reales; a veces tambien es util codificar algunas permutaciones, etcetera.


Cruce

Despues de decidir que codificacion usar, podemos pasar al cruce. El cruce selecciona genes de los cromosomas progenitores y crea nueva descendencia. La forma mas sencilla de hacerlo es elegir un punto de cruce aleatorio, copiar todo lo que esta antes de ese punto del primer progenitor y luego copiar todo lo que esta despues de ese punto del segundo progenitor.

El cruce puede verse asi (| es el punto de cruce):

Cromosoma 1 11011 | 00100110110
Cromosoma 2 11011 | 11000011110
Descendencia 1 11011 | 11000011110
Descendencia 2 11011 | 00100110110

Hay otras maneras de realizar el cruce. Por ejemplo, podemos elegir mas de un punto de cruce. El cruce puede llegar a ser bastante complicado, y depende mucho de la codificacion del cromosoma. Un metodo de cruce disenado para un problema especifico puede mejorar el rendimiento del algoritmo genetico.


Mutacion

Despues de realizar el cruce, ocurre la mutacion. Su objetivo es evitar que toda la poblacion caiga en un optimo local del problema que se esta resolviendo. La mutacion cambia aleatoriamente la nueva descendencia. Para la codificacion binaria, podemos cambiar unos pocos bits elegidos al azar de 1 a 0 o de 0 a 1. La mutacion puede verse asi:

Descendencia original 1 1101111000011110
Descendencia original 2 1101100100110110
Descendencia mutada 1 1100111000011110
Descendencia mutada 2 1101101100110100

Al igual que el cruce, la mutacion depende de la codificacion. Por ejemplo, cuando estamos codificando permutaciones, la mutacion podria significar intercambiar dos genes.

·