El código del libro Algoritmos Genéticos con Python por Clinton Sheppard
Obtén una introducción práctica al aprendizaje automático con los algoritmos genéticos usando Python. Los tutoriales paso a paso desarrollan tus habilidades desde el ¡Hola Mundo! hasta optimizar un algoritmo genético con otro y, finalmente, la programación genética; preparándote así para aplicar los algoritmos genéticos a problemas de tu propio campo de especialización.Los algoritmos genéticos son una de las herramientas que puedes usar para aplicar el aprendizaje automático al hallazgo de soluciones buenas (a veces incluso óptimas) a problemas que tienen miles de millones de soluciones posibles. Este libro te ofrece experiencia en hacer que los algoritmos genéticos funcionen, usando proyectos de ejemplo fáciles de seguir a los que puedes recurrir cuando aprendas a usar otras herramientas y técnicas de aprendizaje automático. Cada capítulo es un tutorial paso a paso que te ayuda a desarrollar tus habilidades en el uso de los algoritmos genéticos para resolver problemas usando Python.
- https://www.amazon.com/dp/1548125180/ ISBN-13: 978-1-548125-18-9 (Edición en tapa blanda)
- https://www.amazon.com/dp/B072NDMJ4L (Versión Kindle)
Una breve introducción a los algoritmos genéticos
Capítulo 1: ¡Hola Mundo!
- Adivina una contraseña dado el número de letras correctas en la conjetura. Construye un motor de mutación.
Capítulo 2: El Problema One-max
- Produce un arreglo de bits donde todos son unos. Expande el motor para funcionar con cualquier tipo de gen.
Capítulo 3: Números ordenados
- Produce un arreglo de enteros ordenados. Demuestra el manejo de múltiples objetivos y restricciones de aptitud entre genes.
Capítulo 4: El problema de las ocho reinas
- Encuentra posiciones seguras para las reinas en un tablero de 8x8 y luego expande a NxN. Demuestra la diferencia entre fenotipo y genotipo. Ver el código de muestra.
Capítulo 5: Coloración de grafos
- Colorea un mapa de países donde el español es el idioma nacional usando sólo 4 colores. Introduce conjuntos de datos estándar y trabajo con archivos. También introduce el uso de reglas para trabajar con las restricciones de los genes.
Capítulo 6: El problema de las cartas
- Más restricciones genéticas. Introduce la mutación personalizada, los algoritmos meméticos y la técnica de la suma por diferencia. También muestra un cromosoma en el que la manera de usar un gen depende de su posición en el arreglo de genes.
Capítulo 7: El problema de los caballos
- Encuentra el número mínimo de caballos que hacen falta para atacar todas las posiciones en un tablero. Introduce los genes personalizados y la creación de arreglos de genes. También demuestra los mínimos y máximos locales.
Capítulo 8: Cuadrados mágicos
- Encuentra cuadrados en los que todas las filas, columnas y ambas diagonales de una matriz de NxN tengan la misma suma. Introduce el recocido simulado.
Capítulo 9: El problema de la mochila
- Optimiza el contenido de un recipiente para una o más variables. Introduce la ramificación y poda, así como los cromosomas de longitud variable.
Capítulo 10: Resolver ecuaciones lineales
- Encuentra las soluciones de las ecuaciones lineales con 2, 3 y 4 incógnitas. Variación de ramificación y poda. Refuerza la flexibilidad del genotipo.
Capítulo 11: Generación de Sudoku
- Un ejercicio guiado para generar rompecabezas sudoku.
Capítulo 12: El problema del viajante
- Encuentra la ruta óptima para visitar ciudades. Introduce la recombinación y una reserva de padres.
Capítulo 13: Aproximarse a Pi
- Encuentra los dos números de 10 bits cuyo dividendo está más cerca de Pi. Introduce el uso de un algoritmo genético para optimizar otro.
Capítulo 14: Generación de ecuaciones
- Encuentra la ecuación más corta que produce un resultado específico usando la suma, la resta, la multiplicación, etc. Introduce la programación genética simbólica.
Capítulo 15: El problema de la cortadora de césped
- Genera una serie de instrucciones que hacen que una cortadora de césped corte un campo de césped. Programación genética con estructuras de control, objetos y funciones definidas automáticamente (FDAs).
Capítulo 16: Circuitos lógicos
- Genera circuitos que se comportan como puertas básicas, combinaciones de puertas y finalmente un sumador de 2 bits. Introduce los nodos de árboles y los algoritmos de escalada.
Capítulo 17: Expresiones regulares
- Encuentra expresiones regulares que coincidan con las cadenas buscadas. Introduce la reparación de cromosomas y el control de crecimiento.
Capítulo 18: Tres en raya
- Crea reglas para jugar al juego sin perder. Introduce la selección por torneos.