SlideShare una empresa de Scribd logo
1 de 43
Descargar para leer sin conexión
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
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
Solución
Modelar el problema como COP
(Constraint Optimization Problem).
● Variables y sus dominios.
● Restricciones
● Función objetivo
● Búsqueda de solución
3
Variables
4
Queremos asignar cada Sección:
● Salón
● Día
● Hora
¡Podemos codificarlos en un solo valor entero!
¿Cuáles son las variables?
5
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
Matriz de asignación
7
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
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
Restricciones
10
● 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
● 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
Función Objetivo
13
¿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
¿Qué queremos optimizar?
15
Implementación
16
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
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
¿Qué tan grande es el arbol? ((234*200)^1000)
CEO
19
Conflict Ordering Search
CEO
20
Conflict Ordering Search [Gay, Hartet, Lecoutre, Schaus, 2015]
CEO
21
Conflict Ordering Search (Code Time)
CEO
22
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
Cartesian Product Iterative Refinement (CPIR)
CEO
[Derval, 2016]
24
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
¿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
● 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
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
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
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
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
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
Resultados
max growth
33
Resultados para 8 cores
CEO
34
Resultados para 16 cores
CEO
35
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
La búsqueda se degrada sin aumentar la
memoria CEO
37
Uso del GC con 32 cores
CEO
38
Uso del GC con 64 cores
CEO
39
Conclusiones
40
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
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
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

Más contenido relacionado

Similar a [Bachelor_project] Asignación de exámenes finales

Rc edinson mosquera
Rc edinson mosqueraRc edinson mosquera
Rc edinson mosqueraAlex Lozada
 
Rc edinson mosquera
Rc edinson mosqueraRc edinson mosquera
Rc edinson mosqueraed10mos891
 
EDINSON MOSQUERA
 EDINSON MOSQUERA EDINSON MOSQUERA
EDINSON MOSQUERAed10mos891
 
Rc edinson mosquera
Rc edinson mosqueraRc edinson mosquera
Rc edinson mosqueraed10mos891
 
_Stewart_James calculo en una variable sexta edition.pdf
_Stewart_James calculo  en una variable sexta edition.pdf_Stewart_James calculo  en una variable sexta edition.pdf
_Stewart_James calculo en una variable sexta edition.pdfDAVIDSAMUELTTITOIMAT
 
_Stewart_James__C_lculo_de_una_variable_Trascend_BookZZ.org_.pdf
_Stewart_James__C_lculo_de_una_variable_Trascend_BookZZ.org_.pdf_Stewart_James__C_lculo_de_una_variable_Trascend_BookZZ.org_.pdf
_Stewart_James__C_lculo_de_una_variable_Trascend_BookZZ.org_.pdfAlexAcostaEspinoza
 
Rc cristian suarez
Rc cristian suarez  Rc cristian suarez
Rc cristian suarez pance014
 
Extreme programming (1)
Extreme programming (1)Extreme programming (1)
Extreme programming (1)Enrique Polo
 
Introducción a Programa-me - Concurso español de programacion
Introducción a Programa-me - Concurso español de programacionIntroducción a Programa-me - Concurso español de programacion
Introducción a Programa-me - Concurso español de programacionJosé Ráez Rodríguez
 
.NET UY Meetup 4 - AOP & PostSharp by Bruno Bologna & Fabian Fernandez
.NET UY Meetup 4 - AOP & PostSharp by Bruno Bologna & Fabian Fernandez.NET UY Meetup 4 - AOP & PostSharp by Bruno Bologna & Fabian Fernandez
.NET UY Meetup 4 - AOP & PostSharp by Bruno Bologna & Fabian Fernandez.NET UY Meetup
 
Semana 7 _modulo6_SIMSIS.pdf
Semana 7 _modulo6_SIMSIS.pdfSemana 7 _modulo6_SIMSIS.pdf
Semana 7 _modulo6_SIMSIS.pdfLuisSantiago15216
 
[SPANISH ]Codealike en MUG Argentina
[SPANISH ]Codealike en MUG Argentina[SPANISH ]Codealike en MUG Argentina
[SPANISH ]Codealike en MUG ArgentinaCodealike
 

