• No se han encontrado resultados

Solución de Problemas con CCP restricción de canal

N/A
N/A
Protected

Academic year: 2022

Share "Solución de Problemas con CCP restricción de canal"

Copied!
38
0
0

Texto completo

(1)

Soluci ´on de Problemas con CCP restricci ´on de canal

slides basados en el curso “constraint Programming” de Christian Schulte2

Profesor: Camilo Rueda1

1Universidad Javeriana-Cali,

2KTH Royal Institute of Technology, Sweden

PUJ 2008

(2)

Restricci ´on de canal: problema

Dada una baraja de 52 cartas

pintas: espada, tr ´ebol, coraz ´on, diamante orden: As,2,3,4,5,6,7,8,9,10,J,Q,K Repartir las cartas as´ı:

poner el as de espadas en una sola pila (“hueco negro”) otras cartas: 17 pilas con tres cartas cada una

Movida

tomar carta del tope de una de las 17 pilas

moverla al hueco negro, siempre y cuando la carta sea adyacente a la del tope del hueco negro

(3)

Juego del “hueco negro”

Adyacente

independientemente de pinta

la siguiente mayor o menor (contin ´ua en ciclo) ejemplo: 9♣ ↔ 10♣, 9♣ ↔ 8♣, 9♥ ↔ 10♦, A♥ ↔ K ♣ Objetivo:

mover todas las cartas de las 17 pilas al hueco negro

(4)

Modelo: restricciones

A: las cartas deben estar adyacentes en la pila del hueco negro

asociar posici ´on en la pila con carta modelar el hecho de ser adyacente

B: las cartas deben tomarse en orden de las 17 pilas asociar carta con posici ´on en la pila de hueco negro modelar que las posiciones est ´an oredenadas

orden en la pila hueco negro: cartas movidas en orden de las 17 pilas

C: la primera carta en el hueco negro es el as de espadas.

(5)

Cartas adyacentes

numere las cartas de 0 a 51

♠ : 0 − 12, ♣ : 13 − 25, ♥ : 26 − 38, ♦ : 39 − 51 Adyacencia independiente de pinta: para la carta i, considere i mod 13

cartas i y j adyacentes

(i mod 13) − (j mod 13) = 1 (i mod 13) − (j mod 13) = 12 (j mod 13) − (i mod 13) = 1 (j mod 13) − (i mod 13) = 12

(6)

Modelar adyacencia

Gecode no tiene restricci ´on para m ´odulo ...usar entonces element

Element: arreglo m de 52 elementos inicialice: m[i] = i mod 13

el n ´umero de la carta es el ´ındice en el arreglo, su m ´odulo 13 es el valor

Entonces: adyacente(i, j) es

(i mod 13) − (j mod 13) ∈ {−12, −1, 1, 12}

crear variable d con dominio {−12, −1, 1, 12}

la diferencia debe ser igual a d

(7)

Modelo: restricci ´on A

Variables: cartas es un arreglo de 52 variables valores: {0, ..., 51}

asocia posici ´on en hueco negro con carta

Restricci ´on A: cartas en cada dos posiciones sucesivas deben ser adyacentes

adyacente(carta[i], carta[i + 1]) para 0 ≤ i < 51 C ´omo modelar la restricci ´on B?

(8)

Modelo: restricci ´on B

Variables: pos es un arreglo de 52 variables valores: {0, ..., 51}

asocia carta con posici ´on en hueco negro

Restricci ´on B: las posiciones deben estar en orden pos[i] < pos[i + 1] para 0 ≤ i < 51

C ´omo modelar la restricci ´on A?

(9)

Modelo: restricciones A y B

Tomar ambos: pos y carta: son duales por intercambiar valores y variables

carta[i] = j ⇔ pos[j] = i Incluir:

Restricci ´on A sobre variables carta Restricci ´on B sobre variables pos

Restricci ´on que liga valores de carta y pos: “channel”

(10)

Modelo: ajuste

Simetr´ıas: los colores son irrelevantes

