Presentation for the bachelor thesis project at Universidad de los Andes 2020-10.
This thesis studies the use parallel programming techniques to speed-up the decomposition phase of the constraint solving problem. The technique is integrated with the Oscar-CP solver, and explores the exam assignment problem
La empresa sostenible: Principales Características, Barreras para su Avance y...
[Bachelor_project] Asignación de exámenes finales
1. Asignación de exámenes finales
Validación del acercamiento por CP, librería OscaR.
Evaluación de descomposición y búsqueda en paralelo para
grandes conjuntos de datos
Juan Felipe Ramos Correa
Daniel Esteban Agudelo Cruz
Asesor: Nicolás Cardozo Álvarez
2. Problema
Asignación pertinente
Asignar los exámenes
finales de los estudiantes
de pregrado, siguiendo
restricciones:
● Elementales
● Impuestas
● Políticas
Satisfacción
Maximizar la satisfacción
de los estudiantes:
● Maximizar tiempo
para la preparación de
cada examen.
● Máximo de exámenes
por día.
● Mínimo de tiempo
entre exámenes
Tamaño del problema
Conjunto de datos grande:
● Más de 1000
secciones.
● Más de 10.000
estudiantes.
● Más de 200 salones.
● 13 horas al día.
● 9 días de exámenes
2
3. Solución
Modelar el problema como COP
(Constraint Optimization Problem).
● Variables y sus dominios.
● Restricciones
● Función objetivo
● Búsqueda de solución
3
5. Queremos asignar cada Sección:
● Salón
● Día
● Hora
¡Podemos codificarlos en un solo valor entero!
¿Cuáles son las variables?
5
6. 1
Dividamos los días de
examen en periodos
de tiempo iguales
2
Enumeramos los periodos de
tiempo de 0 en adelante
3
El último periodo de un día y el
primero del siguiente son
consecutivos
4
Enumeramos los salones
también de 0 en adelante
5
Definimos una matriz
de asignación con
estos valores
6
8. Para cada Sección:
● Una casilla de la matriz, que representa su primer periodo
de tiempo.
● Todo el examen se puede definir con el primero y la
cantidad de períodos necesarios.
Una variable es la asignación de una sección.
¿Entonces cuáles son las variables?
8
9. Para cada Sección:
● Un conjunto de salones cumplen con sus requisitos
● No todos los períodos de tiempo funcionan, ya que el
examen debe terminar el mismo día
El dominio consiste de las asignaciones que cumplan con
estos aspectos.
¿Cuál es el dominio de las variables?
9
11. ● Para cada par de secciones: No pueden asignarse para estar en el
mismo salón al mismo tiempo.
● Para cada par de secciones que un mismo estudiante inscriba: No
pueden asignarse para ocurrir al mismo tiempo
Restricciones elementales
11
12. ● Un estudiante no puede tener más de X exámenes en un día.
● Un estudiante no puede tener menos de Y minutos entre dos
exámenes.
Restricciones
12
14. ¿Qué queremos optimizar?
La satisfacción de los estudiantes{fig:32coresC}
¿Pero como se define esa satisfacción?
Con el tiempo que tiene para preparar cada examen
14
17. Solver totalmente secuencial
● Parseo de datos.
● Creación de variables.
● Implementación de
restricciones.
● Pruebas con algoritmos
y heurísticas de
búsqueda.
Fases de implementación
Oscar-CP Oscar-Modeling
Solver con búsqueda en
paralelo
● Refactorización del
código hacia el nuevo
módulo de la librería.
● Pruebas con
estrategias de
descomposición
Optimización OM
Solver con descomposición y
búsqueda en paralelo
● Implementación de la
estrategia de [Régin, 2014]
● Prueba con parámetros de
descomposición en
paralelo
● Comparación de
desempeño con OM
17
18. 1. Implementación del Modelo.
2. Algoritmos y heurísticas de búsqueda:
a. Los problemas se representan como árboles n-arios
b. ¡Las posibles soluciones están en las hojas!
c. En el peor de los casos, la búsqueda es exponencial
d. El mejor algoritmo de búsqueda encontrada es Conflict
Ordering Search.
OscaR-CP
18
23. 1. Refactorización del código Modelo.
2. Estrategias de descomposición:
a. Los subproblemas deben ser:
i. Disjuntos
ii. No triviales
iii. Válidos
b. ¿En cuántos subproblemas descomponer?
OscaR-Modeling (Búsqueda en paralelo)
23
25. Cartesian Product Iterative Refinement (CPIR)
CEO
Ventajas de CPIR
● Orden de prioridad a partir de producto cartesiano
● Complejidad de BFS, Costo en memoria de DFS
● Optimizable a partir de heurísticas
● ALTAMENTE PARALELIZABLE
J{fig:32coresC}
25
26. ¿Y las heurísticas?
CEO
Varias opciones...
● N-ary branching heuristic
● Binary branching heuristic
● Binary split branching heuristic
● Entre muchas otras!
J{fig:32coresC}
Nos quedamos con Binary Split
J{fig:32coresC}
26
27. ● Estrategia propuesta por [Régin, 2014]
● Saca provecho de la estrategia de la cola de prioridad
● Pretende utilizar la misma descomposición pero con cada uno
de los threads.
● 4 pasos
OscaR-Modeling + descomposición en paralelo
27
28. Algoritmo
Tenemos n threads,
1. Generar n subproblemas secuencialmente.
2. Pool de Threads y asignarle un subproblema a cada thread.
3. Los threads trabajan en paralelo.
4. Unir las colas resultantes, y seguir con el algoritmo original.
28
29. 1. Generar n subproblemas secuencialmente
● Tenemos n threads.
● Generar n subproblemas secuencialmente es barato, y
eficiente si se hace secuencial
● Generalmente n es mucho menor que el número de
subproblemas en el que queremos descomponer (d)
● Obtenemos una cola Q con n subproblemas (o más)
29
30. 2. Crear un pool de threads
● Si la cola tiene los subproblemas deseados o más, hay
que parar y continuar con el resto del algoritmo original
● Si no, sacar un problema de la cola, y asignarlo a un
thread
● Repetir n veces
30
31. 3. Trabajan los threads
● Si queríamos d subproblemas, entonces cada thread
debe descomponer en
● Cada uno usa una estrategia similar a la original
secuencial para hacer su descomposición
31
32. 4. Esperar threads y cotejar resultados, y seguir
● Cada thread devuelve una cola
● Hacer merge de todas las colas, en una sola cola.
● Continuar con el algoritmo original, como si la cola
resultante fuera la que produjo la parte secuencial.
32
36. There is no free lunch
CEO
Paralelizar la descomposición tiene sus contras:
● Eleva de gran manera el costo en memoria cuando se
aumentan cores
● Replicar modelos no es sencillo en OscaR
Principales necesidades se basan en INFRAESTRUCTURA.
J{fig:32coresC}
36
41. Paralelizar la descomposición
● Mejor desempeño a mayor número de threads.
● Speedup superlineal
● Subproblemas más balanceados.
● Más demanda de memoria.
● Replicación de modelos es costosa.
41
42. Trabajo a futuro
CEO
Realizar una evaluación más minuciosa del problema completo:
● Evaluar más algoritmos de búsqueda
● Aumentar la capacidad de las máquinas a usar
● Modificar los constraints para adaptarlos más al solver
2coresC}
42
43. Bibliografía
Gay S., Hartert R., Lecoutre C., Schaus P. (2015) Conflict Ordering Search for Scheduling Problems. In: Pesant G. (eds) Principles and
Practice of Constraint Programming. CP 2015. Lecture Notes in Computer Science, vol 9255. Springer, Cham
Derval, G.: Parallelization of Constraint Programming using Embarrassingly Parallel Search. Master’s thesis, Université catholique de
Louvain (2016)
Régin, J. C., Rezgui, M., & Malapert, A. (2014, September). Improvement of the embarrassingly parallel search for data centers. In International
Conference on Principles and Practice of Constraint Programming (pp. 622-635). Springer, Cham.
43