Similar a [Bachelor_project] Asignación de exámenes finales (20)

230012464 problemas-metas
230012464 problemas-metas230012464 problemas-metas
230012464 problemas-metas
 
Rc edinson mosquera
Rc edinson mosqueraRc edinson mosquera
Rc edinson mosquera
 
Rc edinson mosquera
Rc edinson mosqueraRc edinson mosquera
Rc edinson mosquera
 
EDINSON MOSQUERA
 EDINSON MOSQUERA EDINSON MOSQUERA
EDINSON MOSQUERA
 
Rc edinson mosquera
Rc edinson mosqueraRc edinson mosquera
Rc edinson mosquera
 
Cocomo
CocomoCocomo
Cocomo
 
_Stewart_James calculo en una variable sexta edition.pdf
_Stewart_James calculo  en una variable sexta edition.pdf_Stewart_James calculo  en una variable sexta edition.pdf
_Stewart_James calculo en una variable sexta edition.pdf
 
_Stewart_James__C_lculo_de_una_variable_Trascend_BookZZ.org_.pdf
_Stewart_James__C_lculo_de_una_variable_Trascend_BookZZ.org_.pdf_Stewart_James__C_lculo_de_una_variable_Trascend_BookZZ.org_.pdf
_Stewart_James__C_lculo_de_una_variable_Trascend_BookZZ.org_.pdf
 
Rc cristian suarez
Rc cristian suarez  Rc cristian suarez
Rc cristian suarez
 
Esto es ingeniería inversa
Esto es ingeniería inversaEsto es ingeniería inversa
Esto es ingeniería inversa
 
Introduccion al diseño mecanico
Introduccion al diseño mecanicoIntroduccion al diseño mecanico
Introduccion al diseño mecanico
 
Extreme programming (1)
Extreme programming (1)Extreme programming (1)
Extreme programming (1)
 
Introducción a Programa-me - Concurso español de programacion
Introducción a Programa-me - Concurso español de programacionIntroducción a Programa-me - Concurso español de programacion
Introducción a Programa-me - Concurso español de programacion
 
.NET UY Meetup 4 - AOP & PostSharp by Bruno Bologna & Fabian Fernandez
.NET UY Meetup 4 - AOP & PostSharp by Bruno Bologna & Fabian Fernandez.NET UY Meetup 4 - AOP & PostSharp by Bruno Bologna & Fabian Fernandez
.NET UY Meetup 4 - AOP & PostSharp by Bruno Bologna & Fabian Fernandez
 
Semana 7 _modulo6_SIMSIS.pdf
Semana 7 _modulo6_SIMSIS.pdfSemana 7 _modulo6_SIMSIS.pdf
Semana 7 _modulo6_SIMSIS.pdf
 
Valores y prácticas XP
Valores y prácticas XPValores y prácticas XP
Valores y prácticas XP
 
Rc elkin bernal
Rc elkin bernalRc elkin bernal
Rc elkin bernal
 
Programación Extrema (XP)
Programación Extrema (XP)Programación Extrema (XP)
Programación Extrema (XP)
 
1-NAC-TDA Estructuras de Datos
1-NAC-TDA Estructuras de Datos1-NAC-TDA Estructuras de Datos
1-NAC-TDA Estructuras de Datos
 
[SPANISH ]Codealike en MUG Argentina
[SPANISH ]Codealike en MUG Argentina[SPANISH ]Codealike en MUG Argentina
[SPANISH ]Codealike en MUG Argentina
 

Más de Universidad de los Andes

An expressive and modular layer activation mechanism for Context-Oriented Pro...
An expressive and modular layer activation mechanism for Context-Oriented Pro...An expressive and modular layer activation mechanism for Context-Oriented Pro...
An expressive and modular layer activation mechanism for Context-Oriented Pro...Universidad de los Andes
 
[FTfJP23] Points-to Analysis for Context-oriented Javascript Programs
[FTfJP23] Points-to Analysis for Context-oriented Javascript Programs[FTfJP23] Points-to Analysis for Context-oriented Javascript Programs
[FTfJP23] Points-to Analysis for Context-oriented Javascript ProgramsUniversidad de los Andes
 
