0% encontró este documento útil (0 votos)
95 vistas50 páginas

03 Algoritmos Genéticos

Este documento describe los conceptos fundamentales de los algoritmos genéticos. Explica que los algoritmos genéticos se inspiran en la evolución biológica y la selección natural de Darwin. Define conceptos clave como individuos, genes, cromosomas y población, y cómo estos se usan para representar y explorar soluciones a problemas de optimización. Finalmente, destaca que los algoritmos genéticos son útiles para resolver problemas complejos gracias a su capacidad de búsqueda múltiple y su independencia de la posición inicial.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
95 vistas50 páginas

03 Algoritmos Genéticos

Este documento describe los conceptos fundamentales de los algoritmos genéticos. Explica que los algoritmos genéticos se inspiran en la evolución biológica y la selección natural de Darwin. Define conceptos clave como individuos, genes, cromosomas y población, y cómo estos se usan para representar y explorar soluciones a problemas de optimización. Finalmente, destaca que los algoritmos genéticos son útiles para resolver problemas complejos gracias a su capacidad de búsqueda múltiple y su independencia de la posición inicial.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 50

UNIVERSIDAD NACIONAL DE SAN ANTONIO ABAD DEL CUSCO

03.
ALGORITMOS
GENÉTICOS

DEPARTAMENTO ACADÉMICO DE ING. INFORMÁTICA


ÁREA DE INTELIGENCIA ARTIFICIAL
Algoritmos evolutivos
“He llamado a este principio, por el cual, cada pequeña variación, si es útil,
se conserva, por el termino de la selección natural …. La expresión utilizada
a menudo por Mr. Herbert Spencer de la supervivencia del más apto es más
exacta, y a veces es igualmente conveniente”.
CHARLES DARWIN
On the Origin of Species bye means of Natural Selection, 1859
Computación evolutiva
La ciencia surge del deseo de entender el mundo y
aprovechar sus recursos. A lo largo de la historia, se han
construido poco a poco una montaña de conocimientos.
Durante años se han desarrollado medios cada vez más
complejos que buscan el bienestar en nuestras vidas y
mejorar nuestras interacciones con la naturaleza.

La ciencia basada en la biología ha tenido desde


siempre sus altibajos, desde principios de los 50s y en
los 60s muchos científicos estudiaron los sistemas
evolutivos con finalidad de emplearlos como
herramientas de optimización para resolver problemas
de ingeniería utilizando operadores inspirados en la
variación genética y selección natural.
Computación evolutiva
La Computación evolutiva fue introducida en la década de 1960
por I. Rechenberg en el trabajo "Estrategias de la evolución".
Esta idea fue desarrollada luego por otras investigaciones. Fue
inventado por John Holland quien desarrolló esta idea en su
libro genética de algoritmos (AGs).
"La adaptación en sistemas naturales y artificiales" en el año
1975. Holland propone los GA como un método heurístico
basado en "La supervivencia del más apto".
Rechenberg (1965, 1973) en los 60 presentó un método de
"estrategias de la evolución" que sirve para optimizar
parámetros “real−valued”; idea que fue desarrollada por
Schwefel (1975, 1977). Hoffmeister y Schwefel 1991 presentan
una síntesis de estrategias de la evolución.
Otros científicos como Fogel y Atmar (1993) plantean una
formulación algo más amplia de la programación evolutiva. Así
las Estrategias de evolución, la Programación evolutiva y los
algoritmos genéticos son la base de la computación evolutiva.
Computación evolutiva
La computación evolutiva es una de las ramas de la Inteligencia Artificial que se aplica a la resolución de problemas de
optimización combinatoria. Está inspirada en los mecanismos de evolución biológica propuestos por Darwin, Medel y
Lamark. Darwin propuso la "Selección natural de los más adaptados", Medel propuso la "Teoría corpuscular de la herencia"
y Lamark propuso la "Herencia de caracteres adquiridos".
Algoritmos genéticos – Bases biológicas
Célula
La célula es la estructura más pequeña capaz de
realizar por sí misma las tres funciones vitales:
nutrición, relación y reproducción. Todos los
organismos vivos están formados por células y
algunos por una sola célula, como las bacterias y
los protozoos. Las plantas, los animales y los
hongos son organismos pluricelulares, es decir,
están formados por numerosas.
Una de las funciones de la célula es transporta
moléculas de un lugar a otro con el fin de
mantener las funciones vitales. Además, las
células poseen una capacidad notable para unirse,
comunicarse y coordinarse entre ellas. Un ejemplo
es el cuerpo humano que está formado por unos
60 billones de células de distintos tipos.
Algoritmos genéticos – Bases biológicas
Cromosoma
El ADN es una molécula con forma de una doble
hélice, que contiene las instrucciones y la
información necesaria para el desarrollo y el
funcionamiento de los seres vivos. El ADN está
organizado dentro de la célula en cromosomas, las
cuales son moléculas muy largas, y podemos
considerarlos como una unidad organizada dentro
de la célula. El cromosoma está compuesto por
genes.

