1. ALGORITMOS GENÉTICOS
Los algoritmos genéticos nacieron con el planteamiento de crear un
algoritmo con la misma filosofía que emplea la naturaleza en la
selección natural. La idea básica es la siguiente: generemos un conjunto
con algunas de las posibles soluciones. Cada una va a ser
llamada individuo, y a dicho conjunto se le denominará población.
Cada individuo tiene una información asociada a él. A dicha
información se la va a denominar código genético. En un problema de
optimización corresponde a las variables libres, es decir, aquellas a las
que el algoritmo tiene que asignar un valor para que una función sea
mínima o máxima para esos valores. Esta función se denominará función
de adaptación y determina el grado de adaptación de un individuo.
Los algoritmos genéticos son métodos estocásticos de búsqueda ciega
de soluciones quasióptimas.
2. CLASES DE ALGORITMOS GENÉTICOS
ALGORITMOS GENÉTICOS GENERACIONALES
Se asemejan a la forma de reproducción de los insectos, donde una
generación pone huevos, se aleja geográficamente o muere y es
substituida por una nueva. En este momento se realizan cruces en una
piscina de individuos, los descendientes son puestos en otra, al final de
la fase reproductiva se elimina la generación anterior y se pasa a utilizar
la nueva. Este modelo también es conocido como Algoritmo Genético
Canónico.
Algoritmos Genéticos de estado Fijo.
Utilizan el esquema generacional de los mamíferos y otros animales de
vida larga, donde coexisten padres y sus descendientes, permitiendo
que los hijos sean educados por sus progenitores, pero también que a la
larga se genere competencia entre ellos. En este modelo, no solo se
deben seleccionar los dos individuos a ser padres, si no también cuales
de la población anterior serán eliminados, para dar espacio a los
descendientes..
3. Algoritmos Genéticos Paralelos.
donde al evolucionar se recorren simultáneamente muchas
soluciones, cada una representada por un individuo de la
población. Sin embargo, es muy común en la naturaleza que no
solo sea una población evolucionando, si no varias poblaciones.
Modelos de Islas.
Si se tiene una población de individuos, esta se divide en
subpoblaciones que evolucionan independientemente como un
Algoritmo Genético normal.
Modelo Celular
Coloca cada individuo en una matriz, donde cada uno sólo podrá
buscar reproducirse con los individuos que tenga a su alrededor
(mas cerca de casa) escogiendo al azar o al mejor adaptado.
4. ELEMENTOS DE UN ALGORITMO GENETICO
Individuo
Un individuo es un ser que caracteriza su propia especie. El individuo es un
cromosoma y es el codigo de información sobre el cual opera el algoritmo. Cada
solución parcial del problema a optimizar está codificada en forma de cadena o String
en un alfabeto determinado, que puede ser binario.
Población
A un conjunto de individuos (Cromosomas) se le denomina población. El método de
A.G´s consiste en ir obteniendo de forma sucesiva distintas poblaciones. Por otra
parte un Algoritmo Genético trabaja con un conjunto de puntos representativos de
diferentes zonas del espacio de búsqueda y no con un solo punto (como lo hace
Hillclimbing).
Función Fitness.
La única restricción para usar un algoritmo genético es que exista una función
llamada fitness, que le informe de cuan bueno es un individuo dado en la solución de
un problema. Esta función fitness o de evaluación es el principal enlace entre el
Algoritmo Genético a un problema real, es la efectividad y eficiencia de la función
fitness que se tome, por lo tanto debe procurarse que la función fitness sea similar
5. ESTRUCTURA DE UN ALGORITMO GENÉTICO
Un AG esta compuesto, para su funcionamiento, básicamente por:
Codificación: los elementos característicos del problema se pueden representar
de tal forma que resulte sencilla su implementación y comprensión.La
codificación más común es a través de cadenas binarias
Población inicial: para constituir la población inicial, que será la
población base de las sucesivas generaciones, existen varios métodos.
Suele ser concebida aleatoriamente.
Función fitness: asigna a cada cromosoma un número real, que refleja el nivel
de adaptación al problema del individuo representado por el cromosoma.
Es la base para determinar qué soluciones tienen mayor o menor
probabilidad de sobrevivir.
Selección: es el proceso por el cual se eligen una o varias parejas de
individuos de la población inicial para que desempeñen el papel de
progenitores
Cruzamiento: el operador cruce permite el intercambio de información entre
individuos de una población.
Mutación: el operador mutación se aplica tras el cruce con el objetivo de
incrementar la diversidad poblacional. Se define como una variación
elemental de las informaciones contenidas en el código genético.
6. VENTAJAS DE LOS ALGORITMOS GENÉTICOS
VENTAJAS DE LOS ALGORITMOS GENÉTICOS
• Una clara ventaja es que los algoritmos genéticos son intrínsecamente paralelos, es
decir, operan de forma simultánea con varias soluciones, en vez de trabajar de forma
secuencial como las técnicas tradicionales. Esto significa que mientras técnicas
tradicionales sólo pueden explorar el espacio de soluciones hacia una solución en una
dirección al mismo tiempo, y si la solución que descubren resulta subóptima, no se
puede hacer otra cosa que abandonar todo el trabajo hecho y empezar de nuevo.
• Cuando se usan para problemas de optimización resultan menos afectados por los
máximos locales (falsas soluciones) que las técnicas tradicionales.
Muchos algoritmos de búsqueda pueden quedar atrapados en los óptimos locales: si
llegan a lo alto de una colina del paisaje adaptativo, descubrirán que no existen
soluciones mejores en las cercanías y concluirán que han alcanzado la mejor de
todas, aunque existan picos más altos en algún otro lugar del mapa, situación que no
sucede para algoritmos genéticos.
• Otra ventaja es su habilidad para manipular muchos parámetros simultáneamente.
Resulta interesante en caso de tener varios objetivos a resolver.
• No necesitan conocimientos específicos sobre el problema que intentan resolver.
Realizan cambios aleatorios en sus soluciones candidatas y luego utilizan la función
de aptitud para determinar si esos cambios producen una mejora o no.
• Resulta sumamente fácil ejecutarlos en las modernas arquitecturas masivas en
paralelo.
• Usan operadores probabilísticos, en vez de los típicos operadores determinísticos de
las otras técnicas.
7. ALGUNAS APLICACIONES DE LOS ALGORITMOS GENÉTICOS
. Cabe destacar entre ellos:
Optimización: Se trata de un campo especialmente abonado para el uso de los
Algoritmos Genéticos, por las características intrínsecas de estos problemas.
Programación automática: Los Algoritmos Genéticos se han empleado para
desarrollar programas para tareas específicas, y para diseñar otras estructuras
computacionales.
Aprendizaje máquina: Los algoritmos genéticos se han utilizado también en muchas
de estas aplicaciones, tales como la predicción del tiempo o la estructura de una
proteína.
El operador de selección
Para aplicar los operadores genéticos tendremos que seleccionar un subconjunto de la
población. Algunas de las técnicas que disponemos son:
Selección directa: toma elementos de acuerdo a un criterio objetivo, como son «los x
mejores», «los x peores»... los del tipo «el cuarto individuo a partir del último
escogido» son empleados con mucha frecuencia cuando se quieren seleccionar dos
individuos distintos, y se selecciona el primero por un método aleatorio o estocástico.
8. EL OPERADOR DE SELECCIÓN
Para aplicar los operadores genéticos tendremos que seleccionar un subconjunto de la población.
Algunas de las técnicas que disponemos son:
Selección directa: toma elementos de acuerdo a un criterio objetivo, como son «los x mejores»,
«los x peores»... los del tipo «el cuarto individuo a partir del último escogido» son empleados con
mucha frecuencia cuando se quieren seleccionar dos individuos distintos.
Selección aleatoria: puede ser realizado por selección equiprobable o selección estocástica.
Selección equiprobable: todos tienen la misma probabilidad de ser escogidos. Por ejemplo, en
nuestro algoritmo la madre en el cruce es escogida con probabilidad equiprobable.
Selección estocástica: la probabilidad de que un individuo sea escogido depende de una
heurística. Los distintos procedimientos estocásticos son:
Selección por sorteo: cada individuo de la población tiene asignado un rango proporcional -o
inversamente proporcional
Selección por escaños: se divide el rango del número aleatorio en un número predeterminado de
escaños
Selección por restos estocásticos: igual que el método de selección de escaños, sólo que los
escaños no asignados directamente
Por ruleta: definimos un rango con las características de la selección por sorteo. El número al azar
será un número aleatorio forzosamente menor que el tamaño del rango
Por torneo: escoge un subconjunto de individuos de acuerdo con una de las técnicas anteriores -
habitualmente, aleatoria o estocástica
9. EL OPERADOR DE CRUCE
Se denomina operador de cruce a la forma de calcular el genoma del
nuevo individuo en función del genoma del padre y de la madre.
Cruce básico: se selecciona un punto al azar de la cadena. La parte
anterior del punto es copiada del genoma del padre y la posterior del de
la madre.
ruce multipunto: igual que el cruce básico, sólo que estableciendo más
de un punto de cruce.
Cruce segmentado: existe una probabilidad de que un cromosoma sea
punto de un cruce.
Cruce uniforme: para cada gen de la cadena del descendiente existe
una probabilidad de que el gen pertenezca al padre, y otra de que
pertenezca a la madre.
10. El operador de mutación
Se define mutación como una variación de las informaciones contenidas en el
código genético -habitualmente, un cambio de un gen a otro producido por algún
factor exterior al algoritmo genético.
Algunas de las razones que pueden motivar a incorporar son:
Desbloqueo del algoritmo. Si el algoritmo se bloqueó en un mínimo parcial, una
mutación puede sacarlo al incorporar nuevos fenotipos de otras zonas del espacio.
Incrementar el número de saltos evolutivos. Los saltos evolutivos -aparición de un
fenotipo especialmente valioso, o, dicho de otra forma, salida de un mínimo local
Enriquecer la diversidad genética. Es un caso más suave que el de una población
degenerada -por ejemplo, que la población tenga una diversidad genética
Existen varias técnicas distintas de mutación. Algunas de éstas son:
Mutación de bit: existe una única probabilidad de que se produzca una mutación de
algún bit. De producirse, el algoritmo toma aleatoriamente un bit
Mutación de gen: igual que la mutación de bit, solamente que, en vez de cambiar un
bit, cambia un gen completo
Mutación multigen: igual que la mutación de multibit, solamente que, en vez de
cambiar un conjunto de bits