Introducción a los Algoritmos Genéticos en Python

Slides:



Advertisements
Presentaciones similares
CENTRO LOCAL LARA (Código 342)
Advertisements

PROYECTO DE INTERVENCIÓN Presentado por Ivette M. Rodríguez A.
1. Diversas herramientas de software libre para diseño. -Ingenio tu sitio -Compromisos de trabajos -El software y su licencia -Aspectos analizados 2.
Evaluación de competencias Añorve Añorve, Gladys Guzmán Marín, Francisco Viñals Garmendia, Esmeralda 2010.
Algoritmos para búsqueda “informada” Capítulo 4. Contenido Búsqueda primero el mejor Búsqueda primero el mejor “agresiva” (greedy) A * Heuristicas Algoritmos.
Presentación 1 Redes de Computadores 16/17 Departamento de Tecnología Electrónica.
SOFTWA RE APLICATIVO Y DE DESARROLLO. Software aplicativo Software de Aplicación es todo programa informático diseñado para facilitar al usuario la realización.
COLEGIO SAGRADO CORAZÓN HH.D.Cristiana Mislata INFORMACIÓN PADRES 6º E. PRIMARIA CURSO
* Parte del punto 3 está basado en las presentaciones del Curso de Enfoques Metodológicos de Fernando Cartes M.
Matemática II Exploro un mundo diferente Curso Online Facilitadores: Licda. Diverca González Lic. Duany Ureña Pichardo Licda. Sofía Hernández Módulos I,
Programación Lineal SOLUCIÓN MEDIANTE SOFTWARE POM FOR WINDOWS.
CASA DE LA CALIDAD Por: Xavier Gualán. CASA DE LA CALIDAD Casa de la calidad: Es una herramienta que puede mejorar el procedimiento de operación. ¿Qué.
Bienvenidos!!! "El Software Libre y su incidencia en lo Social"
CFG Planificación y Estrategias para el Capital de Aprendizaje RESOLUCIÓN DE PROBLEMAS Natalia Álvarez Lobos Psicopedagoga Claudio Sandoval.
APRENDER Y ENSEÑAR EN COLABORACIÓN
A quién va dirigido este curso:
Qué es la Econometría No hay acuerdo en la definición ya que:
Aprender y enseñar en colaboración
MULTIPLICACIÓN Esta operación matemática requiere comprender los conceptos que ayudan a resolver problemas entre los números Naturales. Repasa cada lámina.
UNIDAD I: TEORIA Y MODELOS DE SIMULACION
Metodología y Técnicas en Proyectos software para la Web
ANÁLISIS DE RIESGO SIMULACIÓN DE SISTEMAS 2009
Guía de Ejercicios 3: D&AA Universidad Viña del Mar 30/9/2002
MAESTRÍA EN CONTROL DE OPERACIONES Y GESTIÓN LOGÍSTICA
INGENIERIA EN MINAS GERENCIA EMPRESARIAL
El proceso de Investigación y búsqueda de Información.
Autor: Bruno cebolla bono Tutor: juan fancisco dols ruíz
CLASIFICACION DE SOFWARE EDUCATIVO
TÍTULO DEL PROYECTO Plataformas Computacionales de Entrenamiento, Experimentación, Gestión y Mitigación de Ataques a la Ciberseguridad.
GRADO 3º COMPARATIVO POR AÑO 2012 – 2013 LENGUAJE GRADO 3º
MODULO II PLAN DE FORMACIÓN DEL PROFESORADO Aula 2.0:
UNIVERSIDAD NACIONAL DE INGENIERIA - UNI NORTE
METODO DE TRANSPORTE APROXIMACION DE VOGEL
PROGRAMACION LINEAL UNIVERSIDAD LIBRE 2016
INVESTIGACION OPERTATIVA
Simulador modular secuencial basado en ecuaciones
APLICACIONES Y USO DE LAS TICS ¿Para qué cosas es bueno usar Tics?
Diseñar y elaborar algoritmos
Tele clase 13 Optimización unidimensional.
UNIDAD 5 Función de perdida
Sabes Que es un ALGORITMO
Java – programación orientada a objetos programación ii – iee
ESTADÍSTICA BÁSICA.
Teoría Relacional Modelo Relacional Líder en Ciencia y Tecnología.
Tema 8: Integrales y sus aplicaciones
Introducción Tipos de Modelos Un Modelo es
Estructuras de datos y Bases de datos
Área de Matemática.
Universidad nacional de ingeniería Introducción A la asignatura matemática i La Asignatura de Matemática I está considerada como una asignatura de formación.
LAS VARIABLES EN LA INVESTIGACIÓN
Optimización de Procesos.
Aspectos Generales de ELO-313 ELO 313 –Procesamiento Digital de Señales con Aplicaciones Primer semestre – 2018 Matías Zañartu, Ph.D. Departamento de.
Inteligencia artificial Y SISTEMAS BASADOS EN CONOCIMIENTO
Expositores: María Gracia León Nelson Arol Ruiz
Energía potencial y conservación de la energía
Clase1: Análisis de Algoritmos, Optimización Clásica, Heurísticas
Fundamentos de Informática Especialidad de Electrónica –
“Algoritmos en Inteligencia Artificial” Rogelio Ferreira Escutia
Presentan:. Presentan: Estadística Historia y Conceptos Básicos.
Lingüística computacional
DEPARTAMENTO DE MATEMÁTICAS
Nombre del Docente: María Guadalupe Salazar Chapa
¿Quién debe asistir? Beneficios
2/22/2019 SISTEMAS NO LINEALES.
Técnicas de Computación en Física
Inicia 5 de marzo y termina 1 de octubre 2007
¿PARA QUIENES ESTA ENFOCADO ESTE DIPLOMADO?
IWI -131 Programación de computadores
SESIÓN ABIERTA PRESENTACIÓN “RECURSOS DIGITALES PARA LA IMPLEMENTACIÓN DE METODOLOGÍAS ACTIVAS EN LA DOCENCIA” Rafael Seiz Ortiz UNiversitat Politècnica.
INSTITUTO TECNOLOGICO DE VERACRUZ
Transcripción de la presentación:

