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

12
Constraint Programming Programación con Restricciones Constraint Programming [MII-771] Capítulo 2: Técnicas de resolución Dr. Ricardo Soto [[email protected]] [http://www.inf.ucv.cl/rsoto] Escuela de Ingeniería Informática Pontificia Universidad Católica de Valparaíso Dr. Ricardo Soto Programación con Restricciones 1/12

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

Page 1: 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[[email protected]]

[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

Page 2: Programación con Restricciones Constraint Programming [MII ...

Constraint Programming

1. Introducción

Solving = Modeling + Search

Dr. Ricardo Soto Programación con Restricciones 2/12

Page 3: Programación con Restricciones Constraint Programming [MII ...

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

Page 4: Programación con Restricciones Constraint Programming [MII ...

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

Page 5: Programación con Restricciones Constraint Programming [MII ...

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

Page 6: Programación con Restricciones Constraint Programming [MII ...

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

Page 7: Programación con Restricciones Constraint Programming [MII ...

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

Page 8: Programación con Restricciones Constraint Programming [MII ...

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

Page 9: Programación con Restricciones Constraint Programming [MII ...

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

Page 10: Programación con Restricciones Constraint Programming [MII ...

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

Page 11: Programación con Restricciones Constraint Programming [MII ...

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

Page 12: Programación con Restricciones Constraint Programming [MII ...

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