Está en la página 1de 44

1

FACULTAD DE INGENIERÍA
ESCUELA ACADÉMICA PROFESIONAL DE
INGENIERÍA ELÉCTRICA

INFORME ACADÉMICO

ALGORITMOS GENÉTICOS

PRESENTADO POR:

ALDO VILCHEZ VERA


ANTONY LUIS FLORES FELICIANO
JHORY PAUL ORE ASTO

HUANCAYO-PERÚ
2020
2

RESUMEN

El presente trabajo es un informe sobre los algoritmos genéticos, que son métodos

utilizados para los problemas de optimización y parámetros, basados en la teoría de la

selección natural propuesta por Charles Darwin.

En primer lugar se trata los fundamentos delos algoritmos genéticos con una breve

historia sobre su origen y quienes lo desarrollaron; luego con una breve definición se

complementan estos fundamentos con las características, ventajas y desventajas de los

algoritmos genéticos, para llegar al fundamento matemático que da origen a este método;

llegando al teorema general del algoritmo simple propuesto por Holland.

Se presenta después el desarrollo del algoritmo genético en sí, con la estructura y los

diversos términos y operadores que lo componen, para llegar a explicar el

funcionamiento del algoritmo de una manera sencilla, para, finalmente exponer un

ejemplo sencillo sobre este método aplicado para la optimización de funciones en

números reales.
3

ÍNDICE

INTRODUCCIÓN.............................................................................................................4

FUNDAMENTOS DEL ALGORITMO GENÉTICO........................................................5


1.Breve Historia
2. Definición
3. Características
4. Ventajas y Desventajas del AG
5. Clasificación
6. Fundamento Matemático
7. Teorema General de un AG

DESARROLLO DEL ALGORITMO GENÉTICO..........................................................21


8. Estructura del AG Simple
9. Evaluación de un AG
10. Funcionamiento de un AG
11. Ejemplo de Aplicación en una función de números reales

CONCLUSIONES.............................................................................................................42

BIBLIOGRAFÍA...............................................................................................................43
4

INTRODUCCIÓN

“Throw up a handful of feathers, and all must fall to the ground according to

definite laws; but how simple is this problem compared to the action and reaction of the

innumerable plants and animals which have determined, in the course of centuries, the

proportional numbers and kinds of trees now growing on the old Indian ruins!”

Charles Darwin, The origin of species, 1859

Los Algoritmos Genéticos son métodos adaptativos, generalmente usado en problemas de

búsqueda y optimización de parámetros, basados en la reproducción sexual y en el

principio de supervivencia del más apto. Siguiendo la definición dada por Goldberg, “los

Algoritmos Genéticos son algoritmos de búsqueda basados en la mecánica de selección

natural y de la genética natural. Combinan la supervivencia del más apto entre estructuras

de secuencias con un intercambio de información estructurado, aunque aleatorizado, para

constituir así un algoritmo de búsqueda que tenga algo de las genialidades de las

búsquedas humanas”

Para alcanzar la solución a un problema se parte de un conjunto inicial de individuos,

llamado población, generado de manera aleatoria. Cada uno de estos individuos

representa una posible solución al problema. Estos individuos evolucionarán tomando

como base los esquemas propuestos por Darwin sobre la selección natural, y se adaptarán

en mayor medida tras el paso de cada generación a la solución requerida


5

FUNDAMENTOS DE LOS ALGORITMOS GENETICOS

1.- BREVE HISTORIA

Los primeros ejemplos de lo que hoy podríamos llamar algoritmos genéticos,

surgieron a finales de la década de los cincuenta, desarrollados por biólogos

especializados en la evolución, quienes buscaban realizar modelos de aspectos de la

evolución natural. Ninguno de ellos pensó que la estrategia evolutiva se podría aplicar de

una forma más general a problemas artificiales.

Los Algoritmos genéticos (AGs) fueron inventados por John Holland por el año de 1960; idea

que fue mejorada por sus estudiantes y colegas de la Universidad de Michigan. Aunque el

objetivo original de Holland no era diseñar algoritmos para resolver problemas específicos, sino

estudiar el fenómeno de adaptación que ocurre en la naturaleza y con ello desarrollar mecanismos

de adaptación natural para importarse a sistemas informáticos.

Con el tiempo los algoritmos genéticos se vieron como una abstracción de la evolución biológica

y dio un marco teórico para la adaptación de los AG de Hollland. AG es un método para pasar de

una población de "cromosomas" (secuencias de unos y ceros) a otra población utilizando una

especie de "selección natural" con el empleo de operadores genéticamente inspirados en el

intercambio genético, la mutación y la inversión.

Unos 15 años más adelante, David Goldberg, actual delfín de los algoritmos genéticos,

conoció a Holland, y se convirtió en su estudiante. Golberg era un ingeniero industrial

trabajando en diseño de pipelines, y fue uno de los primeros que trató de aplicar los
6

algoritmos genéticos a problemas industriales. Aunque Holland trató de disuadirle,