Introducción a los Algoritmos Genéticos en Python Daniel Gutiérrez Reina, dgutierrezreina@us.es Profesor Sustituto Interino. Departamento Ingeniería Electrónica. Universidad de Sevilla.

Conceptos básicos de optimización Dado un conjunto de posibles soluciones a un problema, el objetivo de la optimización es encontrar la mejor solución (óptimo) de acuerdo a una determinada medida de bondad de la solución (fitness function). Maximización del rendimiento, minimización de una función de coste. Soluciones analíticas vs soluciones numéricas.

Conceptos básicos de optimización Espacio de búsqueda Espacio que contiene el conjunto de soluciones posibles a un problema de optimización – Óptimo local/global

Conceptos básicos de optimización ¿Cómo resolver un problema de optimización? Fuerza bruta: Evaluar todas las posibles soluciones. Poco eficiente computacionalmente o imposible. Muy ineficiente y poco práctico. Búsqueda aleatoria: Búsqueda aleatoria sin ninguna guía. No garantiza soluciones óptimas, ni quasi-óptimas. Simplemente reduzco el número de evaluaciones. Técnicas basadas en gradiente: Requiere la existencia de derivadas; búsqueda local- problema de óptimos locales. Algoritmos meta heurísticos: Tenemos que ser capaces de evaluar las soluciones. Medir la calidad. No hay garantías de obtener el óptimo.

Conceptos básicos de optimización Métodos de optimización basados en gradientes Lo que nos han enseñado en las clases de cálculo (Aquellos maravillosos años en el instituto). 1) Cálculo de los puntos críticos  Primera derivada e igualamos a 0: x1 tal que f’(x1) = 0. 2) Puntos de inflexión  Segunda derivada y evaluábamos los puntos críticos: f’’(x1) > 0 mínimo ó f’’(x1) < 0 máximo relativos. Método de Newton.