[JIST] Programming language implementations for context-oriented self-adaptiv...
[JIST] Programming language implementations for context-oriented self-adaptiv...[JIST] Programming language implementations for context-oriented self-adaptiv...
[JIST] Programming language implementations for context-oriented self-adaptiv...Universidad de los Andes
 
[CAIN'23] Prevalence of Code Smells in Reinforcement Learning Projects
[CAIN'23] Prevalence of Code Smells in Reinforcement Learning Projects[CAIN'23] Prevalence of Code Smells in Reinforcement Learning Projects
[CAIN'23] Prevalence of Code Smells in Reinforcement Learning ProjectsUniversidad de los Andes
 
[CIbSE2023] Cross-language clone detection for Mobile Apps
[CIbSE2023] Cross-language clone detection for Mobile Apps[CIbSE2023] Cross-language clone detection for Mobile Apps
[CIbSE2023] Cross-language clone detection for Mobile AppsUniversidad de los Andes
 
[JPDC,JCC@LMN22] Ad hoc systems Management and specification with distributed...
[JPDC,JCC@LMN22] Ad hoc systems Management and specification with distributed...[JPDC,JCC@LMN22] Ad hoc systems Management and specification with distributed...
[JPDC,JCC@LMN22] Ad hoc systems Management and specification with distributed...Universidad de los Andes
 
[CCC'21] Evaluation of Work Stealing Algorithms
[CCC'21] Evaluation of Work Stealing Algorithms[CCC'21] Evaluation of Work Stealing Algorithms
[CCC'21] Evaluation of Work Stealing AlgorithmsUniversidad de los Andes
 
Generating Adaptations from the System Execution using Reinforcement Learning...
Generating Adaptations from the System Execution using Reinforcement Learning...Generating Adaptations from the System Execution using Reinforcement Learning...
Generating Adaptations from the System Execution using Reinforcement Learning...Universidad de los Andes
 
Language Abstractions and Techniques for Developing Collective Adaptive Syste...
Language Abstractions and Techniques for Developing Collective Adaptive Syste...Language Abstractions and Techniques for Developing Collective Adaptive Syste...
Language Abstractions and Techniques for Developing Collective Adaptive Syste...Universidad de los Andes
 
Does Neuron Coverage Matter for Deep Reinforcement Learning? A preliminary study
Does Neuron Coverage Matter for Deep Reinforcement Learning? A preliminary studyDoes Neuron Coverage Matter for Deep Reinforcement Learning? A preliminary study
Does Neuron Coverage Matter for Deep Reinforcement Learning? A preliminary studyUniversidad de los Andes
 
Learning run-time composition of interacting adaptations
Learning run-time composition of interacting adaptationsLearning run-time composition of interacting adaptations
Learning run-time composition of interacting adaptationsUniversidad de los Andes
 
CQL: declarative language for context activation
CQL: declarative language for context activationCQL: declarative language for context activation
CQL: declarative language for context activationUniversidad de los Andes
 
Generating software adaptations using machine learning
Generating software adaptations using machine learningGenerating software adaptations using machine learning
Generating software adaptations using machine learningUniversidad de los Andes
 
Programming language techniques for adaptive software
Programming language techniques for adaptive softwareProgramming language techniques for adaptive software
Programming language techniques for adaptive softwareUniversidad de los Andes
 
Peace COrP: Learning to solve conflicts between contexts
Peace COrP: Learning to solve conflicts between contextsPeace COrP: Learning to solve conflicts between contexts
Peace COrP: Learning to solve conflicts between contextsUniversidad de los Andes
 

Más de Universidad de los Andes (18)

An expressive and modular layer activation mechanism for Context-Oriented Pro...
An expressive and modular layer activation mechanism for Context-Oriented Pro...An expressive and modular layer activation mechanism for Context-Oriented Pro...
An expressive and modular layer activation mechanism for Context-Oriented Pro...
 
[FTfJP23] Points-to Analysis for Context-oriented Javascript Programs
[FTfJP23] Points-to Analysis for Context-oriented Javascript Programs[FTfJP23] Points-to Analysis for Context-oriented Javascript Programs
[FTfJP23] Points-to Analysis for Context-oriented Javascript Programs
 
[JIST] Programming language implementations for context-oriented self-adaptiv...
[JIST] Programming language implementations for context-oriented self-adaptiv...[JIST] Programming language implementations for context-oriented self-adaptiv...
[JIST] Programming language implementations for context-oriented self-adaptiv...
 
[CAIN'23] Prevalence of Code Smells in Reinforcement Learning Projects
[CAIN'23] Prevalence of Code Smells in Reinforcement Learning Projects[CAIN'23] Prevalence of Code Smells in Reinforcement Learning Projects
[CAIN'23] Prevalence of Code Smells in Reinforcement Learning Projects
 
[CIbSE2023] Cross-language clone detection for Mobile Apps
[CIbSE2023] Cross-language clone detection for Mobile Apps[CIbSE2023] Cross-language clone detection for Mobile Apps
[CIbSE2023] Cross-language clone detection for Mobile Apps
 
Keeping Up! with LaTeX
Keeping Up! with LaTeXKeeping Up! with LaTeX
Keeping Up! with LaTeX
 
[JPDC,JCC@LMN22] Ad hoc systems Management and specification with distributed...
[JPDC,JCC@LMN22] Ad hoc systems Management and specification with distributed...[JPDC,JCC@LMN22] Ad hoc systems Management and specification with distributed...
[JPDC,JCC@LMN22] Ad hoc systems Management and specification with distributed...
 
[CCC'21] Evaluation of Work Stealing Algorithms
[CCC'21] Evaluation of Work Stealing Algorithms[CCC'21] Evaluation of Work Stealing Algorithms
[CCC'21] Evaluation of Work Stealing Algorithms
 
Generating Adaptations from the System Execution using Reinforcement Learning...
Generating Adaptations from the System Execution using Reinforcement Learning...Generating Adaptations from the System Execution using Reinforcement Learning...
Generating Adaptations from the System Execution using Reinforcement Learning...
 
Language Abstractions and Techniques for Developing Collective Adaptive Syste...
Language Abstractions and Techniques for Developing Collective Adaptive Syste...Language Abstractions and Techniques for Developing Collective Adaptive Syste...
Language Abstractions and Techniques for Developing Collective Adaptive Syste...
 
Does Neuron Coverage Matter for Deep Reinforcement Learning? A preliminary study
Does Neuron Coverage Matter for Deep Reinforcement Learning? A preliminary studyDoes Neuron Coverage Matter for Deep Reinforcement Learning? A preliminary study
Does Neuron Coverage Matter for Deep Reinforcement Learning? A preliminary study
 
Learning run-time composition of interacting adaptations
Learning run-time composition of interacting adaptationsLearning run-time composition of interacting adaptations
Learning run-time composition of interacting adaptations
 
Distributed context Petri nets
Distributed context Petri netsDistributed context Petri nets
Distributed context Petri nets
 
CQL: declarative language for context activation
CQL: declarative language for context activationCQL: declarative language for context activation
CQL: declarative language for context activation
 
Generating software adaptations using machine learning
Generating software adaptations using machine learningGenerating software adaptations using machine learning
Generating software adaptations using machine learning
 
Programming language techniques for adaptive software
Programming language techniques for adaptive softwareProgramming language techniques for adaptive software
Programming language techniques for adaptive software
 
Peace COrP: Learning to solve conflicts between contexts
Peace COrP: Learning to solve conflicts between contextsPeace COrP: Learning to solve conflicts between contexts
Peace COrP: Learning to solve conflicts between contexts
 
Emergent Software Services
Emergent Software ServicesEmergent Software Services
Emergent Software Services
 

Último

PLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docxPLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docxlupitavic
 
5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL
5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL
5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONALMiNeyi1
 
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxSEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxYadi Campos
 
Programacion Anual Matemática5 MPG 2024 Ccesa007.pdf
Programacion Anual Matemática5    MPG 2024  Ccesa007.pdfProgramacion Anual Matemática5    MPG 2024  Ccesa007.pdf
Programacion Anual Matemática5 MPG 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
proyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niñoproyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niñotapirjackluis
 
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfCurso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfFrancisco158360
 
Criterios ESG: fundamentos, aplicaciones y beneficios
Criterios ESG: fundamentos, aplicaciones y beneficiosCriterios ESG: fundamentos, aplicaciones y beneficios
Criterios ESG: fundamentos, aplicaciones y beneficiosJonathanCovena1
 
2024 KIT DE HABILIDADES SOCIOEMOCIONALES.pdf
2024 KIT DE HABILIDADES SOCIOEMOCIONALES.pdf2024 KIT DE HABILIDADES SOCIOEMOCIONALES.pdf
2024 KIT DE HABILIDADES SOCIOEMOCIONALES.pdfMiguelHuaman31
 
6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf
6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf
6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdfMiNeyi1
 
Qué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaQué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaDecaunlz
 
Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024Juan Martín Martín
 
ACTIVIDAD DIA DE LA MADRE FICHA DE TRABAJO
ACTIVIDAD DIA DE LA MADRE FICHA DE TRABAJOACTIVIDAD DIA DE LA MADRE FICHA DE TRABAJO
ACTIVIDAD DIA DE LA MADRE FICHA DE TRABAJOBRIGIDATELLOLEONARDO
 
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptxLA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptxlclcarmen
 
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdfFeliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdfMercedes Gonzalez
 
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...JAVIER SOLIS NOYOLA
 
La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...JonathanCovena1
 

Último (20)

Fe contra todo pronóstico. La fe es confianza.
Fe contra todo pronóstico. La fe es confianza.Fe contra todo pronóstico. La fe es confianza.
Fe contra todo pronóstico. La fe es confianza.
 
PLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docxPLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docx
 
5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL
5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL
5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL
 
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxSEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
 
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdfTema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
 
Programacion Anual Matemática5 MPG 2024 Ccesa007.pdf
Programacion Anual Matemática5    MPG 2024  Ccesa007.pdfProgramacion Anual Matemática5    MPG 2024  Ccesa007.pdf
Programacion Anual Matemática5 MPG 2024 Ccesa007.pdf
 
proyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niñoproyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niño
 
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfCurso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
 
Criterios ESG: fundamentos, aplicaciones y beneficios
Criterios ESG: fundamentos, aplicaciones y beneficiosCriterios ESG: fundamentos, aplicaciones y beneficios
Criterios ESG: fundamentos, aplicaciones y beneficios
 
Unidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la InvestigaciónUnidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la Investigación
 
Presentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza MultigradoPresentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza Multigrado
 
2024 KIT DE HABILIDADES SOCIOEMOCIONALES.pdf
2024 KIT DE HABILIDADES SOCIOEMOCIONALES.pdf2024 KIT DE HABILIDADES SOCIOEMOCIONALES.pdf
2024 KIT DE HABILIDADES SOCIOEMOCIONALES.pdf
 
6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf
6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf
6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf
 
Qué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaQué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativa
 
Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024
 
ACTIVIDAD DIA DE LA MADRE FICHA DE TRABAJO
ACTIVIDAD DIA DE LA MADRE FICHA DE TRABAJOACTIVIDAD DIA DE LA MADRE FICHA DE TRABAJO
ACTIVIDAD DIA DE LA MADRE FICHA DE TRABAJO
 
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptxLA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
 
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdfFeliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
 
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
 
La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...La empresa sostenible: Principales Características, Barreras para su Avance y...
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
  • 19. ¿Qué tan grande es el arbol? ((234*200)^1000) CEO 19
  • 21. Conflict Ordering Search [Gay, Hartet, Lecoutre, Schaus, 2015] CEO 21
  • 22. Conflict Ordering Search (Code Time) CEO 22
  • 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
  • 24. Cartesian Product Iterative Refinement (CPIR) CEO [Derval, 2016] 24
  • 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
  • 34. Resultados para 8 cores CEO 34
  • 35. Resultados para 16 cores CEO 35
  • 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
  • 37. La búsqueda se degrada sin aumentar la memoria CEO 37
  • 38. Uso del GC con 32 cores CEO 38
  • 39. Uso del GC con 64 cores CEO 39
  • 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