porque pensaba que el problema era excesivamente complicado como para aplicarle

algoritmos genéticos, Goldberg consiguió lo que quería, escribiendo un algoritmo

genético en un ordenador personal Apple II. Estas y otras aplicaciones creadas por

estudiantes de Holland convirtieron a los algoritmos genéticos en un campo con base

suficiente aceptado para celebrar la primera conferencia en 1985, ICGA´85.

Resultado de todo esto se tiene las siguientes aportaciones:

1. Holland: Introdujo un algoritmo basado en cromosomas, cruzamiento, mutación e

inversión. Fue el primero en intentar poner evolución computacional sobre una firme

base teórica. Esta fundamentación teórica se basada en la noción de "esquemas", y fue la

base de casi todo el trabajo teórico posterior en algoritmos genéticos.

2. Rechenberg: Estrategias de evolución que comienzan con una "población" de dos

individuos, uno de los padres y una descendencia, la descendencia como una versión

mutada del padre.

3. Fogel, Owens, y Walsh: El uso de la mutación para proporcionar variaciones.

En los últimos años ha habido una interacción extensa entre investigadores estudiando varios la

computación evolutiva, y los algoritmos genéticos. Así, los investigadores se han alejado del

término "algoritmo genético" de Hollands.


7

2.- DEFINICIÓN DE UN ALGORITMO GENÉTICO

Un algoritmo genético (AG) es una técnica de búsqueda iterativa inspirada en los

principios de selección natural, el cual se basa en la generación de poblaciones de

individuos mediante la reproducción de los padres. Los AG no buscan necesariamente

imitar la evolución biológica sino generar estrategias de optimización.

La mayoría de las veces se busca la mejor solución en un conjunto específicos de

soluciones. El conjunto de soluciones entre las que reside la solución deseada se llama

espacio de búsqueda (también espacio de estado). Cada punto en el espacio de búsqueda

es una posible solución y puede ser "marcado" con un valor de aptitud, dependiendo de la

definición del problema.

3.- CARACTERISTICAS DE UN ALGORITMO GENÉTICO

En los AG las cadenas están compuestas por características, que toman diferentes

valores. Estas características se localizan en distintas posiciones de la cadena; de tal

manera que, basados en la mecánica de la selección natural, sólo los organismos que

mejor se adapten sobreviven.

Los componentes de un algoritmo genético son:

 Una función que se desea optimizar.

 Un grupo candidato para la solución.

 Una función de evaluación que mida cómo los candidatos optimizan la función.

 Función de reproducción.
8

El AG funciona debido a la competencia por los recursos. Ciertas características de un

organismo de la misma especie, se manifiesta como éxito reproductivo, lo que lo

convierte en el mejor adaptado, por lo que deja más hijos que los otros; así se hereda la

mejor configuración genética de cada generación. De esta manera, los mejores rasgos

hereditarios que garantizan el éxito tienden a aumentar en la población.

Otras características importantes son:

 Es un algoritmo estocástico; donde la aleatoriedad es una función esencial para la

genética dentro de las operaciones de Selección y reproducción.

 Los algoritmos genéticos siempre consideren una población de soluciones; pero se

tiene una población base lo cual es favorable para la paralelización.

 El algoritmo puede recombinar diferentes soluciones para conseguir una mejor.

 El algoritmo es robusto lo que garantiza el éxito. La Robustez se refiere a la

capacidad de rendimiento consistente en una amplia gama de problemas.

4.- VENTAJAS Y DESVENTAJAS DE UN ALGORITMO GENÉTICO

VENTAJAS

 No tienen mucho requerimiento matemático del problema de optimización.

 Debido a su naturaleza evolutiva buscan soluciones sin considerar específico

conocimiento del problema.


9

 Operan de forma simultánea con varias soluciones, en vez de trabajar de forma

secuencial

 En problemas de optimización, al maximizar una función objetivo- resultan

menos afectados por los máximos locales (falsas soluciones) que las técnicas

tradicionales.

 La estructura de los operadores los hace muy efectivos al realizar búsquedas

globales.

 Resulta sumamente fáciles de ejecutar en arquitecturas masivamente paralelas.

 Usan operadores probabilísticos, en vez de los típicos operadores determinísticos.

DESVENTAJAS

 Pueden tardar mucho en converger, o no converger en absoluto, dependiendo en

cierta medida de los parámetros que se utilicen tamaño de la población, número

de generaciones, etc.

 Pueden converger prematuramente debido a una serie de problemas de diversa

índole.
10

5.- CLASIFICACIÓN DE LOS ALGORITMOS GENÉTICOS

Los algoritmos genéticos son algoritmos de búsqueda basados en la mecánica de

la selección natural y la genética natural; son un procedimiento paso a paso para

encontrar la solución a problemas. Los algoritmos genéticos están teóricamente y

empíricamente probados para proporcionar una búsqueda robusta en fases complejas. Los

algoritmos genéticos son capaces de proporcionar una búsqueda eficiente y eficaz en el