Gen
Contienen información sobre la herencia, la
genética del individuo y determinan la forma en la
que se comporta y desarrolla. Además, pueden
interactuar entre ellos.
Algoritmos genéticos – Bases biológicas
El gen está construido por los
nucleótidos, los cuales son compuestos
químicos como la adenina, guanina,
citosina y tiamina. La información se
guarda en el gen según la forma como
estos químicos estén combinados y
agrupados.

La información genética en particular


que tiene un organismo se llama
genotipo. El fenotipo que es la
apariencia física que presenta se
determina a partir del genotipo, pero
también el ambiente puede influirlo. El
fenotipo se puede observar fácilmente,
pero también el ambiente puede
influirlo.
Algoritmos genéticos
Los Algoritmos Genéticos (AGs) son métodos
adaptativos 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 (1859). Por
imitación de este proceso, los Algoritmos
Genéticos son capaces de ir creando
soluciones para problemas del mundo real.
Algoritmos genéticos
Características
Son algoritmos estocásticos, es decir, dos ejecuciones con
los mismos datos pueden dar dos soluciones distintas.
Son algoritmos de búsqueda múltiple, pueden dar varias
soluciones.
Son algoritmos que hacen una búsqueda en un espacio
más amplio de posibles soluciones válidas.
La convergencia y el resultado final del algoritmo genético
es poco dependiente de la posición inicial; sobre todo, si la
población inicial se escoge de forma aleatoria y es lo
suficientemente grande.
Algoritmos genéticos
Diferencias con otros métodos
Trabajan con un conjunto de parámetros codificados
y no con los parámetros mismos.

Inician la búsqueda desde un conjunto de puntos, no


de uno solo.

Usan una función a optimizar en lugar de la derivada


u otro conocimiento adicional.

Usan reglas de transición probabilísticas no


determinísticas
Algoritmos genéticos
• Los algoritmos genéticos pueden
verse como variantes de la
búsqueda de haz estocástico que
están explícitamente motivadas
por la metáfora de la selección
natural en biología.
• Se tiene una población de
individuos (estados), en la que
los individuos más aptos (valor
más alto) producen
descendencia (estados sucesores)
que pueblan la próxima
generación, un proceso llamado
recombinación.
• Existe un sinfín de formas de
recombinación.
Algoritmos genéticos
Ejemplo: Representación de estados de 8 reinas en un tablero de
ajedrez (cadenas de dígitos).
Selección Cruce Mutación
Algoritmos genéticos - Terminología
Individuos
El primer paso del algoritmo genético consiste en crear una población inicial aleatoria de individuos.
En el contexto de algoritmos genéticos, el término individuo hace referencia a cada una de las posibles
soluciones del problema que se quiere resolver.
Cualquier solución potencial a un problema puede ser presentada dando valores a una serie de
parámetros. El conjunto de todos los parámetros (genes en la terminología de Algoritmos Genéticos) se
codifica en una cadena de valores denominada cromosoma.

Cromosoma (individuo) del problema de las 8 reinas


