El documento presenta una introducción a los algoritmos genéticos, los cuales se basan en los principios de la evolución biológica para resolver problemas de optimización. Explica que los algoritmos genéticos generan soluciones candidatas codificadas como cromosomas y las someten a procesos de selección natural, cruzamiento y mutación para producir nuevas generaciones con el fin de encontrar soluciones óptimas. También menciona algunas aplicaciones como el diseño de circuitos y la planificación de producción.
KELA Presentacion Costa Rica 2024 - evento Protégeles
Algoritmos Genéticos: la evolución del software
1. Algoritmos Genéticos
La evolución del software
Mg. Ing. Gabriel Rojas
Datos de contacto
ProfesorGavit0@gmail.com
lgabrielrojas@ucundinamarca.edu.co
https://ProfesorGavit0.blogspot.com
Universidad de Cundinamarca
Facultad de ingeniería
Ingeniería de sistemas
Sede: Chía – 2017
www.unicundi.edu.co
This file is free to use under Creative Commons Attribution license.
El presente documento presenta una vista general al uso de los conceptos genéticos de la biología, como modelo de desarrollo de soluciones de
software.
Cualquier persona puede usar este documento de forma completamete libre aunque se agradece mencionar al autor.
2. Los Algoritmos Genéticos son un tipo de software que se basa en los principios que se conocen sobre
cómo la naturaleza transmite las cualidades de los individuos a su descendencia, para lograr que dichas
cualidades se preserven, pues ellas hacen que el individuo sea viable y apto para lograr el principal
objetivo de la vida: “Seguir viviendo”. En caso del software el objetivo será el que desee el
programador, y el Algoritmo Genético se encargará de ello, al igual que lo hace la naturaleza.
Resumen
3. ¿Qué es la genética?
Es el área de estudio de la biología que
busca comprender y explicar cómo se
transmite la herencia biológica de
generación en generación.
4. ¿Dónde empezó todo?
Gregor Mendel
1866
George Beadle
1945
Watson y Crick
1953
Propone “factores” (gen),
como responsable de la
transmisión de características
Postula el concepto
moderno del gen como
mínima unidad funcional
Presentan la estructura
de la molécula de ADN
5. ¿Qué es un gen?
Es la mínima unidad de almacenamiento
de información genética, para describir
cómo deben funcionar la células.
Se encuentran en los cromosomas.
6. ¿Qué relación tienen la genética y la computación?
Unir entidades simples (0 y 1) de forma
organizada para representar información ya lo
hacia la naturaleza antes de los computadores.
Byte
Gen
De la misma forma en que Turing concibió
una máquina de procesamiento, el núcleo de
la célula genera proteínas leyendo los datos
que tienen los Genes.
A G A T T 01000001 01000111 01000001 01010100 01010100
| | | | | | | | | |
T C T A A 01010100 01000011 01010100 01000001 01000001
7. Un ser vivo es lo que sus genes definan de él.
Cada gen tiene una posición dentro de una larga
cadena (cromosoma).
Un sistema de información es un conjunto de estructuras
ordenadas de forma lógica.
Cada estructura es por si misma una larga cadena de
ceros y unos.
¿Qué relación tienen los sistemas biológicos y los
informáticos?A G A T T 01000001 01000111 01000001 01010100 01010100
| | | | | | | | | |
T C T A A 01010100 01000011 01010100 01000001 01000001
8. ¿Si los sistemas biológicos evolucionan y por qué los
informáticos no?A G A T T 01000001 01000111 01000001 01010100 01010100
| | | | | | | | | |
T C T A A 01010100 01000011 01010100 01000001 01000001
void main()
{
cout << “Hola mundo”;
}
Skynet ()
{
bool MundoDominado = false;
CrearInternet();
MundoDominado = LoDomino();
while(! MundoDominado )
{
CrearRedSocial(3);
CrearSmartPhone(10);
CrearRobots(1000);
CrearReality(10000);
CrearNetflix();
CrearPokemonGO();
MundoDominado = LoDomino();
}
cout << “Adiós mundo”;
}
Y solo hizo falta F^FFFFFFFF generaciones.
9. ¿Qué es un algortimo genético?
Los Algoritmos Genéticos (AGs), son
métodos adaptativos que se basan en el
proceso genético de los organismos vivos.
10. ¿Dónde empezó todo?
Charles Darwin
1859
Alan Turin
1936
John Hollan
1975
Postula los principios de
selección natural y
supervivencia del más apto
Pensó en una máquina
hipotética que podía simular
cualquier algoritmo
Presenta "Adaptation in
Natural and Artificial
Systems“
11. ¿Para qué los algoritmos genéticos?
• Diseño automatizado de equipamiento industrial.
• Construcción de árboles filogenéticos.
• Optimización de carga de contenedores.
• Diseño de topologías de circuitos impresos.
• Aprendizaje de comportamiento de robots.
• Planificación de producción multi-criterio.
• Predicción de estructura de ARN.
• Construcción de horarios en grandes universidades, evitando
conflictos de clases.
• Problema del viajante.
Para resolver problemas de
búsqueda y optimización.
12. ¿Cómo se programan?
BEGIN /* Algoritmo Genético Simple */
Generar una población inicial.
Computar la función de evaluación de cada individuo.
WHILE NOT Terminado DO
BEGIN /* Producir nueva generación */
FOR Tamaño población DO
BEGIN /*Ciclo Reproductivo */
Seleccionar dos individuos de la anterior generación, para el cruce
(probabilidad de selección proporcional a la función de evaluación del individuo).
Cruzar con cierta probabilidad los dos individuos obteniendo dos descendientes.
Mutar los dos descendientes con cierta probabilidad.
Computar la función de evaluación de los dos descendientes mutados.
Insertar los dos descendientes mutados en la nueva generación.
END
IF la población ha convergido THEN
Terminado:= TRUE
END
END
14. ¿Un poco más claro, como se programa?
0) Analizar objetivo y ente
que lo cumplirá
1) Definir las características
2) Crear función objetivo
3) Cruzar y repetir…
¿Para qué?
¿Qué cualidades
se requieren?
¿Cómo sé cuál
es mejor?
4) Mutar para crear héroes
¿Qué cualidades uso
de los mejores?
¿Cómo evito óptimos
que no son lo son
tanto?
15. Definiendo el cromosoma
A 5 G 0 T 0
B 7 G 0 T 1
H 3 I 2 Z 2
H 3 P 6 W 1
A 5 G 0 T 0
Forma
Material Tipo motor
Combustible Tamaño
Número ventanas
5000
4500
1200
300
5000
Altura alcanzada
16. Seleccionar los más aptos
A 5 G 0 T 0
B 7 G 0 T 1
5000
4500
A partir de la función objetivo se seleccionan
los individuos más aptos, es decir, que más se
acercan a un valor buscado.
Si el valor es aceptable se termina la
búsqueda.
17. Seleccionar los más aptos
A 5 G 0 T 0
B 7 G 0 T 1
5000
4500
A 5 G 0 T 1
B 7 G 0 T 0
18. Mutar para evitar optimos locales
Individuos muy aptos al inicio pueden
llevar a pobre soluciones y estancar el
desarrollo de una especie.B 7 G x T 0
No me rechacen por ser
diferente.
19. Voy a hacer todo con algoritmos genéticos
En el caso de que existan técnicas especializadas
para resolver un determinado problema, lo más
probable es que superen al Algoritmo Genético, tanto
en rapidez como en eficacia.
El gran campo de aplicación de los Algoritmos
Genéticos se relaciona con aquellos problemas para
los cuales no existen técnicas especializadas.
Incluso en el caso en que dichas técnicas existan, y
funcionen bien, pueden efectuarse mejoras de las
mismas hibridándolas con los Algoritmos Genéticos.
20. ¿Que pasó con el dinosaurio?
https://github.com/ivanseidel/IAMDinosaur?files=1
21. • Los Algoritmos genéticos pueden ser usados en una amplia variedad de problemas para los cuales no
se tiene una mecanismo especifico o eficiente de resolver.
• Siempre es posible encontrar formas para resolver problemas de índole técnico, ingenieril o científico
viendo las soluciones ya probadas e implementadas por la naturaleza.
• El desarrollo de la computación nos llevará inexorablemente a la creación de "vida artificial“.
Conclusiones
22. • https://es.wikipedia.org/wiki/Algoritmo_genético
• J. Holland (1975). Adaptation in Natural and Articial Systems, University of Michigan Press, Ann
Arbor.
• http://www.sc.ehu.es/ccwbayes/docencia/mmcc/docs/temageneticos.pdf
Referencias
23. Preguntas?
ProfesoGavit0@gmail.com
A G A T T 01000001 01000111 01000001 01010100 01010100
| | | | | | | | | |
T C T A A 01010100 01000011 01010100 01000001 010000010
01000111 01100001 01110110 01101001 01110100 00110000