Ramificac ´on: tratar de tomar cartas en el tope de cada pila

(11)

Restricci ´on “channel”

Suponga variables xi, yi (0 ≤ i < n) channel(xi,yi)se cumpe si

xi =j ⇔ yj =i (0 ≤ i < n)

(12)

Propagar “channel”

M ´etodo ingenuo: para un store s

si s(xi) = {j}, entonces s(yj)debe ser {i}

si s(yi) = {j}, entonces s(xj)debe ser {i}

Mejor (m ´etodo A): para un store s si j 6∈ s(xi)entonces elimine i de s(yj) si j 6∈ s(yi)entonces elimine i de s(xj) Existe algo mejor?

(13)

Propagar mejor “channel”

Observaci ´on: para que channel(xi,yi)se cumpla, distinct(xi)y distinct(yj)deben cumplirse

sponga que xi1 =j y que tambi ´en xi2 =j, donde i16= i2 entonces yj =i1y tambi ´en yj =i2

lo que es imposible...

Solo se necesita un distinct propagar distinct sobre las xi

la propagaci ´on del m ´etodo A propagar ´a distinct para yi

(14)

Prlaneamiento “scheduling”

A3 A4 A5

A2

S5 S5 B5 S2

S2 B2

M5

P1 A1

S3 S3 B3 M2

A6 S1

S1

B1 M3

P2

S6 S6 B6

S4 T2

B4 S4 M1

M4

T1 T4

V1

M6 T5

V2 T3

(15)

Soluci ´on de un problema de “scheduling”

Tiempo de arranque de cada tarea Todas las restricciones satisfechas Tiempo de conclusi ´on de tareas m´ınimo

(16)

“scheduling”, modelo

Variable para tiempo de comienzo de tarea a start(a)

restricci ´on de precedencia: a antes que b start(a) + dur (a) ≤ start(b)

(17)

Procedimiento de propagaci ´on

a antes que b

a b

start(a) ∈ {0, ..., 7}

start(b) ∈ {0, ..., 5}

(18)

Procedimiento de propagaci ´on

a antes que b

a b

a

b start(a) ∈ {0, ..., 7} start(a) ∈ {0, 1, 2}

start(b) ∈ {0, ..., 5} start(b) ∈ {3, 4, 5}

(19)

“scheduling”, modelo

Variable para tiempo de comienzo de tarea a start(a)

restricci ´on de precedencia: a antes que b start(a) + dur (a) ≤ start(b)

Restricci ´on de recursos

a antes que b, start(a) + dur (a) ≤ start(b) o

b antes que a, start(b) + dur (b) ≤ start(a)

(20)

Ramificaci ´on

Establecer orden sobre las tareas qu ´e recurso escoger: el m ´as escaso?

qu ´e tarea escoger primero: por ejemplo la m ´as larga

(21)

Modelo demasiado ingenuo

Visi ´on muy local

pares individuales de tareas O(n2)propagadores para n tareas isi ´on global

todas las tareas sobre un recurso: serializar, ordenar un solo propagador

hay buenos algoritmos

(22)

Clases de problemas

Por tipo de recurso

a lo sumo una tarea al tiempo:disyuntivo menos que la capacidad:acumulativo Por tipos de tareas

No interruptibles interruptibles estirables:el ´astico

veremos: disyuntivo, no interruptible

(23)

Serializaci ´on

Considerar todas las tareas sobre el mismo recurso Deducir su orden tanto como sea posible

menos que la capacidad:acumulativo T ´ecnicas

Tempotabulaci ´on: mirar slots temporales usados/libres b ´usqueda de arcos: qu ´e tarea ejecuta primero/ ´ultimo?

no-primera, no- ´ultima: qu ´e tareas no pueden ser primera/ ´ultima?

(24)

Propagaci ´on de tempotabulaci ´on

Horario para recurso

Registrar informaci ´on sobre tiempo en el que una tarea usa con seguridad el recurso

Propagar en ambas direcciones de tareas a horarios

