Algoritmos Genéticos con Python
eBook - ePub

Algoritmos Genéticos con Python

Un enfoque práctico para resolver problemas de ingeniería

Daniel Gutiérrez Reina, Alejandro Tapia Córdoba, Alvaro Rodríguez del Nozal

Share book
  1. 234 pages
  2. Spanish
  3. ePUB (mobile friendly)
  4. Available on iOS & Android
eBook - ePub

Algoritmos Genéticos con Python

Un enfoque práctico para resolver problemas de ingeniería

Daniel Gutiérrez Reina, Alejandro Tapia Córdoba, Alvaro Rodríguez del Nozal

Book details
Book preview
Table of contents
Citations

About This Book

Desde su aparición en la década de los 60, los algoritmos genéticos han ido ganando popularidad, gracias al frenético crecimiento de la capacidad computacional en los últimos años. Finalmente se han abierto camino en el ámbito de la ingeniería como una de las herramientas más prometedoras para resolver problemas de gran complejidad, inabordables desde los enfoques clásicos de la ingeniería.Los algoritmos genéticos son estrategias de resolución de problemas de optimización basados en la teoría de la selección natural de Darwin, mediante la cual aquellos individuos más aptos para sobrevivir tienen una mayor probabilidad de crear descendencia y transmitir su información genética. Partiendo de esta base, son muchas las propuestas que se han desarrollado para abordar una gran cantidad de problemas de diferentes áreas de la ingeniería.En este libro le proponemos adentrarte en el mundo de los algoritmos genéticos utilizando Python, uno de los lenguajes de programación más populares en la actualidad y con más crecimiento durante los últimos años. Los contenidos del libro se han diseñado para que sean sencillos, concisos y fáciles de implementar, con ejemplos directos de aplicación paraque pueda practicar desde la primera página.Con este libro aprenderá a: - Entender la naturaleza y el funcionamiento de los algoritmos genéticos, comprendiendo las diferentes operaciones y procesos que lo componen.- Conocer las diferentes implementaciones de los algoritmos genéticos de mayor relevancia, así como identificar las ventajas e inconvenientes de cada uno para determinar su potencial para resolver un determinado problema.- Conocer a fondo y utilizar los diferentes operadores (selección, mutación y cruce) que la librería deap pone a su disposición.- Desarrollar un algoritmo genético desde cero en Python y utilizarlo para resolver sus propios problemas de ingeniería.- Conocer y estudiar aplicaciones de relevancia de algoritmos genéticos en el ámbito de la ingeniería, tales como la gestión del despacho económico, el diseño de plantas hidroeléctricas o la disposición de sensores inalámbricos.

Frequently asked questions

How do I cancel my subscription?
Simply head over to the account section in settings and click on “Cancel Subscription” - it’s as simple as that. After you cancel, your membership will stay active for the remainder of the time you’ve paid for. Learn more here.
Can/how do I download books?
At the moment all of our mobile-responsive ePub books are available to download via the app. Most of our PDFs are also available to download and we're working on making the final remaining ones downloadable now. Learn more here.
What is the difference between the pricing plans?
Both plans give you full access to the library and all of Perlego’s features. The only differences are the price and subscription period: With the annual plan you’ll save around 30% compared to 12 months on the monthly plan.
What is Perlego?
We are an online textbook subscription service, where you can get access to an entire online library for less than the price of a single book per month. With over 1 million books across 1000+ topics, we’ve got you covered! Learn more here.
Do you support text-to-speech?
Look out for the read-aloud symbol on your next book to see if you can listen to it. The read-aloud tool reads text aloud for you, highlighting the text as it is being read. You can pause it, speed it up and slow it down. Learn more here.
Is Algoritmos Genéticos con Python an online PDF/ePUB?
Yes, you can access Algoritmos Genéticos con Python by Daniel Gutiérrez Reina, Alejandro Tapia Córdoba, Alvaro Rodríguez del Nozal in PDF and/or ePUB format, as well as other popular books in Computer Science & Programming in Python. We have over one million books available in our catalogue for you to explore.

Information

Publisher
Marcombo
Year
2020
ISBN
9788426730688

I Parte 1: Introducción a los algoritmos genéticos