dominio del problema y, por lo tanto, son computacionalmente menos complejos pero

más poderosos en su búsqueda de mejoramiento. Estas características han permitido a los

investigadores formar diferentes enfoques de algoritmos genéticos: AG paralelo, AG

desordenado, AG distribuido y así sucesivamente.

5.1.- ALGORITMO GENÉTICOS SIMPLE (SGA)

Muchas técnicas de búsqueda requieren información auxiliar para funcionar

correctamente. El AG es ciego para realizar una búsqueda eficaz de estructuras mejores

que sólo requieren valores de función objetivo asociados con las cadenas individuales.

Esta característica hace de los AG un método más adecuado que muchos otros esquemas

de búsqueda. Los AG utilizan reglas de transición probabilísticas para guiar su búsqueda

hacia regiones del espacio de búsqueda con mejoría probable.


11

La mecánica de los algoritmos genéticos simples (SGA) es sorprendentemente sencilla,

no involucrando nada más complejo que copiar cadenas e intercambiar cadenas parciales.

Se compone de tres operaciones:

1) Reproducción

2) Cruzar

3) Mutación

5.2.- ALGORITMOS GENÉTICOS PARALELOS Y DISTRIBUIDOS (PGA Y

DGA) (PARALLEL AND DISTRIBUTED GENETIC ALGORITHM PGA AND

DGA)

La ejecución paralela de varios SGA se denomina PGA (Parallel Genetic

Algorithm) y resuelve los problemas de programación haciendo uso de varias

restricciones de precedencia para lograr una alta optimización. Los Algoritmos Genéticos

Paralelos (PGAs) han sido desarrollados para reducir los tiempos de ejecución asociados

a los algoritmos genéticos simples y para encontrar soluciones casi óptimas en grandes

espacios de búsqueda. Los PGA tienen ganancias considerables en términos de

rendimiento y escalabilidad; se pueden implementar fácilmente en redes de ordenadores

heterogéneos o en mainframes paralelos.

5.3.- AGS PARALELOS DE MÚLTIPLES DEME (AGS DISTRIBUIDAS O AGS

DE GRANO GRUESO)
12

Los AGs de población múltiple (MD múltiple) son consisten de varias

subpoblaciones que intercambian individuos ocasionalmente (migración). Los AGs de

múltiple deme son muy populares, pero también son la clase de AGs paralelas, que son

más difíciles de entender, porque los efectos de la migración no se entienden

completamente. Los AGs paralelos múltiples tienen un comportamiento diferente al de

los AG simples.

5.4.- ALGORITMO GENÉTICOS HÍBRIDO (HGA)

El Algoritmo Genético Híbrido ha sido diseñado combinando una variante de un

operador de crossover ya existente con heurísticas. Una de las heurísticas es generar

población inicial; Otras dos se aplican a la progenie ya sea obtenida por cruce o por

barajar. Las dos últimas heurísticas aplicadas a la descendencia son codiciosas en la

naturaleza, por lo tanto, para evitar colisión en el óptimo local, uno tiene que incluir

aleatoriedad utilizando el operador de barajar.

5.5.- ALGORITMO GENÉTICO DE ORDENACIÓN RÁPIDA (FMGA)

La fmGA es de una longitud de cadena binaria, estocástica, variable, basado en la

población para resolver problemas de optimización. La principal diferencia entre el

fmGA y otros enfoques genéticos es la capacidad de la fmGA para manipular

explícitamente bloques de construcción (BBs) de material genético con el fin de obtener

buenas soluciones y potencialmente el óptimo global. La fmGA contiene tres fases de

funcionamiento:
13

• la fase de iniciación

• la fase de filtro de bloques de construcción (BBF)

• la fase de la yuxtaposición, que incluye varios parámetros.

6.- FUNDAMENTOS MATEMÁTICOS DE LOS AG SIMPLES

Los algoritmos genéticos matemáticamente se fundamentan en la probabilidad

debida principalmente a la incertidumbre que da la evolución misma de las especies.

Así la evolución misma no es más que la probabilidad de supervivencia o la suerte que

tuvo una especie al sobrevivir. Se tienen dos métodos para realizar la manipulación de la

incertidumbre:

 Deductivo : Se parte de lo general a lo particular

Figura 1. Método Deductivo

 Inductivo: Se parte de lo particular a lo general


14

Figura 2. Método Inductivo


15

Se tiene que para cada X, existe una f(x) si la dependencia es directa como en el caso de

las leyes. Entonces se tiene que:

Figura 3. Dependencia directa

Cuando la dependencia no es directa entonces se puede tener una función en base a la

probabilidad y ahora tendremos una función de probabilidad. Entonces decimos que si se

tiene un círculo considerado como una unidad y se divide en secciones; por ejemplo entre

tres se tendrá que la X implica una probabilidad.

Figura 4. División de un círculo que implica una probabilidad

Si se subdivide el círculo hasta llegar al infinito entonces tendremos:

………. (1)

Lo que significa que hay una población infinita:

Sin embargo:

………… (2)
16

Y además:

…………… (3)

Que es la esperanza matemática, es decir es la frecuencia con lo que aparecen los


números

Ejemplo:

Se tiene una encuesta con los siguientes valores generados:

3, 3, 2, 2, 5, 5, 6 es decir n=7

Entonces el promedio es:

Si contamos las repeticiones tendremos:

2 veces el numero 3

2 veces el numero 2

2 veces el numero 5

1 vez el numero 6

Por lo que también podemos expresar como:

Y si ahora factorizamos el 1/7


17

O también

Entonces:

………… (4)

El cuál es el primer momento matemático

Generalizando para los demás momentos se tiene:

Por lo tanto:

…………. (5)

Y para el caso discreto y para el caso continuo:

……………. (6)

Origina una función de distribución


18

Las características de esta función son:

Figura 5. Características de la función de distribución

7.- TEOREMA FUNDAMENTAL DE LOS ESQUEMAS DE HOLLAND

Se define un esquema por una cadena formada por la terna de símbolos {0, 1, *).

El signo * es una especie de comodín y en la posición donde aparece puede ir un 0 ó 1;

así por ejemplo:

Es un esquema donde todos los cromosomas que en la primera posición tengan un 1 y en

la cuarta un 0, lo contienen.

Si en una población A(t), de n individuos y una probabilidad de selección p s hay m (H, t)

individuos que contienen el esquema H, en la siguiente generación habrá:

……………….. (1)

De acuerdo con su valor de mérito, la probabilidad de selección es:

……………….. (2)
19

Donde f (H) es el valor numérico del mérito del esquema H obtenido como media de los méritos

de los individuos que lo contienen.

Sustituyendo 2 en 1

..………….. (3)

Siendo fm el mérito medio de la población.

Si expresamos:

…………… (4)

Podemos escribir la ecuación 3 de esta manera:

…………….. (5)

Y si partimos de la población inicial:

……………… (6)

Que indica que los individuos con esquemas de mérito superior al valor medio crecen

exponencialmente (c > O) y los individuos con esquemas de mérito inferior (c < 0)

decrecen también exponencialmente.

En un esquema existen dos parámetros que lo definen: el orden del esquema, O (H) que

es el número de dígitos fijos que tienen, y la longitud, δ (H) que es la diferencia entre la

posición del último dígito fijo y el primero.


20

En la operación de cruce de dos cromosomas, aleatoriamente se elige una posición de

cruce y las subcadenas desde el origen de esta posición se intercambian entre ambos

cromosomas. La posibilidad de que sea roto el esquema debido al cruce es:

…………. (7)

Siendo l-1 el número de posibles posiciones de corte que tiene un cromosoma de longitud

l. Si la probabilidad de cruce es pc, la probabilidad de que se rompa el esquema es:

.. …………. (8)

Y la probabilidad de supervivencia es:

…………… (9)

Si la probabilidad de mutación de un bit es pm la probabilidad de que sobreviva es 1 - pm

En un esquema el número de bits que hay es O (H), así que la probabilidad de que

sobrevivan todos es:

…………. (10)
21

Ya que pm << 1, en general del orden de 0.001. Así que la probabilidad de supervivencia

del esquema después del cruce y mutación es:

…………. (11)

Al paso de una generación, el número de individuos con el esquema H es:

…………... (12)

Sustituyendo ps por el valor obtenido y tomando como origen de partida la generación

inicial:

Tenemos la Expresión del Teorema General de los Algoritmos Genéticos que muestra

que los esquemas de alto valor de mérito, corta longitud y bajo orden, crecen

exponencialmente, mientras que los que no tienen estas características decrecen también

exponencialmente.
22

DESARROLLO DEL ALGORITMO GENETICO

8.- ESTRUCTURA DE UN ALGORITMO GENÉTICO SIMPLE

Un algoritmo genético contiene una serie de procesos, similares a los observados

en la evolución biológica de las especies, que permiten solucionar un problema; éstos se

describen a continuación.

8.1.- CROMOSOMA

El cromosoma es la estructura que nos permite representar las posibles soluciones

al problema dentro del algoritmo genético; a cada posible solución representada en un

cromosoma se le conoce como genotipo. Para diseñar la estructura del cromosoma deben

considerarse todas las variables de las que depende la solución del problema; estas

variables pueden ser discretas o continuas y sus valores deben estar dentro de un intervalo

determinado para cada variable. Se llaman genes a los componentes individuales del

cromosoma; cuando las variables de las que depende el problema son discretas, los genes

pueden ser de tipo entero o binario; cuando estas variables son continuas, los genes son

de tipo real. En la figura se muestra un cromosoma con genes de tipo binario, otro con

genes de tipo entero y otro con genes de tipo real.


23

Figura 5. Composición del Cromosoma

8.2.- POBLACIÓN

La población es el conjunto de individuos con los que se trabaja en el algoritmo

