Читать книгу Algoritmos Genéticos con Python - Álvaro Rodríguez - Страница 8

Objetivos y estructura del libro

Оглавление

Este libro pretende ofrecer una visión general sobre el desarrollo y la programación de algoritmos genéticos desde un punto de vista práctico y con un enfoque orientado a la resolución de problemas de ingeniería. El libro se ha orientado a un aprendizaje mediante ejemplos (learning by doing). Esto significa que los conceptos se van describiendo conforme aparecen en el problema que se aborda. Por lo tanto, no existe un capítulo donde se encuentren todos los operadores genéticos, o las implementaciones de algoritmos genéticos, etc. No obstante, el glosario del libro permite identificar fácilmente la página donde se encuentra cada concepto.

El libro se estructura en dos partes bien diferenciadas. En la primera parte, se cubren los conceptos básicos de los algoritmos genéticos mediante varios ejemplos clásicos. En el primero de los cuatro capítulos que constituyen esta primera parte, se resuelve un problema muy sencillo formulado con variables continuas, con el propósito de ilustrar los principales componentes de los algoritmos genéticos. Aunque el primer capítulo es largo, es necesario leerlo con detenimiento para poder comprender los principales mecanismos que hay detrás de un algoritmo genético. Por lo tanto, se recomienda no avanzar si no se tienen claros los conceptos descritos en este capítulo. En el segundo capítulo, se aborda el problema del viajero o Traveling Salesman Problem (TSP), sin duda uno de los problemas combinatorios clásicos con variables discretas más estudiados, y que constituye un ejemplo perfecto para demostrar la potencialidad de los algoritmos genéticos para resolver problemas complejos. Una vez conocida la estructura fundamental de los algoritmos genéticos, en el tercer capítulo, se profundiza en el uso de las funciones de benchmark para validar tanto sus capacidades como sus potenciales vulnerabilidades, lo cual la constituye una herramienta fundamental para su depuración. Las funciones de benchmark son funciones que la comunidad científica utiliza para la evaluación de algoritmos de optimización. Estas presentan diversas dificultades a los algoritmos de optimización. Por ejemplo, tener varios máximos o mínimos (funciones multimodales), o tener un máximo/mínimo local cerca del absoluto. Por último, en el cuarto capítulo se introduce el enfoque multiobjetivo de los algoritmos genéticos, lo cual constituye una de las capacidades más interesantes y versátiles de este tipo de algoritmos. Desde el punto de vista de los problemas de ingeniería, el enfoque multiobjetivo es muy importante, ya que los ingenieros siempre debemos tener en cuenta una relación de compromiso entre el coste y la adecuación de las soluciones al problema. Los problemas multiobjetivo se abordarán mediante dos ejemplos. En primer lugar, se resolverá un problema clásico como es la suma de subconjuntos. Y en segundo lugar, se usarán funciones de benchmark con múltiples objetivos. Al finalizar la primera parte, el lector habrá adquirido suficiente destreza como para poder abordar problemas de optimización mediante algoritmos genéticos.

En la segunda parte, se introducirán una serie de problemas ingenieriles, cuya resolución se abordará mediante el desarrollo de algoritmos genéticos. Todos los problemas se tratan tanto desde el punto de vista de un único objetivo (problemas unimodales) como desde el punto de vista de un multiobjetivo (problemas multimodales). En el primer capítulo, se estudia el problema del despacho económico de una microrred eléctrica. Este problema, formulado en variables continuas, constituye uno de los problemas más complejos y de más relevancia en el área de sistemas eléctricos de potencia, y persigue la programación de la potencia suministrada por un conjunto de generadores, para abastecer una demanda durante un periodo determinado y de forma óptima. En el segundo capítulo, se aborda un problema de optimización relativo al diseño de una planta micro-hidráulica. Este problema, formulado con variables binarias, persigue determinar el trazado óptimo de la planta, y constituye un problema de especial interés dado el alto número de combinaciones posibles, lo que hace inabordable su resolución mediante estrategias analíticas o exactas. Por último, en el tercer capítulo se aborda el problema del posicionamiento óptimo de sensores, en el cual se persigue determinar las posiciones más adecuadas para instalar una serie de sensores de manera que la mayor parte posible de puntos de interés queden cubiertos.

En todos los capítulos se incluye una sección de código completo, lecciones aprendidas y ejercicios propuestos. Las lecciones aprendidas hacen referencias a los aspecto más relevantes que se deben adquirir en dicho capítulo. Los ejercicios sirven para afianzar conceptos y coger destreza en la aplicación de algoritmos genéticos. Por último, para finalizar cada capítulo se incluye una sección con bibliografía adicional para seguir profundizando en los temas abordados en el capítulo.

Algoritmos Genéticos con Python

Подняться наверх