Programación con Restricciones Constraint Programming [MII ...

Post on 03-Jul-2022

5 views 0 download

Transcript of Programación con Restricciones Constraint Programming [MII ...

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