Investigación de Operaciones [INF-3144]Capítulo 2: Programación con Restricciones
Dr. Ricardo Soto[[email protected]]
[http://www.inf.ucv.cl/∼rsoto]
Escuela de Ingeniería InformáticaPontificia 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 devariables y restricciones
Dr. Ricardo Soto Investigación de Operaciones 2/30
2. Ejemplos
Ejemplos RealesDetecció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)...+ de 1000 variables y restricciones
a1
X1θ1
link 1
end-effector
joint 2
joint 1
Y1
X2
Z1
X2
Y2
Z2
X3
Y3
Z3
a2
link 2
b1
b2
F1
F2
F3
Dr. Ricardo Soto Investigación de Operaciones 3/30
3. Proyectos Resueltos por alumnos PUCV
Manufacturing Cell DesignJuan Gutiérrez, Alexis López
Dr. Ricardo Soto Investigación de Operaciones 4/30
3. Proyectos Resueltos por alumnos PUCV
Nurse RosteringRenzo Pizarro, Gianni Rivera
Dr. Ricardo Soto Investigación de Operaciones 5/30
3. Proyectos Resueltos por alumnos PUCV
Mario Bros ProblemRodrigo Muñoz
Dr. Ricardo Soto Investigación de Operaciones 6/30
3. Proyectos Resueltos por alumnos PUCV
Ms Pacman ProblemFrancisco Lobos, Diego González
Dr. Ricardo Soto Investigación de Operaciones 7/30
3. Proyectos Resueltos por alumnos PUCV
Water DistributionPaz Clayton, Ricardo Rojas
Dr. Ricardo Soto Investigación de Operaciones 8/30
3. Proyectos Resueltos por alumnos PUCV
Portfolio SelectionCamila Allendes, Hans Berendsen
Dr. Ricardo Soto Investigación de Operaciones 9/30
3. Proyectos Resueltos por alumnos PUCV
Open-pit miningBoris Almonacid
Dr. Ricardo Soto Investigación de Operaciones 10/30
4. Problema de Satisfacción de Restricciones(Constraint Satisfaction Problem, CSP)
Ejemplo 1Resolver la siguiente ecuación, reemplazando las letras pordígitos distintos.
S E N D+ M O R EM 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 1Resolver la siguiente ecuación, reemplazando las letras pordígitos distintos.
S E N D+ M O R EM O N E Y
9 5 6 7+ 1 0 8 51 0 6 5 2
Dr. Ricardo Soto Investigación de Operaciones 12/30
4. Problema de Satisfacción de Restricciones(Constraint Satisfaction Problem, CSP)
ModeloVariables
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 6= E , S 6= N, S 6= D . . . R 6= Y
Dr. Ricardo Soto Investigación de Operaciones 13/30
4. Problema de Satisfacción de Restricciones(Constraint Satisfaction Problem, CSP)
Ejemplo 2 - N-QueensUbicar n reinas en un tablero de ajedrez de n × n, de maneratal 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)
ModeloVariables
Q1,Q2,Q3,Q4 ∈ [1,4]
Restricciones (para i ∈ [1,3] y j ∈ [i + 1,4])
Qi 6= Qj (filas)
Qi + i 6= Qj + j (diagonal 1)
Qi − i 6= Qj − 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 SquaresUbicar un conjunto de cuadrados dentro una base cuadrada detal 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
x1, x2, ..., xsquares ∈ [1, sideSize]y1, y2, ..., ysquares ∈ [1, sideSize]
Constantes
sideSizesquaressize1, size2, ..., sizesquares
Restricciones (para i ∈ [1, squares]) //inside
xi ≤ sideSize − sizei + 1yi ≤ sideSize − sizei + 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
xi + sizei ≤ xj ORxj + sizej ≤ xi ORyi + sizei ≤ yj ORyj + sizej ≤ yi
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 tripleP = 〈X ,D, C〉 where:
X is a n-tuple of variables X = 〈x1, x2, ..., xn〉,D is a corresponding n-tuple of domainsD = 〈D1,D2, ...,Dn〉 such that xi ∈ Di , and Di is a set ofvalues, for i = 1, ...,n.C is a m-tuple of constraints C = 〈C1,C2, ...,Cm〉.
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
b
bb
b
b
b
b
b b
b b b b b b b b
bb
bb b
bb b
b bbbb
bb
bb
b
b
b
b
b
bb
bb
b b
b
b b
b
bb
bb
b
b b
b
b
b b bb
b
b
bb
bb
bb
bb
bb
bb
bb
b bb
b b b b bb
b b
bb
bb
bb
bbb
bb
bb
b
bb
b
b
b
b
b
bbbb
bb
b
b b b b b b b b bbbb bb
bb
Dr. Ricardo Soto Investigación de Operaciones 21/30
5. Algoritmos de búsqueda y Técnicas de filtraje
ProblemasGran cantidad de instanciaciones que no conducen auna soluciónLas restricciones se evalúan con todas las variablesinstanciadas
Solución?Evaluar las restricciones apenas se instancien lasvariables involucradas.
Dr. Ricardo Soto Investigación de Operaciones 22/30
5. Algoritmos de búsqueda y Técnicas de filtraje
Backtracking
b
bb
b
b
b
b
b b
b
b
b
b
b
b
bb
bb
b b
b
b b
b
bb
bb
b
b b
b
b
b b bb
b
b
bb
b
b
b
b
b
b
b
b
bbbb
bb
bb
b
b
b
b
b
b
bbbbb b
bb
b
Dr. Ricardo Soto Investigación de Operaciones 23/30
5. Algoritmos de búsqueda y Técnicas de filtraje
Principal ProblemaNo se pueden detectar inconsistencias sin instanciartodas las variables involucradas en una restricción.
Solución?Eliminar valores temporalmente de los dominiosutilizando 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
bb
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
1234
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 variableactual y las futuras, sino que también entre lasfuturas...
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)
b
b
b
b
b
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ónBasta con extender el algoritmo de búsqueda paraconsiderar la función objetivo
Algoritmo más utilizado para optimización en CP:
Branch and Bound b
bb
b
b
b
b
b b
b b b b b b b b
bb
bb b
bb b
b bbbb
bb
bb
b
b
b
b
b
bb
bb
b b
b
b b
b
bb
bb
b
b b
b
b
b b bb
b
b
bb
bb
bb
bb
bb
bb
bb
b bb
b b b b bb
b b
bb
bb
bb
bbb
bb
bb
b
bb
Dr. Ricardo Soto Investigación de Operaciones 28/30
6. Heurísticas de selección de variable y valor
VariableFirst-fail (dominio más pequeño)Most-constrained variableReduce-first (dominio más grande)Round-robin (orden equitativo, por ej. de la 1era a laúltima)
Valorsmallestmedianmaximal
Dr. Ricardo Soto Investigación de Operaciones 29/30
7. Solvers
Diversos Lenguajes para CPBasados en programación lógica (Eclipse,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