genético, estos individuos constituyen posibles soluciones al problema. Los individuos

que constituyen la población van cambiando durante el funcionamiento del algoritmo

genético, pero el tamaño de la población permanece constante.

El tamaño de la población de un algoritmo genético debe ser suficiente para garantizar la

diversidad de las soluciones; no existe una regla para determinar el tamaño óptimo de la

población, por lo que éste se determina según el criterio del diseñador, tomando en cuenta

la cantidad de genes del cromosoma y el intervalo de valores que éstos pueden adquirir.
24

La población inicial generalmente es creada asignando valores aleatorios a los genes de

cada individuo, dentro de un intervalo determinado y con la misma probabilidad de

ocurrencia; esto permite que la población inicial abarque todo el espacio de búsqueda.

8.3.- FUNCIÓN DE APTITUD

La función de aptitud no es más que la función objetivo de nuestro problema de

optimización. La función tiene la capacidad de rechazar las malas soluciones, y de

incentivar las buenas, de forma que sean estas últimas las que se propaguen con mayor

rapidez. Esta función tiene como entrada el genotipo de un individuo y su salida es el

fenotipo de ese individuo.

8.4.- OPERADORES GENETICOS

8.4.1.- OPERADORES DE SELECCIÓN

La selección es el proceso en el cual, se escogen los individuos que integrarán las

parejas que van a reproducirse; todos los individuos pueden participar en la formación de

dichas parejas. La selección se realiza al azar y los métodos más comunes son la

selección por ruleta, selección basada en el rango y selección por torneo.

 Selección por ruleta

En este método, se asigna un valor de probabilidad a cada individuo, de acuerdo

con el valor de su fenotipo y de forma que la suma de las probabilidades de todos

los individuos sea uno; como se dijo anteriormente, el fenotipo de un individuo es

obtenido por medio de la función de aptitud.


25

Al asignar a cada individuo su valor de probabilidad, debe considerarse que los

individuos mejor adaptados deben tener mayor valor de probabilidad; este valor

de probabilidad puede obtenerse mediante la siguiente expresión:

…. (1)

Después de que cada individuo tiene un valor de probabilidad, se construye un

modelo que imite a una ruleta que está dividida en porciones que corresponden a

cada individuo y que el tamaño de las porciones sea proporcional al valor de

probabilidad de los individuos; se selecciona el individuo correspondiente al

punto en el cual la ruleta deja de girar; en la figura se muestra el funcionamiento

de este método de selección, en ella puede observarse que los individuos mejor

adaptados tienen mayor probabilidad de ser seleccionados.

Figura 6. Funcionamiento del Método de Selección por Ruleta


26

Para programar este método de selección, se asigna a cada individuo un intervalo

de valores, de acuerdo con su valor de probabilidad, desde cero hasta uno; luego

se genera un valor aleatorio entre cero y uno, el individuo seleccionado será aquel

cuyo intervalo contenga ese valor generado.

El método de ruleta también es conocido como selección proporcional; este

método es el más utilizado en los algoritmos genéticos, ya que la probabilidad de

que un individuo sea seleccionado, es proporcional a su aptitud para resolver el

problema.

 SELECCIÓN BASADA EN EL RANGO

En este método los individuos son ordenados, de acuerdo a su fenotipo,

asignándoles un número entero correlativo desde el peor hasta el mejor; por

ejemplo, si se tienen n individuos, el peor tendrá un valor de 1 y el mejor tendrá

un valor de n; este número correlativo reemplaza al fenotipo de cada individuo,

luego con los nuevos fenotipos, se realiza el mismo procedimiento utilizado en el

método de ruleta.

Este método puede hacer que el algoritmo genético converja lentamente a la

solución, ya que no existirá mucha diferencia entre los mejores y los peores

individuos.
27

 SELECCIÓN POR TORNEO

En este método se toma de la población un determinado número de individuos de

forma aleatoria y se escoge el mejor de ellos.

8.4.2.- OPERADOR CRUCE

El operador cruce realiza la reproducción de cada pareja de individuos; este

operador nos permite crear individuos nuevos y mejor adaptados, combinando el material

genético de los padres. Existen multitud de algoritmos de cruce. Sin embargo los más

empleados son los que se detallarán a continuación:

 CRUCE DE 1 PUNTO

El cruce en un punto consiste en copiar en el hijo, los valores de los genes del

primer padre hasta un punto de corte y el resto copiarlo del segundo padre; el

cromosoma es dividido en dos partes por el punto de corte, éste puede ser un

punto fijo o bien, ser seleccionado al azar en cada cruce.

FIGURA 7. Cruce de un punto


28

 CRUCE DE 2 PUNTOS

Se trata de una generalización del cruce de 1 punto. En vez de cortar por un único

punto los cromosomas de los padres, como en el caso anterior, se realizan dos

cortes. Deberá tenerse en cuenta que ninguno de estos puntos de corte coincida

con el extremo de los cromosomas para garantizar que se originen tres segmentos.