Algoritmos genéticos - Terminología
Individuos
Un Individuo reúne dos tipos de soluciones:
• El cromosoma, que es la cruda información 'genética' (genotipo) que ofrece el AG.
• El fenotipo, que es la expresión del cromosoma en términos del modelo.

Los Cromosomas son codificados por un arreglo de bits como se pude ver en la figura
Algoritmos genéticos - Terminología
Genes

Los genes son las "instrucciones" básicas para la construcción de un algoritmo genético. Un cromosoma es
una secuencia de genes, y estos pueden describir una posible solución a un problema, sin realmente ser la
solución. Un gen es una cadena de bits de longitud arbitraria. La cadena de bits es una representación
binaria.
La estructura de cada gen es definida en un registro de parámetros de fenotipo. Los parámetros de
fenotipo son instrucciones que permiten el mapeo entre el genotipo y fenotipo. Esto es, se codifica una
solución dentro de un cromosoma y se decodifica un cromosoma a una solución. La correlación entre
genotipo y fenotipo es necesaria para convertir el conjunto solución del modelo en una forma en que el
AG puede trabajar, y para convertir nuevos individuos del AG en una forma que el modelo puede evaluar.
Algoritmos genéticos - Terminología
Población
Una población es una colección de individuos. Una población consiste en un número de individuos de
prueba, así el fenotipo es un parámetro que delimita a los individuos y la información sobre el espacio de
búsqueda. Los aspectos importantes de la población son:
• La generación de la población inicial.
• El tamaño de la población.

El tamaño de la población dependerá de la complejidad del problema. A menudo se realiza una


inicialización aleatoria de la población. En el caso de una codificación binaria esto significa que cada bit
se inicializa a cero o a uno al azar. Pero puede haber casos donde se lleva a cabo la inicialización de la
población con soluciones bien conocidas.
Algoritmos genéticos - Terminología
Codificación

La Codificación es el proceso de representación de los genes individuales. El proceso puede realizarse


mediante bits, números, árboles, arreglos, listas o cualquier otro medio. La codificación depende
principalmente de la solución al problema. Por ejemplo, uno puede codificar directamente los números
reales o enteros.

Codificación binaria Codificación con números enteros


Algoritmos genéticos - Terminología
Selección
Es el proceso de elección de los padres de la población para la cruza. Después de decidir una codificación,
el siguiente paso es llevar a cabo la selección, es decir, cómo elegir a los individuos en la población para
crear descendencia para la próxima generación

La selección es un método que selecciona al azar los cromosomas de la población según su función de
evaluación. Cuanto mayor sea la función de Aptitud, la oportunidad de un individuo para ser seleccionado
será mayor. Esta presión en la selección es influenciada de tal manera que los mejores individuos son más
favorecidos. Esta presión de selección conduce al AG aun mejor valor de aptitud de la población en las
sucesivas generaciones.
Algoritmos genéticos - Terminología
Métodos de selección:
Selección por ruleta
Propuesto por DeJong, es posiblemente el método más utilizado desde los
orígenes de los Algoritmos Genéticos (Blickle & Thiele, 1995).
A cada uno de los individuos de la población se le asigna una parte
proporcional a su ajuste de una ruleta, de tal forma que la suma de todos
los porcentajes sea la unidad. Los mejores individuos recibirán una
porción de la ruleta mayor que la recibida por los peores. Generalmente,
la población está ordenada en base al ajuste, por lo que las porciones más
grandes se encuentran al inicio de la ruleta. Para seleccionar un individuo
basta con generar un número aleatorio del intervalo [0..1] y devolver el
individuo situado en esa posición de la ruleta.

