Está en la página 1de 35

7.

ALGORITMOS GENÉTICOS
En este capítulo verá cómo se puede hacer una
búsqueda mediante procedimientos inspirados en la
evolución natural. Estos procedimientos, normalmente
conocidos como algoritmos genéticos, se basan en ideas
parecidas, en ciertos aspectos, a las de individuos,
apareamiento, recombinación de cromosomas, mutación
genética, adaptación y selección natural.
ALGORITMOS GENÉTICOS
“En lugar de envidiar la naturaleza
debemos emularla” Holland
• Los 46 cromosomas humanos (22 pares
de autosomas y 2 de cromosomas
sexuales) entre los que albergan casi
3.000 millones de pares de bases de ADN
que contienen alrededor de 30.000 a
40.000 genes que codifican proteínas. Las
regiones que codifican ocupan menos del
5 % del genoma (la función del resto del
ADN permanece desconocida), teniendo
algunos cromosomas mayor densidad de
genes que otros.
• Uno de los mayores problemas es encontrar cómo
los genes contribuyen en el complejo patrón de la
ALGORITMOS herencia de una enfermedad, como ejemplo el
GENETICOS caso de la diabetes, asma, cáncer y enfermedades
mentales. En todos estos casos, ningún gen tiene
el potencial para determinar si una persona
padecerá o no la enfermedad.
• Poco a poco se van conociendo algunas
enfermedades cuya causa en la alteración o (como
una mutación) de todo o alguna región de un gen.
Estas enfermedades afectan generalmente a todas
las células corporales. ( de Wikipedia)
3
7.1.ALGORITMOS GENETICOS
 La vida artificial , también puede ser mejor herramienta
para resolver el misterio del origen de la vida en la
tierra.
 Muchos científicos buscan simular la llamada sopa
primordial ( la materia prima de la vida ) tanto en la
forma “húmeda” con productos químicos ) como en la
forma “seca” ( con bits de computadora).
 Los Virus de computador son formas de vida artificial .
 Después de 5 billones de años proveyéndonos éxitos , la
naturaleza puede ser vista en ultimo análisis como un
gran sistema de solución de problemas

 Llamado también programación evolutiva o aprendizaje


mediante evolución simulada

4
7.1. ALGORITMOS GENETICOS
 “Los algoritmos genéticos son algoritmo de busqueda
basados en los mecanismos de selección natural”
Golberg(1989)
 Los algoritmos genéticos fueron desarrollados por John
Holland, junto a su equipo de investigación, en la
universidad de Michigan en la década de 1970 [Holland,
1975] y conforman una técnica informática dentro del área
de la Inteligencia Artificial para la resolución de
problemas. .
 Los algoritmos genéticos trabajan sobre una población de
“palabras” o “strings” que son secuencia de códigos,
generalmente de forma binaria que representan
determinados parámetros, para eso crean nueva
población de “palabras “, son aplicables sucesivas
operaciones de reproducción , cruzamiento y mutación
5
7.2.ELEMENTOS DE UN ALGORITMO GENÉTICO

 Los conceptos de Algoritmos Genéticos se basan en


conceptos de biología y genética
 Individuo.-. Una cadena representa a una cromosoma,
por lo tanto también a un individuo y cada posición de la
cadena representa a un gen.
 Población.- Conjunto de individuos (Cromosomas)
 Función Fitness. o función 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, si no igual a la función
objetivo que se quiere optimizar.

6
7.3 OPERADORES GENETICOS
• Son los diferentes métodos u operaciones que se
pueden ejercer sobre una población y que nos permite
obtener poblaciones nuevas.
• a) Reproducción (Selección).- Es un proceso en el
cual palabras “strings” individuales son copiados de
acuerdo con valores dados por la función objetiva f
( En la biología denominada función de Fitness, o
función de adaptación”)
• Por ejemplo el resultado de decodificación binaria de string (10101)
representa sus “fitness” o su aptitud. La función objetiva podría ser por
ejemplo maximizar este valor
10101= 1 x 24 + 0x 23 +1 x 22 + 0x 21 +1 x 20 =21 (Fitness)
Población Fitness
0001= 1
0110= 6
1010= 12 ( tiene mas posibilidad de sobrevivir)

7
7.3 OPERADORES GENETICOS
• La función de evaluación se puede obtener mediante la
siguiente fórmula que calcula el cociente entre el valor Fitness de
un individuo y la suma total de los valores Fitness de todos los
individuos de la población. Este resultado mide la probabilidad de
selección Ps (i) de cada individuo.

Figura 8 .1 - Probabilidad de que la hipótesis f(i) sea elegida