de horarios a tareas

(25)

Ejemplo

A B

start(A) ∈ {0, 1} dur (A) = 2 start(B) ∈ {0, 1, 2} dur (B) = 2

(26)

Hacia horario...

A B

Horario

start(A) ∈ {0, 1} dur (A) = 2 start(B) ∈ {0, 1, 2} dur (B) = 2

(27)

Hacia horario...

A B

Horario

o

start(A) ∈ {0, 1} dur (A) = 2 start(B) ∈ {0, 1, 2} dur (B) = 2

(28)

Hacia horario...

A B

Horario

start(A) ∈ {0, 1} dur (A) = 2 start(B) ∈ {0, 1, 2} dur (B) = 2

(29)

Hacia tareas...

Horario

A B

start(A) ∈ {0, 1} dur (A) = 2 start(B) ∈ {2} dur (B) = 2

(30)

Hacia horario...

Horario

A B

start(A) ∈ {0, 1} dur (A) = 2 start(B) ∈ {2} dur (B) = 2

(31)

Hacia tareas...

Horario

A B

start(A) ∈ {0} dur (A) = 2 start(B) ∈ {2} dur (B) = 2

(32)

Hacia horario...(in ´util)

Horario

A B

start(A) ∈ {0, 1} dur (A) = 2 start(B) ∈ {2} dur (B) = 2

(33)

B ´usqueda de arcos

tempotabulaci ´on es d ´ebil

propagaci ´on reificada es mejor...

Pero hay idea importante

tener en cuenta cu ´ando se usa un recurso propagar esto hacia las tareas

B ´usqueda de arcos es un esquema m ´as general para propagar el orden (arcos) entre tareas

(34)

B ´usqueda de arcos: idea

Asumir un subconjunto O de tareas y T ∈ O restringir T para que ejecute primero averigue si las tareas en O\{T }

deben,pueden, o no pueden ejecutar de primero o de ´ultimo de manera sim ´etrica para ´ultima Puede hacerse en O(n2)para n tareas

(35)

Ejemplo

!!

start(A) ! {0,…,11} dur(A) = 6

!!

start(B) ! {1,…,7} dur(B) = 4

!!

start(C) ! {1,…,8} dur(C) = 3 A

B

C

(36)

Ejemplo

A {B,C}

Considere {B, C}

A no puede ir antes que {B, C}

(37)

Ejemplo

A {B,C}

Considere {B, C}

A no puede ir antes que {B, C}

propague que A va despu ´es de {B.C}

(38)

Ejemplo

A B C

Resultado de la propagaci ´on start(A) ∈ {8, ..., 11}

tempotabulaci ´on y reificaci ´on no propagar´ıan nada!

Referencias

Documento similar

¿Tenemos a nuestro alcance en Prevención herramientas basadas en este tipo de tecnologías?... TIC’S EN

(29) Cfr. MUÑOZ MACHADO: Derecho público de las Comunidades Autóno- mas, cit., vol. Es necesario advertir que en la doctrina clásica este tipo de competencias suele reconducirse

El Gobierno del Primer ministro, por su parte, funcionaría de la siguiente mane- ra (67): posibilidad de introducir las primarias en los partidos; nombramiento del candidato a

Aparte de la existencia de otras diferencias de procedimiento respecto a la relación jurídica con la Administración, hay que insistir sobre la idea, como ya hemos dicho en el

– Poner un hueco para guardar los valores de reotrno en la pila antes de la llamada. • La subrutina llena el hueco con los valores

Así, antes de adoptar una medida de salvaguardia, la Comisión tenía una reunión con los representantes del Estado cuyas productos iban a ser sometidos a la medida y ofrecía

The part I assessment is coordinated involving all MSCs and led by the RMS who prepares a draft assessment report, sends the request for information (RFI) with considerations,

o Si dispone en su establecimiento de alguna silla de ruedas Jazz S50 o 708D cuyo nº de serie figura en el anexo 1 de esta nota informativa, consulte la nota de aviso de la