Post on 03-Jul-2022
Constraint Programming
Programación con RestriccionesConstraint Programming [MII-771]Capítulo 2: Técnicas de resolución
Dr. Ricardo Soto[ricardo.soto@ucv.cl]
[http://www.inf.ucv.cl/∼rsoto]
Escuela de Ingeniería InformáticaPontificia Universidad Católica de Valparaíso
Dr. Ricardo Soto Programación con Restricciones 1/12
Constraint Programming
1. Introducción
Solving = Modeling + Search
Dr. Ricardo Soto Programación con Restricciones 2/12
Constraint Programming
2. Búsqueda
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 Programación con Restricciones 3/12
Constraint Programming
2. Búsqueda
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 Programación con Restricciones 4/12
Constraint Programming
2. Búsqueda
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 Programación con Restricciones 5/12
Constraint Programming
2. Búsqueda
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 Programación con Restricciones 6/12
Constraint Programming
2. Búsqueda
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 Programación con Restricciones 7/12
Constraint Programming
2. Búsqueda
Se puede mejorar?Verificar no sólo la consistencia entre la variableactual y las futuras, sino que también entre lasfuturas...
Dr. Ricardo Soto Programación con Restricciones 8/12
Constraint Programming
2. Búsqueda
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 Programación con Restricciones 9/12
Constraint Programming
3. Heurísticas
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 Programación con Restricciones 10/12
Constraint Programming
4. Búsqueda en dominios continuos
Problemas continuos
Gran dificultad:La representación de números en máquina es finita
Solución?Uso de intervalos para garantizar la fiabilidad de losresultados
0.000039 -> [0.00003,0.00004]
Dr. Ricardo Soto Programación con Restricciones 11/12
Constraint Programming
5. Optimización
BúsquedaBasta 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 Programación con Restricciones 12/12