Conceptos básicos de optimización Métodos de optimización basados en gradientes Funciones con múltiples variables Matrices Hessianas  Segundas derivadas parciales. Multiplicadores de Lagrange. Optimización con restricciones. SIEMPRE TENEMOS QUE CALCULAR LAS DERIVADAS!!!! ¿Es siempre posible? No tenemos la función matemática. Dimensiones del problema muy grandes. ¿Queremos el óptimo global o nos vale con una buena solución?

[“Adaptation in natural systems”, by J. Holland, 1975] Algoritmos genéticos Definición Los GAs son métodos de búsqueda probabilísticos inspirados en los mecanismos de selección natural y la genética en la búsqueda de los óptimos globales. Las soluciones que mejor se adaptan al entorno (problema) sobreviven Idea original de John Holland en los 70’s. [“Adaptation in natural systems”, by J. Holland, 1975]

Algoritmos genéticos Idea global de los GAs Población de individuos o posible soluciones que evolucionan a lo largo de un número de generaciones, creándose mejores individuos mediante operaciones genéticas (cruce y mutación).

Algoritmos genéticos Características principales GAs son algoritmos de inteligencia computacional que permiten resolver problemas de optimización. GAs utilizan métodos heurísticos, basados en probabilidad (no son métodos exactos). Pero sí podemos obtener buenas soluciones!! En muchos casos ni sabes el óptimo. GAs son computacionalmente intensivos. Ojo con esto!! GAs inspirados en la teoría de evolución de las especies. Darwin!!

Algoritmos genéticos Nomenclatura: Individuo: solución o candidato al problema de optimización. Población: conjunto de candidatos al problema. Fitness: calidad del individuo. Propiedad del individuo. Función de Fitness: problema que queremos resolver. Cromosoma: estructura genética que representa al individuo. Variables de nuestro problema de optimización. Gen: posición en particular en la estructura cromosómica. Variable. Operaciones genéticas: operaciones (cruce y mutación) para generar nuevos individuos. Selección: selección de individuos normalmente basándonos en el fitness.

Algoritmos genéticos - Ejemplo Poblemas de las N reinas (“N queens”): Problema de optimización combinatorio muy popular. Consiste en colocar N reinas en un tablero de ajedrez N x N, sin que ninguna reina ataque a otra reina.  Conforme N se hace más grande es más complejo!

Algoritmos genéticos - Ejemplo Resolución con algoritmo genético Individuo: Una lista de posiciones de las damas en el tablero. Sólo guardamos la fila en la que está la reina, la columna coincide con el índice de la lista. Por lo que sólo hay una reina por columna (Simplificación). Selección: mediante torneo. Crossover: PartiallyMatched  Combinamos la información genética de dos individuos (“padres”) para crear dos individuos (“hijos”)  Operación probabilística. Mutación: Barajamos el contenido de la lista  Operación probabilística. Función de fitness: Número de ataques entre reinas. Problema de optimización  Minimizar el número de ataques entre reinas.

DEAP: Distributed Evolutionary Algorithm in Python Paquete de Python con el que podemos implementar algoritmos evolutivos. Ha sido desarrollado por Computer Vision and Systems Laboratory (CVSL) at Université Laval, Quebec, Canada  Proyecto activo. Algoritmos de optimización que podemos usar con DEAP: Algoritmos genéticos (single objective). Algoritmos genéticos multi-objetivos. Programación genética. Algoritmo coevolutivos. Particle Swarm Optimization.  Instalación mediante pip: !pip install deap

Script: Nqueens.py Vamos ir viendo cada uno de los componentes del script. Definir el problema y el individuo: básicamente tenemos que indicar dos cosas, primero si es un problema de maximización o minimización de la función objetivo. Segundo, si es un problema con un objetivo (single objective) o con varios objetivos (multi-objective). Definimos el tipo del individuo  representación creator.create (“alias”, <clase_hereda>, atributos) 54) Creamos una clase que se llama FitnessMin y que hereda de la clase base.Fitness y que tiene una tupla weights como atributos.  DEFINICIÓN DEL TIPO DE PROBLEMA 55) Creamos una clase que se llama Individual que hereda de una lista y que tiene un atributo que es fitness (justo la clase que hemos creado anteriormente). DEFINICIÓN DEL INDIVIDUO