1 Introducción
1.1 Introducción a los algoritmos genéticos
1.2 Primeros pasos mediante un problema sencillo
1.3 Definición del problema y generación de la población inicial
1.4 Función objetivo y operadores genéticos
1.5 Operadores genéticos
1.6 Últimos pasos: Algoritmo genético como caja negra
1.7 ¿Cómo conseguir resultados consistentes?
1.8 Convergencia del algoritmo
1.9 Exploración versus explotación en algoritmos genéticos
1.10 Código completo y lecciones aprendidas
1.11 Para seguir aprendiendo
2 El problema del viajero
2.1 Introducción al problema del viajero
2.2 Definición del problema y generación de la población inicial
2.3 Función objetivo y operadores genéticos
2.4 Selección del algoritmo genético
2.5 Últimos pasos
2.6 Comprobar la convergencia del algoritmo en problemas complejos
2.7 Ajuste de los hiperparámetros: Probabilidades de cruce y mutación
2.8 Acelerando la convergencia del algoritmo: El tamaño del torneo
2.9 Acelerando la convergencia del algoritmo: Aplicar elitismo
2.10 Complejidad del problema: P vs NP
2.11 Código completo y lecciones aprendidas
2.12 Para seguir aprendiendo
3 Algoritmos genéticos y benchmarking
3.1 Introducción a las funciones de benchmark
3.2 Aprendiendo a usar las funciones de benchmark: Formulación del problema
3.3 Definición del problema y generación de la población inicial
3.4 Función objetivo y operadores genéticos
3.5 Código completo
3.6 Evaluación de algunas funciones de benchmark
3.7 Ajuste de los hiperparámetros de los operadores genéticos
3.8 Lecciones aprendidas
3.9 Para seguir aprendiendo
4 Algoritmos genéticos con múltiples objetivos
4.1 Introducción a los problemas con múltiples objetivos
4.2 Introducción a la Pareto dominancia
4.3 Selección del algoritmo genético
4.4 El problema de la suma de subconjuntos con múltiples objetivos
4.5 Funciones de benchmark con múltiples objetivos
4.6 Lecciones aprendidas
4.7 Para seguir aprendiendo

Illustration

1.1 Introducción a los algoritmos genéticos

Los algoritmos genéticos son técnicas de optimización metaheurísticas, también llamadas estocásticas o probabilísticas (Holland et al., 1992) (Goldberg, 2006). Aunque fueron propuestos en la década de los 60s por Jonh Holland (Holland, 1962) (Holland, 1965) (Holland et al., 1992), no ha sido posible su aplicación en problemas de ingeniería reales hasta hace un par de décadas, debido principalmente a que son computacionalmente intensivos y que, por lo tanto, necesitan una capacidad computacional elevada para llevar a cabo multitud de operaciones en poco tiempo. La idea principal de un algoritmo genético es realizar una búsqueda guiada a partir de un conjunto inicial de posibles soluciones, denominado población inicial, el cual va evolucionando a mejor en cada iteración del algoritmo (Lones, 2011). Dichas iteraciones se conocen como generaciones y, normalmente, la última generación incluye la mejor o las mejores soluciones a nuestro problema de optimización. Cada posible solución a nuestro problema se conoce como individuo, y cada individuo codifica las variables independientes del problema de optimización. Estas variables representan los genes de la cadena cromosómica que representa a un individuo. Los algoritmos genéticos están basados en la Teoría Evolucionista de Charles Darwin (Darwin, 1859). Dicha teoría, explicado de forma muy simple, indica que los individuos que mejor se adaptan al medio son aquellos que tienen más probabilidades de dejar descendencia, y cuyos genes pasarán a las siguientes generaciones. La teoría de Darwin también describe que aquellas modificaciones genéticas que hacen que los individuos se adapten mejor al medio, tienen mayor probabilidad de perdurar en el tiempo. Estas ideas son las que utilizan los algoritmos genéticos para realizar una búsqueda estocástica guiada de forma eficiente. En los problemas de optimización numéricos, los individuos son potenciales soluciones al problema y la adaptación al medio se mide mediante la función que queremos optimizar, también llamada función objetivo, fitness function o función de evaluación1. Un individuo se adaptará bien al medio si produce un desempeño o fitness2 alto, en caso de que se quiera maximizar la función objetivo, o si produce un desempeño bajo en caso de que estemos ante un problema de minimización. Ambos problemas son siempre duales3, por lo que pasar de un problema de maximización a un problema de minimización es tan sencillo como multiplicar por –1 el resultado de la función objetivo.
En cada iteración del algoritmo, nuevos individuos (descendientes o, en inglés, offsprings) son creados mediante operaciones genéticas, dando lugar a nuevas poblaciones. Dichas operaciones genéticas, que se pueden resumir en tres bloques -selección, cruce y mutación- son el motor de búsqueda de un algoritmo genético. Cada vez que se crea un nuevo conjunto de individuos, se crea una nueva generación, y dicho proceso termina con la generación final, la cual debe incluir los mejores individuos encontrados a lo largo de las generaciones. Así, la Figura 1.1 representa el funcionamiento general de un algoritmo genético. Como se puede observar, se parte de una población inicial aleatoria y, a través de las operaciones genéticas, se van obteniendo...

Table of contents