investigación de operaciones [inf-3144] capítulo 2...

30
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ática Pontificia Universidad Católica de Valparaíso Dr. Ricardo Soto Investigación de Operaciones 1/30

Upload: phungngoc

Post on 01-Feb-2018

221 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: Investigación de Operaciones [INF-3144] Capítulo 2 ...zeus.inf.ucv.cl/~rsoto/cursos/INF3144/Cap3_INF3144.pdf · Investigación de Operaciones [INF-3144] Capítulo 2: Programación

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

Page 2: Investigación de Operaciones [INF-3144] Capítulo 2 ...zeus.inf.ucv.cl/~rsoto/cursos/INF3144/Cap3_INF3144.pdf · Investigación de Operaciones [INF-3144] Capítulo 2: Programación

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

Page 3: Investigación de Operaciones [INF-3144] Capítulo 2 ...zeus.inf.ucv.cl/~rsoto/cursos/INF3144/Cap3_INF3144.pdf · Investigación de Operaciones [INF-3144] Capítulo 2: Programación

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

Page 4: Investigación de Operaciones [INF-3144] Capítulo 2 ...zeus.inf.ucv.cl/~rsoto/cursos/INF3144/Cap3_INF3144.pdf · Investigación de Operaciones [INF-3144] Capítulo 2: Programación

3. Proyectos Resueltos por alumnos PUCV

Manufacturing Cell DesignJuan Gutiérrez, Alexis López

Dr. Ricardo Soto Investigación de Operaciones 4/30

Page 5: Investigación de Operaciones [INF-3144] Capítulo 2 ...zeus.inf.ucv.cl/~rsoto/cursos/INF3144/Cap3_INF3144.pdf · Investigación de Operaciones [INF-3144] Capítulo 2: Programación

3. Proyectos Resueltos por alumnos PUCV

Nurse RosteringRenzo Pizarro, Gianni Rivera

Dr. Ricardo Soto Investigación de Operaciones 5/30

Page 6: Investigación de Operaciones [INF-3144] Capítulo 2 ...zeus.inf.ucv.cl/~rsoto/cursos/INF3144/Cap3_INF3144.pdf · Investigación de Operaciones [INF-3144] Capítulo 2: Programación

3. Proyectos Resueltos por alumnos PUCV

Mario Bros ProblemRodrigo Muñoz

Dr. Ricardo Soto Investigación de Operaciones 6/30

Page 7: Investigación de Operaciones [INF-3144] Capítulo 2 ...zeus.inf.ucv.cl/~rsoto/cursos/INF3144/Cap3_INF3144.pdf · Investigación de Operaciones [INF-3144] Capítulo 2: Programación

3. Proyectos Resueltos por alumnos PUCV

Ms Pacman ProblemFrancisco Lobos, Diego González

Dr. Ricardo Soto Investigación de Operaciones 7/30

Page 8: Investigación de Operaciones [INF-3144] Capítulo 2 ...zeus.inf.ucv.cl/~rsoto/cursos/INF3144/Cap3_INF3144.pdf · Investigación de Operaciones [INF-3144] Capítulo 2: Programación

3. Proyectos Resueltos por alumnos PUCV

Water DistributionPaz Clayton, Ricardo Rojas

Dr. Ricardo Soto Investigación de Operaciones 8/30

Page 9: Investigación de Operaciones [INF-3144] Capítulo 2 ...zeus.inf.ucv.cl/~rsoto/cursos/INF3144/Cap3_INF3144.pdf · Investigación de Operaciones [INF-3144] Capítulo 2: Programación

3. Proyectos Resueltos por alumnos PUCV

Portfolio SelectionCamila Allendes, Hans Berendsen

Dr. Ricardo Soto Investigación de Operaciones 9/30

Page 10: Investigación de Operaciones [INF-3144] Capítulo 2 ...zeus.inf.ucv.cl/~rsoto/cursos/INF3144/Cap3_INF3144.pdf · Investigación de Operaciones [INF-3144] Capítulo 2: Programación

3. Proyectos Resueltos por alumnos PUCV

Open-pit miningBoris Almonacid

Dr. Ricardo Soto Investigación de Operaciones 10/30

Page 11: Investigación de Operaciones [INF-3144] Capítulo 2 ...zeus.inf.ucv.cl/~rsoto/cursos/INF3144/Cap3_INF3144.pdf · Investigación de Operaciones [INF-3144] Capítulo 2: Programación

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

Page 12: Investigación de Operaciones [INF-3144] Capítulo 2 ...zeus.inf.ucv.cl/~rsoto/cursos/INF3144/Cap3_INF3144.pdf · Investigación de Operaciones [INF-3144] Capítulo 2: Programación

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

