Codificar una solución candidata en un cromosoma adecuado al problema, sea binario, real o de permutación.
Diseñar una función de aptitud que refleje el objetivo real e incorpore las restricciones como penalización.
Aplicar operadores de selección por torneo, por ruleta y por rango valorando la presión selectiva de cada uno.
Implementar cruce y mutación coherentes con la codificación elegida sin generar soluciones inválidas.
Controlar la convergencia prematura con elitismo, diversidad y ajuste de las tasas de operador.
Comparar el resultado con una búsqueda aleatoria y con un método clásico para justificar el uso del algoritmo.
Contenido del curso
7 módulos · 32 clases en vídeo · práctica guiada en cada módulo
Módulo 1 · Optimización y espacio de búsqueda4 clases
Problemas sin solución analítica
Espacio de búsqueda, óptimo local y óptimo global
Panorama de métodos y su encaje
Entorno de trabajo en Python
Módulo 2 · Codificación y aptitud5 clases
Cromosoma binario, real y de permutación
Elegir la representación según el problema
Función de aptitud y objetivo real
Restricciones como penalización o como reparación
Escalado de la aptitud
Módulo 3 · Selección5 clases
Selección por ruleta
Selección por torneo
Selección por rango
Presión selectiva y diversidad
Elitismo y sus riesgos
Módulo 4 · Cruce y mutación5 clases
Cruce en uno y en varios puntos
Cruce uniforme y aritmético
Operadores para permutaciones
Mutación y tasa adecuada
Soluciones inválidas y cómo evitarlas
Módulo 5 · El algoritmo completo5 clases
Bucle generacional y criterios de parada
Tamaño de población y coste de cómputo
Seguimiento de la mejor solución y de la media
Convergencia prematura y cómo detectarla
Paralelizar la evaluación de aptitud
Módulo 6 · Variantes y problemas multiobjetivo4 clases
Objetivos en conflicto y frente de Pareto
Algoritmos multiobjetivo básicos
Búsqueda local combinada con la evolución
Comparación con recocido simulado y con enjambre
Módulo 7 · Caso práctico y validación4 clases
Aplicación a un problema de ajuste o de planificación
Comparación con búsqueda aleatoria y con método clásico
Repetición con distintas semillas y variabilidad del resultado
Informe de resultados y límites del método
Requisitos
Programación en Python con soltura: clases, funciones y NumPy.
Un problema propio de optimización o ajuste al que aplicar lo aprendido, aunque el curso propone varios.
Nociones de estadística y de coste computacional.
Haber trabajado antes con simulación o con modelos de proceso resulta útil pero no imprescindible.
Descripción
Hay problemas en los que probar todas las combinaciones es inviable y no existe una fórmula que dé la respuesta: repartir tareas entre máquinas, ajustar los parámetros de un controlador, planificar rutas o dimensionar una instalación con varias restricciones cruzadas. La hoja de cálculo se queda corta y la intuición deja de ser suficiente.
Los algoritmos genéticos abordan ese tipo de problema explorando el espacio de soluciones por evolución. El curso construye uno desde cero en Python: codificación del cromosoma, función de aptitud con restricciones, selección, cruce y mutación, y control de la diversidad de la población. Cada componente se prueba sobre problemas conocidos antes de aplicarlo al caso propio.
El bloque final se ocupa de la honestidad del resultado: comparar con búsqueda aleatoria y con métodos clásicos, medir el coste de cómputo, repetir con distintas semillas y reconocer cuándo el algoritmo genético no es la herramienta adecuada. Encaja con el ajuste de controladores, con la planificación de producción y con problemas de diseño en ingeniería.
¿Para quién es este curso?
Ingeniería que dimensiona instalaciones o ajusta parámetros con muchas variables acopladas.
Perfiles de desarrollo que se enfrentan a problemas de asignación, planificación o rutas.
Personal técnico de producción que planifica turnos, cargas o secuencias con restricciones múltiples.
Disponible
Contenido ya grabado y publicado en el campus. Puedes empezar en cuanto te inscribas.
Este sitio web utiliza cookies propias y de terceros para recopilar información con finalidad técnica. No se recaban ni ceden datos de carácter personal sin tu consentimiento. Más información en la política de cookies.