You are on page 1of 6

En los años 1970, de la mano de John Henry Holland, surgió una de las líneas más

prometedoras de la inteligencia artificial, la de los algoritmos genéticos, (AG).1 Son


llamados así porque se inspiran en la evolución biológica y su base genético-molecular.

1. Definición
Los Algoritmos Genéticos (AGs) son métodos que pueden usarse para resolver
problemas de búsqueda y optimización. Están basados en el proceso genético
de los organismos vivos. A lo largo de las generaciones, las poblaciones
evolucionan en la naturaleza de acorde con los principios de la selección
natural y la supervivencia de los más fuertes, postulados por Darwin.

1.1. Genoma: El genoma es la totalidad de la información genética que


posee un organismo en particular.
Es como un manual de instrucción. Contiene todas las
instrucciones específicas que se utilizan para construir un
organismo vivo.

1.2. Genotipo: El genotipo es el contenido genoma específico de un


individuo, en forma de ADN. Junto con la variación ambiental que
influye sobre el individuo.
Toda la información contenida en los cromosomas se conoce como
genotipo.

1.3. Fenotipo: se refiere a la expresión del genotipo más la influencia


del medio, Realización visible del genotipo en un determinado ambiente.

1.4. Cromosoma: Los cromosomas son los portadores de la mayor


parte del material genético y condicionan la organización de la vida
y las características hereditarias de cada especie.

1.5. Gen: Un gen es un segmento corto de ADN, que le dice al cuerpo


cómo producir una proteína específica. Hay aproximadamente
30.000 genes en cada célula del cuerpo humano y la combinación
de todos los genes constituye el material hereditario para el cuerpo
humano y sus funciones.
La composición genética de una persona se llama genotipo.
1.6. Alelo: Un alelo es un valor para un gen. los alelos de ese gen
serían todos los posibles valores que puede tomar ese segmento
de cadena genética.
Un alelo es una variación específica de un gen que determina cómo van
a expresarse las características genéticas en el individuo
2. Ventajas
 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.
 Usan operadores aleatorios en vez de operadores determinísticos,
lo que hace que la convergencia de la técnica varíe con respecto al
tiempo.
 No requieren conocimientos específicos del problema para llevar
a cabo la búsqueda

3. Desventajas y Limitaciones
 Para problemas de alta complejidad la función de evaluación
puede tornarse demasiado costosa en términos de tiempo y
recursos.
 Puede haber casos en los cuales dependiendo los parámetros que se
utilicen para la evaluación el algoritmo podría no llegar a converger en
una solución óptima o bien terminar en una convergencia prematura
con resultados no satisfactorios.
 Se dice que no poseen una buena escalabilidad con la
complejidad, por ejemplo, para sistemas que están compuestos por
muchas variables, componentes o elementos su respectivo espacio de
búsqueda crece de manera exponencial.
 La "mejor" solución lo es solo en comparación a otras soluciones por
lo que no se tiene demasiado claro un criterio de cuándo detenerse ya
que no se cuenta con una solución específica.
 No es recomendable utilizarlos para problemas que buscan
respuesta a problemas que convergen en soluciones simples
como Correcto/Incorrecto ya que el algoritmo difícilmente convergerá
y el resultado será tan válido como escogerlo al azar.
 El diseño, la creación de la función de aptitud (fitness) y la selección
de los criterios de mutación entre otros, necesitan de cierta pericia y
conocimiento del problema para obtener buenos resultados.

4. Funcionamiento de un algoritmo genético básico


Un algoritmo genético puede presentar diversas variaciones,
dependiendo de cómo se aplican los operadores genéticos (cruzamiento,
mutación), de cómo se realiza la selección y de cómo se decide el
reemplazo de los individuos para formar la nueva población. En
general, el pseudocódigo consiste de los siguientes pasos:
a) Inicialización: Se genera aleatoriamente la población inicial, que está
constituida por un conjunto de cromosomas los cuales representan las
posibles soluciones del problema. En caso de no hacerlo
aleatoriamente, es importante garantizar que, dentro de la población
inicial, se tenga la diversidad estructural de estas soluciones para tener
una representación de la mayor parte de la población posible o al
menos evitar la convergencia prematura.
b) Evaluación: cada uno de los cromosomas de esta población se
aplicará la función de aptitud para saber cómo de "buena" es la
solución que se está codificando.
c) Condición de término: El AG se deberá detener cuando se alcance
la solución óptima, pero esta generalmente se desconoce, por lo que
se deben utilizar otros criterios de detención. Mientras no se cumpla la
condición de término se hace lo siguiente:
 Selección: Después de saber la aptitud de cada cromosoma se