Representación del Individuo Resolución con algoritmo genético Individuo: Una lista de posiciones de las damas en el tablero. Sólo guardamos la fila en la que está la reina, la columna coincide con el índice de la lista. Por lo que sólo hay una reina por columna (Simplificación). NQUEENS-1 F1 F2 FN-1 Una representación correcta puede ayudar a resolver el problema. No siempre tiene que ser una lista!.

Definición del problema Base.fitness

Registro de funciones Toolbox: “Caja de herramientas” donde registramos todas las funciones que nos hacen falta para implementar el algoritmo genético.

Toolbox toolbox = base.Toolbox()

Las herramientas Tools El módulo Tools tiene una gran cantidad de funciones que nos van a hacer falta para diseñar el algoritmo genético, tales como operaciones de croossover, mutaciones, selección, etc. Estas funciones las vamos a utilizar para registrar funciones más complejas. http://deap.gel.ulaval.ca/doc/default/api/tools.html

Algoritmos genéticos - Ejemplo Resolución con algoritmo genético Selección: mediante torneo. Ojo! A medida que avanzamos en las generaciones los individuos y sus fitness se parecen!

Algoritmos genéticos - Ejemplo Resolución con algoritmo genético Crossover: PartiallyMatched  Combinamos la información genética de dos individuos (“padres”) para crear dos individuos (“hijos”).

Algoritmos genéticos - Ejemplo Resolución con algoritmo genético Mutación: Barajamos (shuffle) el contenido de la lista. NQUEENS-1 F1 F2 FN-1

Algoritmos genéticos - Ejemplo Función de fitness Calculamos el número de reinas en cada diagional Tenemos dos tipos de diagonales (diagonal_izquierda_derecha, diagonal_derecha_izquierda). diagonal_izquierda_derecha = fila + columna

Algoritmos genéticos - Ejemplo Función de fitness Calculamos el número de reinas en cada diagional Tenemos dos tipos de diagonales (diagonal_izquierda_derecha, diagonal_derecha_izquierda). diagonal_derecha_izquierda = size-1-columna+fila

Algoritmos genéticos - Ejemplo Función de fitness

Algoritmos genéticos - Ejemplo Algoritmo genético

Algoritmos genéticos - Ejemplo Algoritmo genético

Algoritmos genéticos - Ejemplo Solución

Daniel Gutiérrez Reina, dgutierrezreina@us.es ¿¿Hay ganas de más?? Daniel Gutiérrez Reina, dgutierrezreina@us.es

Módulos del Curso Módulo 4: Aplicaciones. (20 horas). Módulo I:  Conocimientos Básicos de Python y sus Módulos Principales. (20 horas). Módulo 2: Machine Learning en Python: Regresión, Clasificadores y Clustering. (20 horas). Módulo 3: Técnicas de Optimización en Python. (20 horas). Módulo 4: Aplicaciones. (20 horas).

Módulo I: Conceptos básico Python

Módulo 2: Machine Learning

Módulo 3: Optimización

Módulo 4: Aplicaciones

Horarios (Septiembre y Octubre) Módulo 1:  13/09/2017 - 21/09/2017, Miércoles, Jueves y Viernes de 16:00 – 20:00 horas. Módulo 2:  22/09/2017 - 04/10/2017, Miércoles, Jueves y Viernes de 16:00 – 20:00 horas. Módulo 3:  05/10/2017 - 18/10/2017, Miércoles, Jueves y Viernes de 16:00 – 20:00 horas. Módulo 4: 19/10/2017 - 27/10/2017, Miércoles, Jueves y Viernes de 16:00 – 20:00 horas.

Fechas importantes PLAZAS LIMITADAS!!! Preinscripción:  Abierto hasta el 20 Junio. Matrícula: Del 1 al 20 de Junio. ¿Cómo lo hago? http://www.cfp.us.es/cursos/fc/python-machine-learning-optimizacion-y- aplicaciones/3315 PLAZAS LIMITADAS!!!