Es un método muy sencillo pero ineficiente a medida que aumenta el tamaño de la población (su complejidad es O(n 2)).
Presenta además el inconveniente de que el peor individuo puede ser seleccionado más de una vez.
Algoritmos genéticos - Terminología
Métodos de selección:
Selección por torneo
La idea principal de este método de selección consiste en escoger a los individuos genéticos en base a comparaciones
directas entre sus genotipos.
Existen dos versiones de selección mediante torneo, el determinístico y el probabilístico.
En la versión determinística se selecciona al azar un número p de individuos (generalmente se escoge p=2). De entre los
individuos seleccionados se selecciona el más apto para pasarlo a la siguiente generación.
La versión probabilística únicamente se diferencia en el paso de selección del ganador del torneo. En vez de escoger
siempre el mejor se genera un número aleatorio del intervalo [0..1], si es mayor que un parámetro p (fijado para todo el
proceso evolutivo) se escoge el individuo más alto y en caso contrario el menos apto. Generalmente p toma valores en el
rango 0.5 < p ≤ 1.
Algoritmos genéticos - Terminología
Otros métodos de selección:
Esta técnica selecciona al azar uno de los padres de la población. En términos de
Selección aleatoria la ruptura de códigos genéticos, la selección al azar es un poco más disruptiva,
en promedio, con respecto a la selección por rueda de ruleta.

En la Selección por rango la población y cada cromosoma reciben un fitness de


Selección por rango la clasificación. La peor tiene fitness 1 y la mejor tiene fitness N.
Se seleccione a dos individuos al azar. El individuo con la evaluación más alta se
convierte en el primer padre. Se repite para encontrar un segundo padre.

Este es un método de maximización o de minimización de la función. Este


Selección de Boltzmann método simula el proceso de enfriamiento lento de un metal fundido.

Este concepto expresa la idea de que el mejor individuo de la actual generación


Selección por elitismo pase sin modificar a la siguiente generación. De esta forma no se perderá el mejor
cromosoma. Al resto de la población se le aplica la reproducción normalmente.

Selección por muestreo El Muestreo universal estocástico asegura una descendencia, que está más cerca de
estocástico universal lo que se requiere que la selección por rueda de ruleta.
Algoritmos genéticos - Terminología
Cruce:
Cruce es el proceso de tomar dos soluciones (Padres) y producir a
partir de ellos un descendiente (hijo). Después del proceso de
selección (reproducción), la población se enriquece con mejores
individuos. La Reproducción hace clones de buenas secuencias pero
no crear nuevos. El operador de cruce se aplica al grupo de individuos
seleccionados con la esperanza de que se crea una mejor
descendencia. Cruce es un operador de recombinación que consiste
de tres pasos:
• El operador de reproducción selecciona al azar un par de dos
cadenas individuales para el apareamiento.
• Un sitio transversal es seleccionado al azar a lo largo de la longitud
de la cadena.
• Finalmente, se intercambian los valores de posición entre las dos
cadenas tras el punto de cruce.
Algoritmos genéticos - Terminología
Métodos de cruce:
Cruce de punto simple
El algoritmo genético tradicional utiliza un punto único para el cruce, donde los dos
cromosomas de apareamiento se cortan una vez en los puntos correspondientes y
las secciones después de los cortes se intercambian.

Si se elige apropiadamente el punto, mejores hijos serán obtenidos combinando buenos padres.
Algoritmos genéticos - Terminología
Métodos de cruce:
Cruce de punto doble
En el cruce de dos puntos, se eligen dos puntos y el contenido entre estos puntos se
intercambia.