procede a elegir los cromosomas que serán cruzados en la
siguiente generación. Los cromosomas con mejor aptitud tienen
mayor probabilidad de ser seleccionados.
 Recombinación o cruzamiento: La recombinación es el
principal operador genético, representa la reproducción sexual,
opera sobre dos cromosomas a la vez para generar dos
descendientes donde se combinan las características de ambos
cromosomas padres.
 Mutación: Modifica al azar parte del cromosoma de los
individuos, y permite alcanzar zonas del espacio de búsqueda
que no estaban cubiertas por los individuos de la población
actual.
 Reemplazo: Una vez aplicados los operadores genéticos, se
seleccionan los mejores individuos para conformar la población
de la generación siguiente.

Algoritmo genético
i: inicialización
f(X): evaluación
?: condición de término
Se: selección
Cr: cruzamiento
Mu: mutación
Re: reemplazo
X*: mejor solución.

5. Operadores de un Algoritmo Genético


5.1. Operador de cruce: Tratan de crear una generación de individuos
nuevos (offspring) pidiendo información a sus ancestros.
a) Cruce en un punto
Se copian los genes del primer padre hasta el punto de corte y
se rellena con el resto de elementos que hagan la solución
válida en el orden en que aparecen en el segundo padre
considerando la cadena de genes como cíclica.

11001011+11011111 = 11001111

b) Cruce en dos puntos


Se copian los genes del primer padre comprendidos entre los
dos puntos de cruce y se rellenan los que faltan con los del
segundo padre considerando la cadena de genes como cíclica.

11001011 + 11011111 = 11011111


5.2. Operadores de Mutación
a) Inversión de genes
Se seleccionan genes aleatoriamente y se invierte su valor. Se
utiliza en representaciones de bits, cambiando 0s por 1s o
viceversa.

11001001 => 10001001

b) Cambio de orden
Se seleccionan dos genes aleatoriamente y se intercambian
sus posiciones. Se utiliza en representaciones basadas en
permutaciones.

(1 2 3 4 5 6 8 9 7) => (1 8 3 4 5 6 2 9 7)

5.3. Operadores de Aceptación


Después de realizar el cruce y la mutación de los individuos de la
población llega el momento de decidir si aceptamos los hijos
generados.
a) Aceptación Total
Es la manera más comúnmente utilizada, todos los hijos
generados son aceptados y pasan a formar parte de la nueva
población.
b) De mejora
Los hijos pasan a la nueva población si son mejores que los
peores individuos de la población actual
c) Por torneo
Podemos realizar un torneo, de selección entre los hijos y los
peores individuos de la población actual y son los de mayor
fitness los que pasan a la nueva población.

6. Aplicaciones en el mundo real


El algoritmo genético tiene muchas aplicaciones en el mundo real.

Diseño de ingeniería
El diseño de ingeniería se ha basado en gran medida en la simulación y
el modelado de computadoras para que el proceso del ciclo de diseño sea
rápido y económico.
El algoritmo genético se ha utilizado para optimizar y proporcionar una
solución robusta.

Enrutamiento de tráfico y envío (Problema del vendedor ambulante)


Este es un problema famoso y ha sido adoptado de manera eficiente por
muchas compañías basadas en ventas ya que ahorra tiempo y es
económico. También se puede solucionar usando un algoritmo genético.

Robótica
El uso del algoritmo genético en el campo de la robótica es bastante
grande. En la actualidad, el algoritmo genético se utiliza para crear robots
de aprendizaje que se comportarán como humanos y realizarán tareas
más humanas y no tan automatizables.

You might also like