Investigación de Operaciones [INF-3144] Capítulo 2: Programación con Restricciones Dr. Ricardo Soto [ricardo.soto@ucv.cl] [http://www.inf.ucv.cl/ rsoto] Escuela de Ingeniería Informática Pontificia Universidad Católica de Valparaíso Dr. Ricardo Soto Investigación de Operaciones 1/30
1. Introducción Es una tecnología que tiene sus raíces en diversas áreas... Objetivo? Resolver problemas que se puedan representar en función de variables y restricciones Dr. Ricardo Soto Investigación de Operaciones 2/30
2. Ejemplos Ejemplos Reales Detección de errores de precisión en robots (IRCCYN Lab)...+ de 500 variables y restricciones Diseño de un sistema de aire acondicionado para aviones (Dassault Aviation) Z3...+ de 1000 variables y restricciones a2 Y3 b2 link 2 Z2 end-effector F Y2 3 X3 a1 link 1 F 2 X2 b1 Z1 joint 2 X2 Y1 X1 F 1 θ1 joint 1 Dr. Ricardo Soto Investigación de Operaciones 3/30
3. Proyectos Resueltos por alumnos PUCV Manufacturing Cell Design Juan Gutiérrez, Alexis López Dr. Ricardo Soto Investigación de Operaciones 4/30
3. Proyectos Resueltos por alumnos PUCV Nurse Rostering Renzo Pizarro, Gianni Rivera Dr. Ricardo Soto Investigación de Operaciones 5/30
3. Proyectos Resueltos por alumnos PUCV Mario Bros Problem Rodrigo Muñoz Dr. Ricardo Soto Investigación de Operaciones 6/30
3. Proyectos Resueltos por alumnos PUCV Ms Pacman Problem Francisco Lobos, Diego González Dr. Ricardo Soto Investigación de Operaciones 7/30
3. Proyectos Resueltos por alumnos PUCV Water Distribution Paz Clayton, Ricardo Rojas Dr. Ricardo Soto Investigación de Operaciones 8/30
3. Proyectos Resueltos por alumnos PUCV Portfolio Selection Camila Allendes, Hans Berendsen Dr. Ricardo Soto Investigación de Operaciones 9/30
3. Proyectos Resueltos por alumnos PUCV Open-pit mining Boris Almonacid Dr. Ricardo Soto Investigación de Operaciones 10/30
4. Problema de Satisfacción de Restricciones (Constraint Satisfaction Problem, CSP) Ejemplo 1 Resolver la siguiente ecuación, reemplazando las letras por dígitos distintos. S E N D + M O R E M O N E Y Dr. Ricardo Soto Investigación de Operaciones 11/30
4. Problema de Satisfacción de Restricciones (Constraint Satisfaction Problem, CSP) Ejemplo 1 Resolver la siguiente ecuación, reemplazando las letras por dígitos distintos. S E N D + M O R E M O N E Y 9 5 6 7 + 1 0 8 5 1 0 6 5 2 Dr. Ricardo Soto Investigación de Operaciones 12/30
4. Problema de Satisfacción de Restricciones (Constraint Satisfaction Problem, CSP) Modelo Variables S,E,N,D,M,O,R,Y [0, 9] Restricciones 1000 S + 100 E + 10 N + D + 1000 M + 100 O + 10 R + E = 10000 M + 1000 O + 100 N + 10 E + Y S E, S N, S D... R Y Dr. Ricardo Soto Investigación de Operaciones 13/30
4. Problema de Satisfacción de Restricciones (Constraint Satisfaction Problem, CSP) Ejemplo 2 - N-Queens Ubicar n reinas en un tablero de ajedrez de n n, de manera tal que no se puedan atacar. Dr. Ricardo Soto Investigación de Operaciones 14/30
4. Problema de Satisfacción de Restricciones (Constraint Satisfaction Problem, CSP) Modelo Variables Q 1, Q 2, Q 3, Q 4 [1, 4] Restricciones (para i [1, 3] y j [i + 1, 4]) Q i Q j (filas) Q i + i Q j + j (diagonal 1) Q i i Q j j (diagonal 2) Dr. Ricardo Soto Investigación de Operaciones 15/30
4. Problema de Satisfacción de Restricciones (Constraint Satisfaction Problem, CSP) Ejercicio 1 - Packing Squares Ubicar un conjunto de cuadrados dentro una base cuadrada de tal manera que ningún cuadrado se translape con otro. Dr. Ricardo Soto Investigación de Operaciones 16/30
4. Problema de Satisfacción de Restricciones (Constraint Satisfaction Problem, CSP) Variables x 1, x 2,..., x squares [1, sidesize] y 1, y 2,..., y squares [1, sidesize] Constantes sidesize squares size 1, size 2,..., size squares Restricciones (para i [1, squares]) //inside x i sidesize size i + 1 y i sidesize size i + 1 Dr. Ricardo Soto Investigación de Operaciones 17/30
4. Problema de Satisfacción de Restricciones (Constraint Satisfaction Problem, CSP) Restricciones (para i [1, squares] y j [i + 1, squares]) //nooverlap x i + size i x j OR x j + size j x i OR y i + size i y j OR y j + size j y i Dr. Ricardo Soto Investigación de Operaciones 18/30
4. Problema de Satisfacción de Restricciones (Constraint Satisfaction Problem, CSP) A Constraint Satisfaction Problem P is defined by a triple P = X, D, C where: X is a n-tuple of variables X = x 1, x 2,..., x n, D is a corresponding n-tuple of domains D = D 1, D 2,..., D n such that x i D i, and D i is a set of values, for i = 1,..., n. C is a m-tuple of constraints C = C 1, C 2,..., C m. Dr. Ricardo Soto Investigación de Operaciones 19/30
5. Algoritmos de búsqueda y Técnicas de filtraje Solving = Modeling + Search Dr. Ricardo Soto Investigación de Operaciones 20/30
5. Algoritmos de búsqueda y Técnicas de filtraje Generate and Test Dr. Ricardo Soto Investigación de Operaciones 21/30
5. Algoritmos de búsqueda y Técnicas de filtraje Problemas Gran cantidad de instanciaciones que no conducen a una solución Las restricciones se evalúan con todas las variables instanciadas Solución? Evaluar las restricciones apenas se instancien las variables involucradas. Dr. Ricardo Soto Investigación de Operaciones 22/30
5. Algoritmos de búsqueda y Técnicas de filtraje Backtracking Dr. Ricardo Soto Investigación de Operaciones 23/30
5. Algoritmos de búsqueda y Técnicas de filtraje Principal Problema No se pueden detectar inconsistencias sin instanciar todas las variables involucradas en una restricción. Solución? Eliminar valores temporalmente de los dominios utilizando técnicas de consistencia (arc-consistency). Dr. Ricardo Soto Investigación de Operaciones 24/30
5. Algoritmos de búsqueda y Técnicas de filtraje Forward Checking 1 2 3 4 1 2 3 4 Dr. Ricardo Soto Investigación de Operaciones 25/30
5. Algoritmos de búsqueda y Técnicas de filtraje Se puede mejorar? Verificar no sólo la consistencia entre la variable actual y las futuras, sino que también entre las futuras... Dr. Ricardo Soto Investigación de Operaciones 26/30
5. Algoritmos de búsqueda y Técnicas de filtraje Maintaining Arc Consistency (Full Look Ahead) 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 Dr. Ricardo Soto Investigación de Operaciones 27/30
5. Algoritmos de búsqueda y Técnicas de filtraje Optimización Basta con extender el algoritmo de búsqueda para considerar la función objetivo Algoritmo más utilizado para optimización en CP: Branch and Bound Dr. Ricardo Soto Investigación de Operaciones 28/30
6. Heurísticas de selección de variable y valor Variable Valor First-fail (dominio más pequeño) Most-constrained variable Reduce-first (dominio más grande) Round-robin (orden equitativo, por ej. de la 1era a la última) smallest median maximal Dr. Ricardo Soto Investigación de Operaciones 29/30
7. Solvers Diversos Lenguajes para CP Basados en programación lógica (Ecl i ps e, SicstusProlog...) Basados en programación orientada a objetos (ILOG, Gecode...) Modelado de alto nivel (OPL, Zinc...) Dr. Ricardo Soto Investigación de Operaciones 30/30