Figura 8.Cruce de dos puntos

 CRUCE UNIFORME

El cruce uniforme es una técnica completamente diferente de las vistas hasta el

momento. Cada gen de la descendencia tiene las mismas probabilidades de

pertenecer a uno u otro padre.

Figura 9. Cruce Uniforme


29

8.4.3.- ALGORITMOS DE REEMPLAZO

Cuando en vez de trabajar con una población temporal se hace con una única

población, sobre la que se realizan las selecciones e inserciones, debe tenerse en cuenta

que para insertar un nuevo individuo deberá de eliminarse previamente otro de la

población. Existen diferentes métodos de reemplazo:

 Aleatorio: el nuevo individuo se inserta en un lugar escogido de manera aleatoria

en la población.

 Reemplazo de padres: se obtiene espacio para la nueva descendencia liberando el

espacio ocupado por los padres.

 Reemplazo de similares: una vez obtenido el ajuste de la descendencia se

selecciona un grupo de individuos (entre seis y diez) de la población con un ajuste

similar. Se reemplazan aleatoriamente los que sean necesarios.

 Reemplazo de los peores: de entre un porcentaje de los peores individuos de la

población se seleccionan aleatoriamente los necesarios para dejar sitio a la

descendencia.

8.4.4.- COPIA

La copia es la otra estrategia reproductiva para la obtención de una nueva

generación a partir de la anterior. A diferencia del cruce, se trata de una estrategia de


30

reproducción asexual. Consiste simplemente en la copia de un individuo en la nueva

generación.

8.4.5.- ELITISMO

El elitismo es un caso particular del operador de copia consistente en copiar

siempre al mejor, o en sus casos mejores, individuos de una generación en la generación

siguiente. De esta manera se garantiza que el proceso d búsqueda nunca dará un paso

atrás en cuanto a la calidad de la mejor solución obtenida, sino que un cambio en ésta

siempre implicará una mejora.

Una variación de este proceso consiste en copiar al mejor o mejores individuo de una

generación en la siguiente, únicamente cuando tras el paso de una generación no se haya

mejorado con los operadores de cruce o mutación la mejor solución de la generación

actual.

8.4.6.- MUTACIÓN

El operador mutación cambia el valor de uno o varios genes de un individuo,

alterando su material genético; en la evolución biológica de las especies, las mutaciones

son sucesos bastante poco comunes, en algunos casos producen la muerte del organismo,

pero en promedio contribuyen a la diversidad genética; en los algoritmos genéticos las

mutaciones tienen la misma función y su probabilidad de ocurrencia debe ser baja.


31

9.- EVALUACION DEL ALGORITMO GENÉTICO

Para el correcto funcionamiento de un Algoritmo Genético se debe de poseer un

método que indique si los individuos de la población representan o no buenas soluciones

al problema planteado. Por lo tanto, para cada tipo de problema que se desee resolver

deberá derivarse un nuevo método, al igual que ocurrirá con la propia codificación de los

individuos. De esto se encarga la función de evaluación, que establece una medida

numérica de la bondad de una solución. Esta medida recibe el nombre de ajuste o fitness.

En la naturaleza el ajuste (o adecuación) de un individuo puede considerarse como la

probabilidad de que ese individuo sobreviva hasta la edad de reproducción y se

reproduzca. Esta probabilidad deberá estar ponderada con el número de individuos de la

población genética.

En el mundo de los Algoritmos Genéticos se empleará esta medición para controlar la

aplicación de los operadores genéticos. Es decir, permitirá controlar el número de

selecciones, cruces, copias y mutaciones llevadas a cabo.

10.- FUNCIONAMIENTO DE UN ALGORITMO GENÉTICO

El funcionamiento de un algoritmo genético comienza generando la población

inicial, ésta constituye la primera generación de individuos; también puede utilizarse


32

como población inicial, un conjunto de individuos que representen soluciones

aproximadas al problema, obtenidas por algún otro método de búsqueda.

Cuando se tiene la población inicial, se evalúan todos los individuos por medio de la

función de aptitud y se le asigna, a cada uno, su valor de fenotipo; luego, utilizando un

método de selección, se construyen las parejas de individuos que van a reproducirse; la

cantidad de parejas es determinada por el diseñador del algoritmo genético

Los hijos de cada pareja pueden ser obtenidos de la aplicación de uno o varios operadores

de cruce; la cantidad de hijos la determina el criterio del diseñador del algoritmo

genético; generalmente se obtienen dos hijos de cada pareja y se aplica un operador de

cruce, cambiando el orden de los padres, al aplicar el operador, para obtener cada hijo.

Después de tener las parejas de individuos, se realiza la reproducción utilizando un

operador de cruce; esto permite obtener un nuevo grupo de individuos, con diferentes

características a los actuales.

Después de la reproducción, se determina aleatoriamente, utilizando la probabilidad de

mutación, si se aplica el operador mutación a cada uno de los hijos de las parejas.