La adición de otros puntos de cruce reduce el rendimiento del AG. El problema con la adición de puntos de cruce
adicionales es que los bloques de construcción son más propensos a ser interrumpidos. Sin embargo, una ventaja de
tener más puntos de cruce es que el espacio del problema se puede buscar más a fondo.
Algoritmos genéticos - Terminología
Métodos de cruce:
Cruce multipunto
Hay dos formas de cruce multipunto. El primero es mediante puntos par de sitios
cruzados y el otro mediante puntos impar de sitios cruzados. En el caso de un
número par de sitios cruzados, los sitios cruzados se seleccionan al azar alrededor de
un círculo y la información se intercambia. En el caso de un número impar de sitios
cruzados, siempre se supone un punto de cruce diferente en el comienzo de la
cadena.
Algoritmos genéticos - Terminología
Métodos de cruce:
Cruce uniforme
El cruce uniforme es muy diferente del cruce de N-
puntos. Cada gen en la descendencia se crea
copiando el gen correspondiente de uno u otro
progenitor elegido de acuerdo con una máscara de
cruce binaria generada aleatoriamente de la misma
longitud que los cromosomas. Cuando hay un 1 en la
máscara de cruce, el gen se copia del primer padre, y
donde hay un 0 en la máscara el gen se copia del
segundo padre. Una nueva máscara de cruce se
genera aleatoriamente para cada par de padres. Los
descendientes, por lo tanto, contienen una mezcla de
genes de cada padre. El número de puntos de cruce
efectivos no es fijo, pero tendrá un promedio de L / 2
(donde L es la longitud del cromosoma).
Algoritmos genéticos - Terminología
Métodos de cruce:
Cruces específicos de codificaciones no binarias
Si se emplean genotipos compuestos por valores enteros o reales pueden deinirse otro tipo de
operadores de cruce:
❑Media: el gen de la descendencia toma el valor medio de los genes de los padres. Tiene la
desventaja de que únicamente se genera un descendiente en el cruce de dos padres.
❑Media geométrica: cada gen de la descendencia toma como valor la raíz cuadrada del
producto de los genes de los padres. Presenta el problema añadido de qué signo dar al
resultado si los padres tienen signos diferentes.
❑Extensión: se toma la diferencia existente entre los genes situados en las mismas posiciones
de los padres y se suma al valor más alto o se resta del valor más bajo. Solventa el problema
de generar un único descendiente. Una variante basada en este cruce son los Algoritmos
genéticos de evolución diferencial.
Algoritmos genéticos - Terminología
Mutación:
Introduce nuevas estructuras genéticas en la población
modificando al azar algunos de sus bloques de
construcción. La mutación ayuda a escapar de la
trampa de los mínimos locales y mantiene la diversidad
en la población. También mantiene la reserva genética
diversa, y así asegura la ergodicidad. Se dice que un
espacio de búsqueda es ergódico si existe una
probabilidad no nula de generar cualquier solución de
cualquier estado de población.

La mutación desempeña el papel de recuperar los materiales genéticos perdidos, así como de perturbar
aleatoriamente la información genética. La mutación se ha considerado tradicionalmente como un simple
operador de búsqueda. Si se supone que el cruce explora la solución actual para encontrar mejores,
entonces la mutación ayuda a explorar todo el espacio de búsqueda.
Algoritmos genéticos - Terminología
Mutación:
La mutación más usual es el reemplazo aleatorio. Este consiste en variar aleatoriamente un gen de un
cromosoma. Si se trabaja con codificaciones binarias, consistirá simplemente en negar un bit.
También es posible realizar la mutación intercambiando los valores de dos alelos del cromosoma.
Con otro tipo de codificaciones no binarias existen otras opciones:
❑Incrementar o decrementar a un gen una pequeña cantidad generada aleatoriamente.
❑Multiplicar un gen por un valor aleatorio próximo a 1.
Aunque no es lo más común, existen implementaciones de Algoritmos Genéticos en las que no todos los
individuos tienen los cromosomas de la misma longitud. Esto implica que no todos ellos codifican el
mismo conjunto de variables. En este caso existen mutaciones adicionales como puede ser añadir un
nuevo gen o eliminar uno ya existente.
Algoritmos genéticos - Terminología
EVALUACÍON
Función de aptitud (Fitness) :
La evaluación es una de las fases más importantes de los Algoritmos Genéticos. Se debe implementar una
función (de aptitud) que indique si los individuos de la población representan o no buenas soluciones al
problema planteado.
La función de aptitud establece una medida numérica de la bondad de una solución. puede considerarse
como la probabilidad de que ese individuo sobreviva hasta la edad de reproducción y se reproduzca.
Este procedimiento de evaluación será especíico del dominio del problema en el que se aplica el Algoritmo
Genético
Se pueden diferenciar cuatro tipos de evaluación o
fitness (Koza, 1992):
- Fitness Puro
- Fitness Estandarizado
- Fitness Ajustado
- Fitness Normalizado
Algoritmos genéticos - Terminología
Función de aptitud (Fitness) – Tipo 1:
Fitness Puro: r(i,t)
Es la medida de ajuste establecida en la terminología natural del propio problema.
Algoritmos genéticos - Terminología
Función de aptitud (Fitness) – Tipo 2:
Fitness Estandarizado. s(i,t)
Para solucionar la dualidad ante problemas de minimización o maximización se modiica el ajuste puro de
acuerdo a la siguiente fórmula:

En el caso de problemas de minimización se emplea directamente la medida de fitness puro. Si el problema es


de maximización se resta de una cota superior rmax del error el fitness puro.
Algoritmos genéticos - Terminología
Función de aptitud (Fitness) – Tipo 3:
Fitness Ajustado. a(i,t)
Se obtiene aplicando la siguiente transformación al fitness estandarizado:

El fitness ajustado tomará valores en el intervalo (0,1]. Mayor será la bondad de


un individuo si el fitness ajustado se aproxima más a 1.
Algoritmos genéticos - Terminología
Función de aptitud (Fitness) – Tipo 4:
Fitness Normalizado. n(i,t)
Los diferentes tipos de fitness vistos hasta ahora hacen referencia únicamente a la bondad del
individuo en cuestión. El fitness normalizado introduce un nuevo aspecto: indica la bondad de una
solución con respecto al resto de soluciones representadas en la población.

El fitness ajustado tomará valores en el intervalo (0,1]. Mayor será la bondad de un


individuo si el fitness ajustado se aproxima más a 1.
La suma de los valores de fitness normalizado de una población da siempre 1.
Factores que influyen en la recombinación

• El tamaño de la población
• La representación de cada individuo
• El número de mezcla (número de padres que se unen para formar
descendencia)
• El proceso de selección de los individuos de la siguiente generación
• El procedimiento de recombinación
• La tasa de mutación
• La composición de la próxima generación
Algoritmos genéticos
Ventajas
• Simplicidad conceptual del mecanismo de exploración.
• Amplia aplicabilidad.
• Superiores a métodos tradicionales en muchos problemas del mundo real.
• Pueden incorporar conocimiento sobre el dominio del problema.
• Pueden hibridizarse con otras técnicas de búsqueda.
• Son robustas a los cambios dinámicos.
• En general, pueden auto-adaptar sus parámetros.
• Explotan de modo natural las ventajas del procesamiento paralelo retornar Mejor
Solución Encontrada.
Algoritmos genéticos
Desventajas
• 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.
• 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.
• 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.
• Depende enormemente de la representación de secuencia de atributos.
• Muchas operaciones más que otros algoritmos similares.
• Campo aún en estudio.
Algoritmos genéticos: Ilustración de operaciones
Problema.- Solución de sistemas de ecuaciones lineales con algoritmos genéticos
Un sistema de ecuaciones consta de n ecuaciones con m incógnitas. Los coeficientes de las incógnitas Xi están
representados por los valores ai,j, mientras que el término independiente de cada ecuación se representa con el valor bi.

Existen métodos matemáticos que permiten resolver el problema; sin embargo, cuando se incrementa el número de
ecuaciones y el número de incógnitas, esta resolución se complica. Los algoritmos genéticos constituyen una
alternativa que permite determinar si una solución es buena o no, y en qué medida.
Fundamentos de algoritmos genéticos.pdf, pág 33.
Algoritmos genéticos: Ilustración de operaciones
Problema.- Caso específico
Por ejemplo, se tiene el siguiente sistema de ecuaciones lineales

Representación matricial

En este sistema de ecuaciones de m incógnitas, cada individuo genético deberá codificar cada una de esas incógnitas.
Así, un individuo genético válido para la resolución, será:

X1 = 4.643 X2 = 0.821 X3 = 2.25


Algoritmos genéticos: Ilustración de operaciones
En primer lugar, deberán reemplazarse las incógnitas del sistema de ecuaciones por los valores proporcionados de cada
uno de los genes. Después se realizan los cálculos especificados en la parte izquierda de la ecuación para obtener un
valor numérico, el cual se compara con los términos independientes especificados en el sistema de ecuaciones. Cuanto
más cercano esté el valor obtenido al valor del término independiente, mejor solución es el individuo genético. La
solución ideal consistirá en un conjunto de valores tales que, si las incógnitas se substituyesen por ellos, los valores
obtenidos fuesen idénticos a los términos independientes.
Pseudocódigo
Algoritmos genéticos: Ilustración de operaciones
Configuración del algoritmo genético
La fortaleza de los algoritmos genéticos reside en la evolución en paralelo de múltiples
soluciones; por tanto, un aspecto relevante es la configuración de los parámetros.

