METAHEURÍSTICAS PARAMETRIZADAS APLICADAS A LA OPTIMIZACIÓN DE LOS CRITERIOS DE PRODUCCIÓN DE AGUAS SUBTERRÁNEAS. Autor: José Matías Cutillas Lozano PROYECTO DE TESIS DE MASTER MNTI Tutor: Domingo Giménez Cánovas
METAHEURÍSTICAS PARAMETRIZADAS APLICADAS A LA OPTIMIZACIÓN DE LOS CRITERIOS DE PRODUCCIÓN DE AGUAS SUBTERRÁNEAS.
Autor: José Matías Cutillas Lozano
PROYECTO DE TESIS DE MASTERMNTI
Tutor: Domingo Giménez Cánovas
Índice general de contenidos.
Objetivos. Contexto del problema. Planteamiento general del problema. Modelo Hidráulico. Determinación de Funciones Objetivo. Determinación de Restricciones. Modelo Matemático. Métodos de Resolución. Algoritmos Genéticos. Solución adoptada. Diagrama de flujo del algoritmo estudiado. Generalización y mejora de la metaheurística. Paralelismo
Objetivos. El objetivo principal es la mejora de la herramienta de gestión
automatizada para la explotación óptima de los recursos propios de aguas subterráneas mediante la aplicación de un esquema parametrizado de memoria compartida a la metaheurística del problema. Desarrollo:
1. Estudio previo del problema de minimización de costes.- Clasificación de las posibles variables y parámetros conocidos.- Determinación de las prioridades y los factores de ponderación de cada uno de estos condicionantes.- Estudio del modelo matemático de simulación y de su implementación en MATLAB.
2. Adaptación del lenguaje de programación empleado. Traducción a C++.3. Modificación del código para adaptarlo al esquema parametrizado de
metaheurísticas.4. Tuneado del algoritmo genético propuesto para encontrar una buena metaheurística
para el problema.5. Analizar la reducción en el tiempo de ejecución con el uso del paralelismo.6. Depuración y Calibración de la herramienta.
Contexto del problema.
Situación y descripción de los pozos en explotación:
- 16 pozos - 5 Unidades
Hidrogeológicas.
U.H. situadas en las comarcas del Alto y Medio Vinalopó, lo que confiere unas garantías de producción de agua extraordinarias dada la dispersión y cuantía del origen del agua.
Planteamiento general de problema.
Problema de optimización problema minimización en los costes de producción de agua subterránea.
Factores condicionantes:- Mantenimiento de la oferta. Satisfacción de la demanda.- Cumplimiento de calidad química de las aguas en función de la conductividad.- Cumplimiento de los volúmenes máximos de explotación anuales de cada pozo.- Consideraciones derivadas del comportamiento hidráulico de los pozos explotados.
Problema de optimización uniobjetivo sujeto a una serie de restricciones
Modelo Hidráulico.
SEDIMENTO
TUBERÍA CIEGA
BOMBA
TUBERÍA CIEGA
FILTRO
ZONA DE POZOS EN EXPLOTACIÓN
POZO TIPO
TUBERÍA DE ADUCCIÓN
DEPÓSITO DE ALMACENAMIENTOCon capacidad suficiente para absorver variacionespunta de caudal de entrada.
• 5 Unidades Hidrogeológicas.• 16 pozos (ampliable).• Caudal mínimo a mantener en
tubería de aducción (evita problemas hidráulicos).
• Depósito de almacenamiento que regula los aportes de las puntas de explotación y consumos máximos (supuesto con capacidad suficiente).
Determinación de Funciones Objetivo.
FUNCIÓN OBJETIVO (F1): COSTE DE ENERGÍA ELÉCTRICA.
Ce = Coste total de la energía eléctrica consumida por la combinación de bombas seleccionada al final del intervalo diario.
Ti = Tarifa energética en el instante i. Pij = Potencia eléctrica consumida por la bomba j en el intervalo i (1h.) Xij = Variable dicotómica de valor 1 para bomba encendida y 0 para
bomba apagada.
∑∑= =
24
0
50
1
**i j
ijiji xPTCe =
Determinación de Restricciones.
RESTRICCIONES:
1) Mantenimiento de la oferta. Satisfacción de la demanda.
2) Cumplimiento de los volúmenes máximos de explotación anuales de cada pozo.
050
1
365
1
≥∑∑==
kjconcjk
V
∑ ∑ ∑∑∑∑= = = ===
=++8
0
12
8
24
12
50
1
50
1
50
1
***i i i
dTijijj
ijijj
ijijj
QxQxQxQ
∑∑= =
− −=24
0
50
1,1 *
iijij
jjkconckjconc xVVV
Determinación de Restricciones. RESTRICCIONES:
3) Cumplimiento de profundidades máximas de niveles dinámicos.
Control diario de la profundidad del nivel dinámico de cada pozo.
Prof. N.D. = Prof. Máx. N.D. Pozo fuera servicio hasta recuperación
de niveles.
4) Cumplimiento de calidad química de las aguas.
.
24
0
50
1
* lími j
ijij x σσ ≤∑∑= = ∑∑
∑∑
= =
= == 24
0
50
1
24
0
50
1*'
i jij
i jijij
ij
Q
Qσσcon
Modelo Matemático.
[ ] )(. == xfyMínDonde:f(x) = Función coste de energía eléctrica (Ce).
Sujeto a:
∑ ∑ ∑∑∑∑= = = ===
=++8
0
12
8
24
12
50
1
50
1
50
1
***)i i i
dTijijj
ijijj
ijijj
QxQxQxQa 0)50
1
365
1
≥∑∑==
kjconcjk
Vb
=
niveles deón Recuperaci N.D. Máx. Prof. ~ N.D. Prof.
)c .
24
0
50
1
*) lími j
ijij xd σσ ≤∑∑= =
∑∑= =
24
0
50
1
**i j
ijiji xPT
1. Optimización Clásica.i. Introducción, historia y fundamentos matemáticos básicos.ii. Optimización sin restricciones.
1. Métodos univariantes. a. Bisección.b. Newton.
iii. Optimización con restricciones.1. Programación lineal. Método Simplex.2. Programación no lineal. Funciones Penalti y Barrera.
2. Técnicas de Optimización Avanzadas.i. Simulación y templado.ii. Algoritmos genéticos.iii. Algoritmos basados en colonias de hormigas.iiii. Otras heurísticas. Búsqueda tabú.
Métodos de Resolución.
2. Métodos multivariantes.a. Sin derivación.
a1. Hooke y Jeeves.b. Con derivación.
b1. Newton.c. Métodos quasi-Newton y Gradiente Conjugado.
1) Los A.G. trabajan con codificaciones de los puntos del espacio de búsqueda en lugar de los puntos propiamente dichos.2) Los A.G. realizan la búsqueda a partir de una población de puntos en lugar de un solo punto.3) Los A.G. no utilizan derivadas ni otras propiedades de la función objetivo, sino únicamente la propia función objetivo.4) Los A.G. se rigen mediante reglas de transición probabilísticas, no determinísticas.5) Los A.G. requieren que el conjunto de puntos del espacio de búsqueda estén codificados mediante cadenas finitas sobre un alfabeto finito.
Diagrama de flujo del algoritmo estudiado.
Concentración en mínimo numero de horas.
Imposición de pozos fuera de servicio.
Pob. Inicial: 20 individuos de 60 alelos.
Factibilizar población.
¿Niveles agotados?.
Evaluación de función fitness.
Aplicación de operadores genéticos (selección, cruce mutación).
Obtención población “hija”.
Hasta llegar a la generación marcada (1000 – 5000 ite.).
Inicio (t)
valle
Inicializar aleatoriamente la población P. gen = 0
Evaluar función de adaptación de los individuos de la población P
¿Pozos fuera de servicio? Introducir vector de pozos fuera de servicio
Factibilizar la población P
¿Niveles dinámicos agotados?
¿En proceso de recuperación?
Pozos fuera de servicio
Selección de individuos de acuerdo al fitness
Mutación
Cruce
Factibilizar población
Evaluar función de adaptación de los individuos de la población P
Selección de individuos de acuerdo al fitness
Mutación
Cruce
Factibilizar poblaciónPozos fuera de servicio
Factibilizar población
Obtención población P’ (descendiente de P)
¿gen < gen. máx? P’ = Pgen = gen+1 FIN
SÍ
NO
SÍ
NO
NO
SÍ
SÍ NO
Concentración en mínimo numero de horas.
Imposición de pozos fuera de servicio.
Pob. Inicial: 20 individuos de 60 alelos.
Factibilizar población.
¿Niveles agotados?.
Evaluación de función fitness.
Aplicación de operadores genéticos (selección, cruce mutación).
Obtención población “hija”.
Hasta llegar a la generación marcada.
Inicio (t)
valle
Inicializar aleatoriamente la población P. gen = 0
Evaluar función de adaptación de los individuos de la población P
¿Pozos fuera de servicio? Introducir vector de pozos fuera de servicio
Factibilizar la población P
¿Niveles dinámicos agotados?
¿En proceso de recuperación?
Pozos fuera de servicio
Selección de individuos de acuerdo al fitness
Mutación
Cruce
Factibilizar población
Evaluar función de adaptación de los individuos de la población P
Selección de individuos de acuerdo al fitness
Mutación
Cruce
Factibilizar poblaciónPozos fuera de servicio
Factibilizar población
Obtención población P’ (descendiente de P)
¿gen < gen. máx? P’ = Pgen = gen+1 FIN
SÍ
NO
SÍ
NO
NO
SÍ
SÍ NO
Diagrama de flujo del algoritmo estudiado.
Concentración en mínimo numero de horas.
Imposición de pozos fuera de servicio.
Pob. Inicial: 20 individuos de 60 alelos.
Factibilizar población.
¿Niveles agotados?.
Evaluación de función fitness.
Aplicación de operadores genéticos (selección, cruce mutación).
Obtención población “hija”.
Hasta llegar a la generación marcada.
Inicio (t)
valle
Inicializar aleatoriamente la población P. gen = 0
Evaluar función de adaptación de los individuos de la población P
¿Pozos fuera de servicio? Introducir vector de pozos fuera de servicio
Factibilizar la población P
¿Niveles dinámicos agotados?
¿En proceso de recuperación?
Pozos fuera de servicio
Selección de individuos de acuerdo al fitness
Mutación
Cruce
Factibilizar población
Evaluar función de adaptación de los individuos de la población P
Selección de individuos de acuerdo al fitness
Mutación
Cruce
Factibilizar poblaciónPozos fuera de servicio
Factibilizar población
Obtención población P’ (descendiente de P)
¿gen < gen. máx? P’ = Pgen = gen+1 FIN
SÍ
NO
SÍ
NO
NO
SÍ
SÍ NO
Diagrama de flujo del algoritmo estudiado.
Concentración en mínimo numero de horas.
Imposición de pozos fuera de servicio.
Pob. Inicial: 20 individuos de 60 alelos.
Factibilizar población.
¿Niveles agotados?.
Evaluación de función fitness.
Aplicación de operadores genéticos (selección, cruce mutación).
Obtención población “hija”.
Hasta llegar a la generación marcada.
Inicio (t)
valle
Inicializar aleatoriamente la población P. gen = 0
Evaluar función de adaptación de los individuos de la población P
¿Pozos fuera de servicio? Introducir vector de pozos fuera de servicio
Factibilizar la población P
¿Niveles dinámicos agotados?
¿En proceso de recuperación?
Pozos fuera de servicio
Selección de individuos de acuerdo al fitness
Mutación
Cruce
Factibilizar población
Evaluar función de adaptación de los individuos de la población P
Selección de individuos de acuerdo al fitness
Mutación
Cruce
Factibilizar poblaciónPozos fuera de servicio
Factibilizar población
Obtención población P’ (descendiente de P)
¿gen < gen. máx? P’ = Pgen = gen+1 FIN
SÍ
NO
SÍ
NO
NO
SÍ
SÍ NO
Diagrama de flujo del algoritmo estudiado.
Concentración en mínimo numero de horas.
Imposición de pozos fuera de servicio.
Pob. Inicial: 20 individuos de 60 alelos.
Factibilizar población.
¿Niveles agotados?.
Evaluación de función fitness.
Aplicación de operadores genéticos (selección, cruce mutación).
Obtención población “hija”.
Hasta llegar a la generación marcada.
Inicio (t)
valle
Inicializar aleatoriamente la población P. gen = 0
Evaluar función de adaptación de los individuos de la población P
¿Pozos fuera de servicio? Introducir vector de pozos fuera de servicio
Factibilizar la población P
¿Niveles dinámicos agotados?
¿En proceso de recuperación?
Pozos fuera de servicio
Selección de individuos de acuerdo al fitness
Mutación
Cruce
Factibilizar población
Evaluar función de adaptación de los individuos de la población P
Selección de individuos de acuerdo al fitness
Mutación
Cruce
Factibilizar poblaciónPozos fuera de servicio
Factibilizar población
Obtención población P’ (descendiente de P)
¿gen < gen. máx? P’ = Pgen = gen+1 FIN
SÍ
NO
SÍ
NO
NO
SÍ
SÍ NO
Diagrama de flujo del algoritmo estudiado.
Concentración en mínimo numero de horas.
Imposición de pozos fuera de servicio.
Pob. Inicial: 20 individuos de 60 alelos.
Factibilizar población.
¿Niveles agotados?.
Evaluación de función fitness.
Aplicación de operadores genéticos (selección, cruce mutación).
Obtención población “hija”.
Hasta llegar a la generación marcada.
Inicio (t)
valle
Inicializar aleatoriamente la población P. gen = 0
Evaluar función de adaptación de los individuos de la población P
¿Pozos fuera de servicio? Introducir vector de pozos fuera de servicio
Factibilizar la población P
¿Niveles dinámicos agotados?
¿En proceso de recuperación?
Pozos fuera de servicio
Selección de individuos de acuerdo al fitness
Mutación
Cruce
Factibilizar población
Evaluar función de adaptación de los individuos de la población P
Selección de individuos de acuerdo al fitness
Mutación
Cruce
Factibilizar poblaciónPozos fuera de servicio
Factibilizar población
Obtención población P’ (descendiente de P)
¿gen < gen. máx? P’ = Pgen = gen+1 FIN
SÍ
NO
SÍ
NO
NO
SÍ
SÍ NO
Diagrama de flujo del algoritmo estudiado.
Concentración en mínimo numero de horas.
Imposición de pozos fuera de servicio.
Pob. Inicial: 20 individuos de 60 alelos.
Factibilizar población.
¿Niveles agotados?.
Evaluación de función fitness.
Aplicación de operadores genéticos (selección, cruce mutación).
Obtención población “hija”.
Hasta llegar a la generación marcada.
Inicio (t)
valle
Inicializar aleatoriamente la población P. gen = 0
Evaluar función de adaptación de los individuos de la población P
¿Pozos fuera de servicio? Introducir vector de pozos fuera de servicio
Factibilizar la población P
¿Niveles dinámicos agotados?
¿En proceso de recuperación?
Pozos fuera de servicio
Selección de individuos de acuerdo al fitness
Mutación
Cruce
Factibilizar población
Evaluar función de adaptación de los individuos de la población P
Selección de individuos de acuerdo al fitness
Mutación
Cruce
Factibilizar poblaciónPozos fuera de servicio
Factibilizar población
Obtención población P’ (descendiente de P)
¿gen < gen. máx? P’ = Pgen = gen+1 FIN
SÍ
NO
SÍ
NO
NO
SÍ
SÍ NO
Diagrama de flujo del algoritmo estudiado.
Concentración en mínimo numero de horas.
Imposición de pozos fuera de servicio.
Pob. Inicial: 20 individuos de 60 alelos.
Factibilizar población.
¿Niveles agotados?.
Evaluación de función fitness.
Aplicación de operadores genéticos (selección, cruce mutación).
Obtención población “hija”.
Hasta llegar a la generación marcada.
Inicio (t)
valle
Inicializar aleatoriamente la población P. gen = 0
Evaluar función de adaptación de los individuos de la población P
¿Pozos fuera de servicio? Introducir vector de pozos fuera de servicio
Factibilizar la población P
¿Niveles dinámicos agotados?
¿En proceso de recuperación?
Pozos fuera de servicio
Selección de individuos de acuerdo al fitness
Mutación
Cruce
Factibilizar población
Evaluar función de adaptación de los individuos de la población P
Selección de individuos de acuerdo al fitness
Mutación
Cruce
Factibilizar poblaciónPozos fuera de servicio
Factibilizar población
Obtención población P’ (descendiente de P)
¿gen < gen. máx? P’ = Pgen = gen+1 FIN
SÍ
NO
SÍ
NO
NO
SÍ
SÍ NO
Diagrama de flujo del algoritmo estudiado.
Concentración en mínimo numero de horas.
Imposición de pozos fuera de servicio.
Pob. Inicial: 20 individuos de 60 alelos.
Factibilizar población.
¿Niveles agotados?.
Evaluación de función fitness.
Aplicación de operadores genéticos (selección, cruce mutación).
Obtención población “hija”.
Hasta llegar a la generación marcada.
Inicio (t)
valle
Inicializar aleatoriamente la población P. gen = 0
Evaluar función de adaptación de los individuos de la población P
¿Pozos fuera de servicio? Introducir vector de pozos fuera de servicio
Factibilizar la población P
¿Niveles dinámicos agotados?
¿En proceso de recuperación?
Pozos fuera de servicio
Selección de individuos de acuerdo al fitness
Mutación
Cruce
Factibilizar población
Evaluar función de adaptación de los individuos de la población P
Selección de individuos de acuerdo al fitness
Mutación
Cruce
Factibilizar poblaciónPozos fuera de servicio
Factibilizar población
Obtención población P’ (descendiente de P)
¿gen < gen. máx? P’ = Pgen = gen+1 FIN
SÍ
NO
SÍ
NO
NO
SÍ
SÍ NO
Diagrama de flujo del algoritmo estudiado.
Generalización y mejora de la metaheurística. Pasos preliminares.
Puesto que el algoritmo original se encuentra implementado en el lenguaje de programación MATLAB, llevaremos a cabo una serie de pasos previos al estudio generalizado de la metaheurística:
1. Estudio del esquema general del algoritmo original.
2. Identificación de las estructuras de datos y variables del algoritmo.
3. Identificación de las funciones y procedimientos implementados en MATLAB originales.
4. Adaptación de los mismos a C++. Traducción del código.
5. Estudio preliminar de resultados en ambos lenguajes. Comparación de salidas de programa.
6. Si los resultados son similares, nos planteamos la generalización de la metaheurística.
Generalización y mejora de la metaheurística
Como hemos dicho, el objetivo principal es la mejora de la herramienta de gestión mediante la aplicación de un esquema parametrizado de memoria compartida a la metaheurística del problema.
ESQUEMA GENERAL PARAMETRIZADO
Donde fijaremos los parámetros adecuados en cada función que mejor se ajusten a nuestro problema concreto.
Generalización y mejora de la metaheurística
El esquema anterior se incluye dentro del proceso de búsqueda y tuneado de la metaheurística siguiente:
• A partir del esquema general y de la elección de una serie de valores para los parámetros de cada función:Haremos el tuneado de nuestro algoritmo genético inicial.Realizaremos una serie de análisis experimentales y estadísticos de las posibles soluciones.Que nos conducirán a seleccionar la mejor metaheurística aplicable a nuestro problema de optimización de recursos.
Paralelización de la metaheurísticaAdicionalmente, vamos a considerar la implementación del algoritmo de optimización paralelo a partir del correspondiente secuencial. Usaremos para ello el paradigma de programación paralela OpenMP.El esquema paralelo para cada función del algoritmo es el siguiente:
donde se distinguen dos niveles de paralelismo:- El nivel 1, incluido en las funciones primarias del algoritmo: inicialización, selección,
combinación, mejora, inclusión. El numero de threads en este nivel depende de los parámetros de la metaheurística. - El nivel 2, incluido en las funciones secundarias o de intensificación complementarias a las del
primer nivel. En este caso, el numero de threads depende de, además de los parámetros, del numero de threads del nivel 1.
Resumen.
El desarrollo del trabajo está dividido en las siguientes etapas:
1. Estudio previo del problema de minimización de costes.2. Adaptación del lenguaje de programación empleado. Traducción a
C++.3. Modificación del código para adaptarlo al esquema parametrizado de
metaheurísticas.4. Tuneado del algoritmo genético propuesto para encontrar una buena
metaheurística para el problema.5. Analizar la reducción en el tiempo de ejecución con el uso del
paralelismo.6. Depuración y Calibración de la herramienta.
Fin de la Presentación
MUCHAS GRACIAS
POR SU ATENCIÓN