Cuando se han aplicado los operadores genéticos, los hijos de las parejas pueden sustituir

a la población actual completa o a una parte de ella; también se puede evaluar a los

nuevos individuos con la función de aptitud y que los mejores sean los que sustituyan a

los peores de la población actual.


33

Esta nueva población, formada por hijos de la población anterior y tal vez por los mejores

individuos de dicha población, constituye la segunda generación de individuos; todos los

individuos de esta nueva población son evaluados para determinar si alguno soluciona el

problema, en caso de no existir dicho individuo, se repite todo el proceso anterior sobre la

nueva población, hasta que un individuo solucione el problema.

Figura10. Diagrama del funcionamiento de un algoritmo genético


34

11.- EJEMPLO DE ALGORITMO GENÉTICO APLICADO A OPTIMIZCIÓN


DE FUNCIONES REALES

Está claro, en este sencillo ejemplo que el máximo de la función está en el extremo del

intervalo. Es decir

Seguiremos los pasos ya explicados anteriormente para el funcionamiento del algoritmo

genético.

1.- Codificación (representación)

Se elige una codificación en forma de string de bits de 4 bits de longitud,

suficiente para representar todo el dominio. Se considera la representación binaria

directa.
35

DECIMAL String 4 bits


0 0000
1 0001
2 0010
3 0011

4 0100
5 0101
6 0110
7 0111
8 1000
9 1001
10 1010
11 1011
12 1100
13 1101
14 1100
15 1111

Tabla 1. Codificación binaria del problema propuesto

2.- Generación de la población inicial

Como criterio de diseño, se decide trabajar con una población de tamaño fijo de 4

individuos (recuérdese que x pertenece al conjunto de los números enteros). En forma

aleatoria se generan dichos individuos como población inicial.

3.- Evaluación de la población inicial

El primer individuo (0101) corresponde al valor decimal 5. Su fitness es 52 =25 y

el aporte respecto del fitness total es del 10.3% tal como se muestra en la tabla
36

GENERACIÓN 0

Individuo Represent. Valor x Fitness fi Prob. Selecc. Prob.


݂݅ Τȭ݂݅ Acumulada
‫ݔ‬ଵబ 0101 5 25 0.103 0.103
‫ݔ‬ଶబ 1000 8 64 0.264 0.367
‫ݔ‬ଷబ 1100 12 144 0.595 0.963
‫ݔ‬ସబ 0011 3 9 0.037 1.000
ȭ݂݅ ୀ 242
݂ௗ
௠ ௘ௗ௜௢ୀ60.5
Tabla 2. Evaluación de la Población Inicial

Ruleta Generación Inicial


0.037 0.103

0.264

0.595

1 2 3 4

Figura 10. Ruleta degeneración Inicial

4.- Seleccionar los individuos que formaran las parejas

En forma aleatoria seleccionaremos a tres individuos de la tabla de generación 0 para que

sean padres:

x1 0 x2 0 x3 0
37

A continuación, se forman las parejas que procrearán, las cuales quedan conformadas como

sigue:

5.- Crear individuos nuevos mediante cruce y/o mutación

De la primera pareja

Y tomando un punto de corte generado en forma aleatoria luego del 2do bit los hijos

generados resultan:

Mientras que de la segunda pareja:

Y tomando un punto de cruce luego del 3er bit los hijos que resultan del apareamiento

son:
38

Se acepta que muta su segundo bit para pasar a:

La nueva población P1 queda conformada como sigue:

6.- Evaluación de la nueva población

Nuevamente se construye una tabla para visualizar la evaluación de la nueva

población. La tabla muestra ya una evolución: el valor del fitness promedio ha aumentado

a 107.25.

GENERACIÓN 1

Individuo Represent. Valor x Fitness fi Prob. Selecc.Prob.


݂݅ Τȭ݂݅ Acumulada
‫ݔ‬ଵభ 0100 4 16 0.037 0.037
‫ݔ‬ଶభ 1101 13 169 0.394 0.431
‫ݔ‬ଷభ 1010 10 100 0.233 0.664
‫ݔ‬ସభ 1100 12 144 0.336 1.000
ȭ݂݅ ୀ 429
݂ௗ
௠ ௘ௗ௜௢ୀ107.25
Tabla 3. Evaluación de la población de la Generación 1

Se van obteniendo, repitiendo estos pasos, las siguientes generaciones; cuyos resultados

se muestran a continuación:
39

GENERACIÓN 2

PADRES HIJOS
‫ݔ‬ଷభ 101|0 1011 ‫ݔ‬ଵమ
‫ݔ‬ଶభ 110|1 1100 ‫ݔ‬ଶమ
‫ݔ‬ଶభ 11|01 1100 ‫ݔ‬ଷమ
‫ݔ‬ସభ 11|00 1101 ‫ݔ‬ସమ

Tabla 4. Selección y creación de Individuos para la Generación 2

GENERACIÓN 2

Individuo Represent. Valor x Fitness fi Prob. Selecc.Prob.