Para el caso del ejemplo ilustrativo, se consideran los siguientes:

❑Tamaño de población: 10 individuos


❑Elitismo: 2 individuos
❑Algoritmo selección: torneo
determinístico+aleatorio
❑Algoritmo cruce: 1 punto
❑Tasa de Cruce (Pc): 90%
❑Tasa de Mutación (Pm): 2.5%
❑Algoritmo mutación: puntual
Algoritmos genéticos: Ilustración de operaciones
Definición del cromosoma
El primer paso en la ejecución del algoritmo genético es la codificación de cada individuo;
para lo cual, se define el cromosoma (Fenotipo y Genotipo).
Algoritmos genéticos: Ilustración de operaciones
Población inicial
La definición de la población inicial para el problema en cuestión, considera 10 individuos
con genes con valores en el rango [-10..10] con 2 decimales.
Algoritmos genéticos: Ilustración de operaciones
Función de aptitud (fitness)
El fitness de un individuo en un algoritmo genético es el valor de una función objetivo como su fenotipo. Para calcular
el fitness, el cromosoma debe primero ser decodificado y la función objetivo evaluada. El fitness no sólo indica qué tan
buena es una solución, también nos dice a qué tan cerca el cromosoma está de la solución óptima.
El fitness se obtiene reemplazando los variables de cada
ecuación (x, y, z) con los valores de los genes de cada
individuo en cada ecuación, luego, calculando la
diferencia con sus respectivas constantes y totalizando
estas diferencias.
Algoritmos genéticos: Ilustración de operaciones
Selección
El proceso de selección inicia revisando si se considera o no el elitismo. En el caso de este
problema, se considero elitismo de 2; en consecuencia, los dos mejores individuos
de la población pasarían a formar parte de la población temporal.
Algoritmos genéticos: Ilustración de operaciones
Selección – cruce
El siguiente paso consistirá en seleccionar dos individuos para la realización del cruce y la mutación e incrementar de
esta forma la población temporal. Para determinar si finalmente se aplica o no la operación de cruce, se genera un
valor aleatorio en el rango [0..1]. Supóngase que se genera el valor 0,27 que, al ser menor que PC, determinará la
realización del cruce

Para seleccionar, se utiliza el algoritmo de torneo determinístico (p=2), por lo que se selecciona al azar dos individuos,
supóngase los individuos 3 y 8; luego, de estos el que presenta mejor fitness es el individuo 3, por lo que será
seleccionado como primer padre. El segundo padre se seleccionará al azar, por ejemplo el individuo número 7.
Efectuando el cruce en un punto, se tiene

Mejor
fitness que
los padres
Algoritmos genéticos: Ilustración de operaciones
Mutación
Se escoge al azar sobre que descendiente se va efectuar la mutación; supóngase, que se va efectuar sobre el primer
descendiente. Para el proceso, se genera un valor aleatorio en el intervalo [0..1] y, si este es menor que la tasa de
mutación Pm, se procede a la realización de la operación. Supóngase que en este caso se genera un valor de 0.013
que, al ser menor que un supuesto Pm=0.025, implicará que se modificará uno de los genes del individuo seleccionado.
Por ejemplo, suponiendo que se mute el segundo gen, el resultado de dicha mutación podría ser el siguiente:
Algoritmos genéticos: Ilustración de operaciones
Mutación
Una vez aplicados los operadores de cruce y mutación, los descendientes deberán ser
insertados en la población temporal, quedando así:
Algoritmos genéticos: Ilustración de operaciones
Selección – Cruce - Mutación
Se repite el proceso hasta completar la población que constituirá la nueva generación,
lográndose poblaciones similares a:

También podría gustarte