Page 13: Investigación de Operaciones [INF-3144] Capítulo 2 ...zeus.inf.ucv.cl/~rsoto/cursos/INF3144/Cap3_INF3144.pdf · Investigación de Operaciones [INF-3144] Capítulo 2: Programación

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

Page 14: Investigación de Operaciones [INF-3144] Capítulo 2 ...zeus.inf.ucv.cl/~rsoto/cursos/INF3144/Cap3_INF3144.pdf · Investigación de Operaciones [INF-3144] Capítulo 2: Programación

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

Page 15: Investigación de Operaciones [INF-3144] Capítulo 2 ...zeus.inf.ucv.cl/~rsoto/cursos/INF3144/Cap3_INF3144.pdf · Investigación de Operaciones [INF-3144] Capítulo 2: Programación

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

Page 16: Investigación de Operaciones [INF-3144] Capítulo 2 ...zeus.inf.ucv.cl/~rsoto/cursos/INF3144/Cap3_INF3144.pdf · Investigación de Operaciones [INF-3144] Capítulo 2: Programación

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

Page 17: Investigación de Operaciones [INF-3144] Capítulo 2 ...zeus.inf.ucv.cl/~rsoto/cursos/INF3144/Cap3_INF3144.pdf · Investigación de Operaciones [INF-3144] Capítulo 2: Programación

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

Page 18: Investigación de Operaciones [INF-3144] Capítulo 2 ...zeus.inf.ucv.cl/~rsoto/cursos/INF3144/Cap3_INF3144.pdf · Investigación de Operaciones [INF-3144] Capítulo 2: Programación

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

Page 19: Investigación de Operaciones [INF-3144] Capítulo 2 ...zeus.inf.ucv.cl/~rsoto/cursos/INF3144/Cap3_INF3144.pdf · Investigación de Operaciones [INF-3144] Capítulo 2: Programación

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

Page 20: Investigación de Operaciones [INF-3144] Capítulo 2 ...zeus.inf.ucv.cl/~rsoto/cursos/INF3144/Cap3_INF3144.pdf · Investigación de Operaciones [INF-3144] Capítulo 2: Programación

5. Algoritmos de búsqueda y Técnicas de filtraje

Solving = Modeling + Search

Dr. Ricardo Soto Investigación de Operaciones 20/30

Page 21: Investigación de Operaciones [INF-3144] Capítulo 2 ...zeus.inf.ucv.cl/~rsoto/cursos/INF3144/Cap3_INF3144.pdf · Investigación de Operaciones [INF-3144] Capítulo 2: Programación

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

Page 22: Investigación de Operaciones [INF-3144] Capítulo 2 ...zeus.inf.ucv.cl/~rsoto/cursos/INF3144/Cap3_INF3144.pdf · Investigación de Operaciones [INF-3144] Capítulo 2: Programación

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

Page 23: Investigación de Operaciones [INF-3144] Capítulo 2 ...zeus.inf.ucv.cl/~rsoto/cursos/INF3144/Cap3_INF3144.pdf · Investigación de Operaciones [INF-3144] Capítulo 2: Programación

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

Page 24: Investigación de Operaciones [INF-3144] Capítulo 2 ...zeus.inf.ucv.cl/~rsoto/cursos/INF3144/Cap3_INF3144.pdf · Investigación de Operaciones [INF-3144] Capítulo 2: Programación

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

Page 25: Investigación de Operaciones [INF-3144] Capítulo 2 ...zeus.inf.ucv.cl/~rsoto/cursos/INF3144/Cap3_INF3144.pdf · Investigación de Operaciones [INF-3144] Capítulo 2: Programación

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

Page 26: Investigación de Operaciones [INF-3144] Capítulo 2 ...zeus.inf.ucv.cl/~rsoto/cursos/INF3144/Cap3_INF3144.pdf · Investigación de Operaciones [INF-3144] Capítulo 2: Programación

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

Page 27: Investigación de Operaciones [INF-3144] Capítulo 2 ...zeus.inf.ucv.cl/~rsoto/cursos/INF3144/Cap3_INF3144.pdf · Investigación de Operaciones [INF-3144] Capítulo 2: Programación

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

Page 28: Investigación de Operaciones [INF-3144] Capítulo 2 ...zeus.inf.ucv.cl/~rsoto/cursos/INF3144/Cap3_INF3144.pdf · Investigación de Operaciones [INF-3144] Capítulo 2: Programación

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

Page 29: Investigación de Operaciones [INF-3144] Capítulo 2 ...zeus.inf.ucv.cl/~rsoto/cursos/INF3144/Cap3_INF3144.pdf · Investigación de Operaciones [INF-3144] Capítulo 2: Programación

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

Page 30: Investigación de Operaciones [INF-3144] Capítulo 2 ...zeus.inf.ucv.cl/~rsoto/cursos/INF3144/Cap3_INF3144.pdf · Investigación de Operaciones [INF-3144] Capítulo 2: Programación

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