݂݅ Τȭ݂݅ Acumulada
‫ݔ‬ଵమ 0100 11 121 0.209 0.209
‫ݔ‬ଶమ 1101 12 144 0.249 0.458
‫ݔ‬ଷమ 1010 12 144 0.249 0.707
‫ݔ‬ସమ 1100 13 169 0.292 1.000
ȭ݂݅ ୀ 578
݂ௗ
௠ ௘ௗ௜௢ୀ 144.5

Tabla 5. Evaluación de la población de la Generación 2

GENERACIÓN 3

PADRES HIJOS
‫ݔ‬ଵమ 10|01 1111 ‫ݔ‬ଵయ
‫ݔ‬ଶమ 10|11 1001 ‫ݔ‬ଶయ
‫ݔ‬ଷమ 1|100 1101 ‫ݔ‬ଷయ
‫ݔ‬ସమ 1|101 1100 ‫ݔ‬ସయ
40

Tabla 6. Selección y creación de Individuos para la Generación 3

GENERACIÓN 3

Individuo Represent. Valor x Fitness fi Prob. Selecc.Prob.


݂݅ Τȭ݂݅ Acumulada
‫ݔ‬ଵమ 0100 15 225 0.363 0.363
‫ݔ‬ଶమ 1101 9 81 0.131 0.494
‫ݔ‬ଷమ 1010 13 169 0.273 0.767
‫ݔ‬ସమ 1100 12 144 0.233 1.000
ȭ݂݅ ୀ 619
݂ௗ
௠ ௘ௗ௜௢ୀ
154.75

Tabla 7. Evaluación de la población de la Generación 3

Finalmente, resulta interesante observar, la convergencia del método a través de los

gráficos en lo que se muestra el mejor individuo en cada población y su fitness promedio.

MEJOR INDIVIDUO POBLACION FITNESS


individuo Valor de X PROMEDIO
‫ݔ‬ଷబ 12 ܲ଴ 60.5
‫ݔ‬ଶభ 13 ܲଵ 107.25
‫ݔ‬ସమ 13 ܲଶ 144.5
‫ݔ‬ଵయ 15 ܲଷ 154.75

Tabla 8. Mejor individuo y fitness promedio de cada población generada


41

CONVERGENCIA DEL AG
16 15
14 13 13
12
12
Mejor individuo

10
8
6
4
2
0
Población

Gráfico 1. Convergencia del AG con el mejor individuo de cada población

EVOLUCIÓN FITNESS PROMEDIO


180
160 154.75
140 144.5
Fitness promedio

120
107.25
100
80
60.5
60
40
20
01 2 3 4

POBLACIÓN

Gráfico 2. Evolución del Fitness Promedio


42

Se ha explicado con este ejemplo el funcionamiento de un algoritmo genético simple; y

los ejemplos dados corresponden a la representación de cromosomas como strings de

bits, para la cual los operadores de cruzamiento por puntos de cruce único o múltiple dan

como resultado otra string de bits igualmente válida.

Las restricciones impuestas por los límites mínimo y máximo que puede tomar cada

variable se salvan con el sistema de representación adoptado, tal como se explicó al inicio

y por lo tanto, la descendencia de estos cromosomas generará hijos dentro del rango de

validez.

En el caso de que los cromosomas representen rutas alternativas los operadores no

podrán ser utilizados tal cual se describieron sino que deben adaptarse para

cumplir la propiedad de generar hijos válidos; esto origina a que se tenga recurrir a

los diversos tipos de algoritmos genéticos existentes en la programación genética.


43

CONCLUSIONES

El Algoritmo Genético se presenta como un método robusto en el campo de la

ingeniería, ya que su sistema de búsqueda partiendo de un conjunto de puntos no

de uno sólo como en otros métodos y mediante los operadores de selección, cruce

y mutación de la mecánica natural, le permiten resolver problemas que se

presentarán en las diversas áreas de la ingeniería eléctrica.

Este informe es una introducción conceptual a los algoritmos genéticos. Nuestro

propósito ha sido el de presentar una visión general del funcionamiento de esta

herramienta de análisis numérico y modelización, para que pueda comprender el

funcionamiento y el potencial de la misma. Para conseguir este objetivo, hemos

explicado de dónde vienen y cómo son los algoritmos genéticos, mostrando con

una aplicación del mismo en el campo de las funciones reales.

Queremos recordar con satisfacción la predicción cumplida, realizada por el

propio Darwin en las frases finales de su obra El Origen de las especies:

“In the distant future I see open fields for far more important researches. […]

Light will be thrown on the origin of man and his history.”


44

BIBLIOGRAFÍA

David Goldberg, Genetic Algorithms in Search, Optimization & Machine Learning.


Addison Wesley. (1989).

David A. Coley, An introduction to Genetic Algorithms for Scientist and Engineers.


World Scientific Publishing Co. (1999).

Kamlesh Mathur, Daniel Solow. Investigación de Operaciones. Prentice Hall. 1996.

También podría gustarte