8
7.3 OPERADORES GENETICOS
Otras opciones de selección
• Torneo, donde se seleccionan 2 individuos aleatoriamente de
la población y se opta por el más apto con una probabilidad
predeterminada P (y por el menos apto con probabilidad (1 -
P)). El mas apto se copia dos veces y se elimina el menos apto.
• “Ranqueo": se ordena la población por aptitud y se asignan
probabilidades de selección de acuerdo a su posición (en
lugar de su aptitud).
• Criterio de paro. Normalmente cuando un porcentaje alto de
la población converge a un valor. Si con ese valor no se llega
a la medida esperado, entonces se toma una pequeña
proporción y se inyecta '' diversidad genética" (se generan
aleatoriamente nuevos individuos), o inclusive se reemplaza
completamente la población.

9
7.3 OPERADORES GENETICOS
• b) Cruzamiento.- Se aplica a
parejas de individuos, que 5 1
combinan sus características para 2 4
dar lugar a una nueva pareja , los
descendientes
5 1
• Existen diferentes tipos de cruza, (i)
Cruza simple; un solo punto de 2 4
cruza (una máscara de 1's seguida
de 0's), (ii) cruza de dos puntos y 5 4
(iii) cruza uniforme.
2 1

10
7.3 OPERADORES GENÉTICOS
• Cruce usando máscara de cruce
• Cruce Simple:
Cadenas padre Mascara de Cruce Hijos
11101001000 11101010101
11111000000
00001010101 00001001000

• Cruce Doble:
Cadenas padre Mascara de Cruce Hijos
11101001000 11001011000
00111110000
00001010101 00101000101

11
OPERADORES GENETICOS
• Mutación.- Es una Alteración
aleatoria y ocasional del valor de
una posición , acontece de
acuerdo con una probabilidad
de mutación fijada, En caso de
una strings binaria significaría la
mutación de 0 a 1 , o de 1 para
0 en caso contrario (produce un
nuevo hijo de un solo padre
cambiando el valor de uno de
sus bits elegido al azar).
Generalmente se aplica después
de hacer uso del operador cruce.
• Inversión
• Intercambio de genes

12
7.4 CICLO GENERAL DE UN ALGORITMO
GENÉTICO ESTANDAR
El proceso de resolución de problemas con algoritmos genéticos
generalmente sigue los siguientes pasos
• 1. Primera generación: el sistema genera varios centenares de
soluciones posibles.(generalmente en forma aleatoria)
• 2. Evaluación: las que mejor se ajustan a los requerimientos, obtienen
más posibilidades de reproducirse.
• 3. Segunda generación: los individuos-soluciones de la primera
generación se emparejan al azar y producen nuevas soluciones.
• 4. Evaluación: los que mejor se ajustan a los requerimientos obtienen
más posibilidades de reproducirse. Las peores son descartadas.
• 5. Continuación: los pasos 3 y 4 se reiteran docenas de miles de
veces. Tras miles de generaciones, el mejor individuo-solución resuelve
el problema de manera satisfactoria. No se puede aspirar al óptimo
absoluto.

13
7.4 CICLO
GENERAL DE UN
ALGORITMO
GENETICO
ESTANDAR

14
7.5. PROBLEMAS DE APLICACIÓN DE
ALGORITMOS GENETICOS
7.5.1. ENCONTRAR EL MÁXIMO DE UNA FUNCIÓN
• La siguiente aplicación tiene por
objetivo ilustrar como funciona un
algoritmo genético.
• La aplicación se a hecho usando
Visual Basic en hoja de cálculo Excel.
• En la aplicación se quiere obtener el
máximo de una función en este caso
la función es F(x)= -X2+50X
• Con el programa se obtuvo la solución
en la generación 8 con X=22 y
f(x) = 616 en este caso todos los
individuos convergen al valor 22. La
solución óptima es X=25 y F(x)= 625 Fitness=28

15
7.5.1. ENCONTRAR EL MAXIMO DE UNA
FUNCION

16
7.5.2 .- USO DE ALGORITMOS GENÉTICOS EN MEZCLA ÓPTIMA
DE PRODUCTOS PARA OBTENER MEJOR CALIDAD

• El siguiente ejemplo trata de A 9 1 2 3 4 5 4 3 2 1


Z 8 2 3 4 5 6 5 4 3 2
Explicar paso a paso el U 7 3 4 5 6 7 6 5 4 3
problema de combinación de C 6 4 5 6 7 8 7 6 5 4
dos ingredientes para obtener A 5 5 6 7 8 9 8 7 6 5
galletas de calidad mostrados R 4 4 5 6 7 8 7 6 5 4
3 3 4 5 6 7 6 5 4 3
en la pagina 544 al 552. del 2 2 3 4 5 6 5 4 3 2
libro de Patrick Henry Winston. 1 1 2 3 4 5 4 3 2 1
1 2 3 4 5 6 7 8 9
H A R I N A

Kilogramos de Harina Kilogramos de azúcar


5 4 Fitness=8

17
7.5.2 .- Uso de algoritmos genéticos en mezcla optima
de productos para obtener mejor calidad

18
7.5.3 USO DE ALGORITMOS GENETICOS PARA ASIGNACION DE
RECURSOS Se tiene 4 millones que se quiere asignar a tres plantas
• Un grupo de financieros Arequipeños (Pequeños empresarios) han
resuelto invertir 4 millones en tres proyectos (llamadas zonas A,B,C) Un
estudio de mercado ha sido realizado en cada una de las zonas citadas y
han sido establecidas curvas de ganancias medias, en millones de soles,
en función de las inversiones totales (almacenes, tiendas de venta,
representantes, publicidad, etc.) Estos datos se ilustran en la tabla 7.1.
Para simplificar los cálculos, supondremos que las asignaciones de
créditos o de inversiones deben hacerse por unidades de 1 millón de soles.
La pregunta es: ¿en dónde se deben de asignar los 4 millones de soles de
los que se dispone para que la ganancia total sea máxima?

Inversión Beneficio Beneficio Beneficio


Tabla 7.1. Datos obtenidos (millones) A B C
con la investigación de
mercado en cada una de las 0 0 0 0
regiones en estudio
1 1,2 1,5 1,8

2 2,3 2 2,3

3 3,4 3 2.8

4 3,5 3,1 3
19
7.5.3. USO DE ALGORITMOS GENETICOS PARA ASIGNACION DE
RECURSOS
2 1 1

Significa que se
tiene que invertir 2
millones en el
proyecto 1 , 1
millón en el
proyecto 2 y un
millón en el
proyecto 3. Con
esta cromosoma
se obtendría una
ganancia de
2,3+1,5+1.8= 5,6
millones

20
7.5.3. USO DE ALGORITMOS GENETICOS PARA ASIGNACION DE
RECURSOS (USO DE PROGRAMACIÒN DINÀMICA)
Etapa III
X1,2,3= Lo X3\K3 0 1 2 3 4 f3(X3) K 3*
disponible para 0 0 0 0
invertir 1 1.8 1.8 1
2 2.3 2.3 2
K123=Decisión,
3 2.8 2.8 3
lo que invertiré 4 3 3 4
f3(X3)=mayores Etapa II
ganancias X2\K2 0 1 2 3 4 f2(X2) K 2*
0 0+0 0 0
1 0+1.8 1.5+0 1.8 0
2 0+2.3 1.5+1.8 2+0 3.3 1
3 0+2.8 1.5+2.3 2+1.8 3+0 3.8 1ó2
4 0+3 1.5+2.8 2+2.3 3+1.8 3.1+0 4.8 3
Etapa I
X1\K1 0 1 2 3 4 f11(X1) K1*
4 0+4.8 1.2+3.8 2.3+3.3 3.4+1.8 3.6+0 5.6 2
X3 Capital disponible para invertir en la planta 3
X2 Capital disponible para invertir en la planta 2 y 3
X1 Capital disponible para invertir en la planta 1,2 y 3
21
USO DE ALGORITMOS GENETICOS PARA
ASIGNACION DE RECURSOS

La pregunta es si Usted tuviera 20 millones para asignar


en 20 plantas, puede aplicar programación dinámica.

22
7.5.4 USO DE ALGORITMOS GENETICOS PARA LA
PROGRAMACION DE LA PRODUCCION
(Secuencias de Producción)

• Producción Intermitente.- Sistemas intermitentes producen una


gran variedad de productos, uno a la vez (en cuyo caso se dice
que están hechos a la medida) o números finitos de lotes de
diferentes productos de acuerdo con el pedido del cliente, Ej.
Producción por pedido en talleres mecánicos. [ TAWFIX p.266].
• Programación de la producción.- La programación implica
asignar fechas de entrega para trabajos concretos, pero muchos
trabajos compiten simultáneamente por los mismos recursos
[HEIZER, p. 201].
• IMPORTANCIA DE LA PROGRAMACIÓN [KRAJEWSKI, p. 89]
• La programación es importante para:
• Finanzas y contabilidad.- Minimizar costos.
• Recursos humanos.- Manejo más eficiente
• Marketing.- Cumplimiento de las fechas de entrega.
• Sistemas de información.- Diseñar software y base de datos
apropiados para brindar soporte al proceso de programación.
• Operaciones.- Programación eficaz de los sistemas producción.
23
8.5.4. USO DE ALGORITMOS GENÉTICOS PARA SECUENCIAS DE
PRODUCCION

• SECUENCIA DE PRODUCCION.- Aplicado en la


programación de la Producción que implica asignar
fechas de entrega para trabajos concretos, pero muchos
trabajos compiten simultáneamente por los mismos
recursos [HEIZER, p. 201].
• En las pequeñas empresas la programación de la
programación es importante , ya que se tiene que hacer
trabajos en pequeños lotes tendientes a 1

24
7.5.4.USO DE ALGORITMOS GENETICOS PARA
SECUENCIAS DE PRODUCCION
• Ejemplo un pequeño empresario tiene los siguientes pedidos

M1 M2 M3 M3
Pedido Producto Cortado Soldador Acabados Pintado
A Silla Tipo A 5 2 5 4
B Silla Tipo B 4 1 1 5
C Mesa 5 4 5 3
D Carpeta 4 4 3 1
E Estante 6 5 6 6
Cual es la secuencia optima para el micro empresario
Secuencia Original ABCDE =41
Secuencia Optima BEACD = 35
En 5 pedidos hay 5! = 120 posibilidades
Si habría 10 pedidos habría 10! Posibilidades = 3 628 800 posibilidades
25
7.5.4.USO DE ALGORITMOS GENETICOS PARA SECUENCIAS DE
PRODUCCION
SECUENCIA ORIGINAL ABCDE= 41

26
7.5.4.USO DE ALGORITMOS GENETICOS PARA SECUENCIAS DE
PRODUCCION
SECUENCIA OPTIMA BEACD= 35

27
7.5.4.USO DE ALGORITMOS GENETICOS PARA SECUENCIAS DE
PRODUCCION (Asignar 5 productos en 4 máquinas)

28
7.5.4.USO DE ALGORITMOS GENETICOS PARA SECUENCIAS DE
PRODUCCION (Asignar 10 productos en 4 máquinas)

Secuencia Original:1-2-3-4-5-6-7-8-9-10 = 67
Mejor Secuencia :5-2-7-6-10-1-8-9-3-4 = 63
Peor Secuencia : 1-4-10-6-8-3-9-7-2-5= 71 29
7.5 ALGORITMOS GENETICOS
• Como Saber si es Posible usar un Algoritmo Genético
La aplicación más común de los algoritmos genéticos ha sido la solución de
problemas de optimización, en donde han mostrado ser muy eficientes y
confiables. Sin embargo, no todos los problemas pudieran ser apropiados
para la técnica, y se recomienda en general tomar en cuenta las siguientes
características del mismo antes de intentar usarla:
Su espacio de búsqueda (i.e., sus posibles soluciones) debe estar delimitado
dentro de un cierto rango.
Debe poderse definir una función de aptitud que nos indique qué tan buena o
mala es una cierta respuesta.
Las soluciones deben codificarse de una forma que resulte relativamente fácil
de implementar en la computadora.

30
ACTIVIDADES
1. Programación dinámica. Surfside Swimming Pools tiene
pedidos por 6 unidades para producir con tiempo extra durante las
próximas 3 semanas. Deben programar al menos una unidad por
semana y pueden hacer como máximo 3 unidades en ese lapso.
Considerando su carga normal, costo de tiempo extra, precios de
venta, y demás, que pueden ganar las utilidades mostradas en la
tabla 14-40 en diferentes niveles de producción, úsese
programación dinámica para programar la producción de las 6
unidades sobre un período de 3 semanas, de tal modo que se
maximice la utilidad del pedido
32
ACTIVIDADES
2. Modelar el problema de la ruta mas corta (problema de
la diligencia).
3. Resolver el problema de Galleto.
4. Encontrar el máximo de una función, modelar en excel
paso a paso.
5. Distribución de planta aplicando algoritmos genéticos.

33
TAREA
Usando algoritmos bio-inspirados resuelva o programe
1. hallar el máximo y el mínimo de una función f(x) =(x+2)*(x-1)X-3)
Los valores son enteros
8 individuos
2. ecuación de dos variables
X+Y=3
X-Y=-1
3. resuelva el problema de enjambre de partícula
5. colonia de hormigas
6. problema de secuencias de producción.
7. torres de Hanoi

34
Bibliografía
https://youtu.be/K88hTnzo-tI

https://youtu.be/Z-71VPnkxJQ

Rafael Lahoz-Beltrá/BIOINFORMÁTICA simulación, vida artificial e


inteligencia artificial/Editorial Diaz de Santos

Bonifacio Martín del Brío-Alfredo Sanz Molina/Redes Neuronales y Sistemas


Difusos/Alfaomega

35

También podría gustarte