Schduling and Rostring Marco Kuhlann & Guido Tack Lctur
Th story so ar Modlling in Gcod/J Foral rawork or constraint prograing Propagation, global constraints Sarch
Th story so ar Modlling in Gcod/J Foral rawork or constraint prograing Propagation, global constraints Sarch coplt pictur o a cp syst!
Advancd topics
Raindr o th cours Schduling and rostring SAT solving Finit st constraints Sytry braking
Raindr o th cours Schduling and rostring today SAT solving Finit st constraints Sytry braking
Schduling
Schduling Tasks a (aka activitis) duration dur(a) rsourc rs(a) Prcdnc constraints dtrin ordr aong two tasks Rsourc constraints.g. at ost on task pr rsourc
2 Chaptr 11. Schduling 11.2 Constructing a Bridg Building a Bridg Th ollowing probl is takn ro [] and is usd as a bnchark in th constraint prograing counity. Th probl is to schdul th construction o th bridg shown in Figur 11.10. Figur 11.10 Th Bridg Probl. 11.. Strong Propagators or Capacity Constraints 9 Figur 11.1 Th Gantt-chart or th bridg probl. Probl Spcii cation Th probl is spciid as shown in Figur 11.11. Fro this tabl w driv prcdnc and capacity constraints as in th sctions bor. W also assu that a rsourc cannot handl or than on activity at a ti. Such a kind o rsourc is also known as a unary rsourc. unary rsourcs Du to so pculiaritis o th probl, w hav th ollowing
Application Aras Crating ti tabls Planning worklow Schduling instruction squncs in a copilr... Ovrlap with Oprations Rsarch (OR)!
Modl in CP Variabl or start-ti o task a Prcdnc constraints: a bor b Rsourc constraints: a bor b b bor a
Modl in CP Variabl or start-ti o task a Prcdnc constraints: a bor b Rsourc constraints: a bor b b bor a siilar to tporal rlations
Modl in CP Variabl or start-ti o task a Prcdnc constraints: start(a) + dur(a) start(b) Rsourc constraints: a bor b b bor a
Modl in CP Variabl or start-ti o task a Prcdnc constraints: start(a) + dur(a) start(b) Rsourc constraints: a bor b b bor a riication
Propagat Prcdnc A bor B A B start(a) {0,...,} dur(a) = 2 start(b) {0,...,} dur(b) = 2
Propagat Prcdnc A bor B A B start(a) {0,...,} dur(a) = 2 start(b) {2,...,} dur(b) = 2
So what s nw? Concrt start and nd tis Optiization (.g. ind arlist copltion ti, inial akspan,...) This aks th probl hard
Classs o probls I Rsourc typ disjunctiv (at ost on task at a ti) cuulativ (ixd capacity pr rsourc) Task typ non-prptiv (not intrruptibl) prptiv
Classs o probls II Optiization: iniiz akspan (latst nd ti o any task) nubr o lat jobs (that iss thir du dat)... Giv or wight to or iportant jobs
Spcial cas w discuss disjunctiv, non-prptiv cuulativ (brily) Coprhnsiv discussion: Baptist, L Pap, Nuijtn. Constraint-basd Schduling. Kluwr, 2001.
Again: Modl in CP Variabl or start-ti o task a Prcdnc constraints: start(a) + dur(a) start(b) Rsourc constraints: a bor b b bor a riication
Think global Modl ploys local viw: constraints on pairs o tasks O(n 2 ) propagators or n tasks Global viw: ordr all tasks on on rsourc ploy sart global propagator
Ordring Tasks: Srialization Considr all tasks on on rsourc Dduc thir ordr as uch as possibl
Ordring Tasks: Srialization Considr all tasks on on rsourc Dduc thir ordr as uch as possibl Propagators: Titabling: look at r/usd ti slots Edg-inding: which task irst/last? Not-irst / not-last
Spcial cas Considr disjunctiv, non-prptiv schduling whr th duration is 1 or all tasks Do you know a good propagator or srialization?
Titabl propagation Titabl: data structur that rcords pr rsourc whr so task dinitivly uss th rsourc Propagat ro tasks to titabl ro titabl to tasks
Exapl: Titabl A B start(a) {0,1} dur(a) = 2 start(b) {0,1,2} dur(b) = 2
Exapl: Titabl A B t start(a) {0,1} dur(a) = 2 start(b) {0,1,2} dur(b) = 2
Exapl: Titabl A or B t start(a) {0,1} dur(a) = 2 start(b) {0,1,2} dur(b) = 2
Exapl: Titabl A or B t start(a) {0,1} dur(a) = 2 start(b) {0,1,2} dur(b) = 2
Exapl: Titabl A B t start(a) {0,1} dur(a) = 2 start(b) {2} dur(b) = 2
Exapl: Titabl A B t start(a) {0,1} dur(a) = 2 start(b) {2} dur(b) = 2
Exapl: Titabl A B t start(a) {0} dur(a) = 2 start(b) {2} dur(b) = 2
Exapl: Titabl A B t start(a) {0} dur(a) = 2 start(b) {2} dur(b) = 2
Edg Finding Ti tabling is otn wakr than riication But iportant ida: rcord whn rsourc is usd Edg inding or gnral sch to propagat ordr btwn tasks wll-known, iportant OR algorith portd to CP
Edg inding: Ida Givn a st O o tasks and T O ind out whthr T ust xcut bor (or atr) all tasks in O-{T}
Edg inding: Ida Givn a st O o tasks and T O ind out whthr T ust xcut bor (or atr) all tasks in O-{T} Can b don in ti O(n 2 ) or n tasks
Edg inding: Ida Givn a st O o tasks and T O ind out whthr T ust xcut bor (or atr) all tasks in O-{T} Can b don in ti O(n 2 ) or n tasks Dually: not-irst, not-last
Exapl: Edg inding A B C start(a) {0,...,11} dur(a) = start(b) {1,...,} dur(b) = start(c) {1,...,} dur(c) =
Exapl: Edg inding A {B,C} start(a) {0,...,11} dur(a) = start(b) {1,...,} dur(b) = start(c) {1,...,} dur(c) =
Exapl: Edg inding A {B,C} considr {B,C}: A ust b last! start(a) {0,...,11} dur(a) = start(b) {1,...,} dur(b) = start(c) {1,...,} dur(c) =
Exapl: Edg inding A {B,C} considr {B,C}: A ust b last! start(a) {,...,11} dur(a) = start(b) {1,...,} dur(b) = start(c) {1,...,} dur(c) =
Exapl: Edg inding A B C start(a) {,...,11} dur(a) = start(b) {1,...,} dur(b) = start(c) {1,...,} dur(c) =
Exapl: Edg inding A B C titabl and riication do not propagat anything! start(a) {,...,11} dur(a) = start(b) {1,...,} dur(b) = start(c) {1,...,} dur(c) =
Edg inding: algorithic ida A B C A B B B B C C C A A A A A Jackson's Prptiv Schdul
Edg inding: algorithic ida A B B B B C C C A A A A A For task A: start(a) + dur(a) + a {B,C} rsidual(0, a) > nd(c) whr rsidual(t,a) is th rsidual procssing ti on th JPS o task a at ti t Consqunc: A cos atr {B,C}
Edg inding: consistncy Edg inding coputs "th sallst arlist start ti or ach activity A i, assuing all othr activitis ar intrruptibl" Sotis strongr than disjunction by riication Sotis wakr Otn cobination is usd
Branching Gnral ida o any huristic: dtrin critical variabls arly! A critical variabl is on that aks a big dirnc i dtrind
Branching Huristic: stablish ordr aong tasks which rsourc to choos guss irst task on rsourc Atr ordring: assign start tis solution xists, so no branching rquird atr assigning, propagat prcdnc constraints
Branching a bor b b bor a
Branching a irst a not irst
Branching: Slack How to choos a? Good huristic: iniu slack A B slack
Branching and propagation Ncssary inoration: partial ordr o tasks Cooprat! shar data structurs btwn branching and propagators
Exapl: Instruction Schduling Optiiz achin cod Goal: iniu lngth instruction schdul Iportant stp or iproving proranc o objct cod gnratd by a coplir Bst papr CP 2001 (Ptr van Bk and Knt Wilkn)
Exapl: Instruction Schduling R1! a R2! b R1! R1+R2 1 R! c R1! R1+R
Exapl: Instruction Schduling instructions R1! a R2! b R1! R1+R2 1 R! c R1! R1+R
Exapl: Instruction Schduling instructions R1! a R2! b R1! R1+R2 1 R! c R1! R1+R latncy
Exapl: Instruction Schduling instructions R1! a R2! b Find issu ti s(i) such that 1. i j iplis s(i) s(j) 2. s(i) + l(i,j) s(j) R1! R1+R2 R! c 1 R1! R1+R latncy Miniiz ax s(i)
Exapl: Instruction Schduling Constraints: all s(i) ust b distinct Prcdnc constraints or latncy Plus spcial cas o dg inding
Exapl: Instruction Schduling R1! a R2! b R1! R1+R2 R! c 1 R1! R1+R Non-optial: R1 a R2 b nop nop R1 R1+R2 R c nop nop R1 R1+R Optial: R1 a R2 b R c nop R1 R1+R2 R1 R1+R
Rsults Built into gcc or xprints Tstd on SPEC9 FP bnchark Larg basic blocks (up to 1000 instructions) Optially solvd Far bttr than ILP approach (20 tis astr)
Cuulativ Schduling Each rsourc R has a capacity cap(r) Each task T on R uss aount us(r) Tasks can ovrlap but nvr xcd capacity
Cuulativ: Disjunctiv Propagation For tasks A and B on rsourc R: us(a) + us(b) cap(r) or start(a) + dur(a) start(b) or start(b) + dur(b) start(a)
Cuulativ Tchniqus ro disjunctiv schduling carry ovr to cuulativ schduling Gnralizd titabling, dg-inding, not-irst/not-last
Gotric Intrprtation Task is rctangl dinsion dur(t) us(t) placd at x-coordinat start(t) Rsourcs ar rctangls nclos task-rctangls rctangls nvr xcd y-cordinats
Gotric Intrprtation R1 usag R2 duration
Gotric Intrprtation E F R1 D G C usag R2 A B duration
Gotric Intrprtation E F Packing squars into rctangls. R1 R2 D A G B C usag duration
Th job-shop probl achins, n jobs ach job has tasks ach task has a ixd duration ach task is assignd to a dirnt achin tasks in on job ust b procssd in ordr always satisiabl! but: iniiz total copltion ti
Job-shop xapl job1 = ( 2, 1) ( 0, ) ( 1, ) (, ) (, ) (, ) job2 = ( 1, ) ( 2, ) (,10) (,10) ( 0,10) (, ) job = ( 2, ) (, ) (, ) ( 0, 9) ( 1, 1) (, ) job = ( 1, ) ( 0, ) ( 2, ) (, ) (, ) (, 9) job = ( 2, 9) ( 1, ) (, ) (, ) ( 0, ) (, 1) job = ( 1, ) (, ) (, 9) ( 0,10) (, ) ( 2, 1)
Job-shop xapl job1 = ( 2, 1) ( 0, ) ( 1, ) (, ) (, ) (, ) job2 = ( 1, ) ( 2, ) (,10) (,10) ( 0,10) (, ) job = ( 2, ) (, ) (, ) ( 0, 9) ( 1, 1) (, ) job = ( 1, ) ( 0, ) ( 2, ) (, ) (, ) (, 9) job = ( 2, 9) ( 1, ) (, ) (, ) ( 0, ) (, 1) disjoint tasks on on achin job = ( 1, ) (, ) (, 9) ( 0,10) (, ) ( 2, 1)
Job-shop xapl job1 = ( 2, 1) ( 0, ) ( 1, ) (, ) (, ) (, ) job2 = ( 1, ) ( 2, ) (,10) (,10) ( 0,10) (, ) job = ( 2, ) (, ) (, ) ( 0, 9) ( 1, 1) (, ) job = ( 1, ) ( 0, ) ( 2, ) (, ) (, ) (, 9) job = ( 2, 9) ( 1, ) (, ) (, ) ( 0, ) (, 1) disjoint tasks on on achin job = ( 1, ) (, ) (, 9) ( 0,10) (, ) ( 2, 1) srial tasks in on job
Job-shop xapl job1 = ( 2, 1) ( 0, ) ( 1, ) (, ) (, ) (, ) job2 = ( 1, ) ( 2, ) (,10) (,10) ( 0,10) (, ) job = ( 2, ) (, ) (, ) ( 0, 9) ( 1, 1) (, ) job = ( 1, ) ( 0, ) ( 2, ) (, ) (, ) (, 9) job = ( 2, 9) ( 1, ) (, ) (, ) ( 0, ) (, 1) job = ( 1, ) (, ) (, 9) ( 0,10) (, ) ( 2, 1) srial tasks in on job disjoint tasks on on achin iniiz copltion ti
Exapl: optial solution 2 1 0 10 20 0 0 0 0 0 job 1 job 2 job job job job arlist copltion ti:
Th job-shop probl Hard probl! x instanc solvabl using Gcod disjunction by riication noral branching Classic 10x10 instanc not solvabl using Gcod! spcializd propagators (dg-inding) and branchings ndd
Sot Constraints So probls ar ovr-constraind: collg ti-tabling involving studnts' choics aligning popl on a photo (with prrncs o who to stand nxt to) No solution satisying all constraints! Find solution that violats w constraints Mak constraints sot
Sot Constraints Svral approachs: "sot-as-hard": introduc additional variabls that odl violation distinct(x 1,x 2,...,x n, v) whr v is th nubr o violatd pairs, us branch-andbound to iniiz v local sarch tchniqus buckt liination
Litratur Baptist, L Pap, Nuijtn. Constraint-basd Schduling. Kluwr, 2001. Van Bk, Wilkn. Fast Optial Instruction Schduling or Singl-issu Procssors with Arbitrary Latncis. In: CP 2001, Springr-Vrlag.
Rostring
Exapl: shits in a hospital Assign nurss to shits Constraints: all shits takn by a nurs balanc dirnt shit typs sid constraints (xtra days o, public holidays) Exprssibl as init autoata!
Rgular xprssions and init autoata Rindr: * * (+) is quivalnt to th DFA
Rgular xprssions and init autoata Rindr: initial stat * * (+) is quivalnt to th DFA
Rgular xprssions and init autoata Rindr: initial stat * * (+) is quivalnt to th DFA transitions
Rgular xprssions and init autoata Rindr: initial stat * * (+) is quivalnt to th DFA transitions inal stats
Typical autoata or rostring "atr night shits, at last two days o" 1 2 pattrnd strtch constraint
Th rgular languag brship constraint Givn: squnc o variabls <x 1,...,x n > rgular xprssion ovr th alphabt N Constraint: rgular(<x 1,...,x n >, ) holds i th word x 1 x 2...x n (a string in N n ) is in th languag L()
Th rgular languag brship constraint Exapl: variabls o,tu,w,th,r,sa,su shit typs (orning)=1, (vning)=2, (r)= rgular xprssion * * (+) producs th languag (odulo lngth ): {,,,,, }
Chcking th rgular constraint o= tu= w= th= r= sa= su= 1 2 2 1 2
Chcking th rgular constraint o= tu= w= th= r= sa= su= 1 2 2 1 2
Chcking th rgular constraint o= tu= w= th= r= sa= su= 1 2 2? ailur! 1 2
Chcking th rgular constraint o tu w th r sa su 1 1 1 1 1 1 1 2 2 2 2 2 2 2 1 2 layrd graph n+1 rows, Q coluns colun = "layr" arcs only btwn conscutiv layrs arc (i-1,j) (i,k): transition possibl ro Q j to Q k using sybol ro x i
Chcking th rgular constraint o tu w th r sa su o {} tu {} 1 1 1 1 1 1 1 2 2 2 2 2 2 2 1 2 w {} th {} r {} sa {} su {} 1 2 layrd graph
Propagating rgular o tu w th r sa su o {,,} tu {,,} 1 1 1 1 1 1 1 2 2 2 2 2 2 2 1 2 w {,,} th {,,} r {,,} sa {,,} su {,,} 1 2 orward phas
Propagating rgular o tu w th r sa su o {,,} tu {,,} 1 1 1 1 1 1 1 2 2 2 2 2 2 2 1 2 w {,,} th {,,} r {,,} sa {,,} su {,,} 1 2 orward phas
Propagating rgular o tu w th r sa su o {,,} tu {,,} 1 1 1 1 1 1 1 2 2 2 2 2 2 2 1 2 w {,,} th {,,} r {,,} sa {,,} su {,,} 1 2 orward phas
Propagating rgular o tu w th r sa su o {,,} tu {,,} 1 1 1 1 1 1 1 2 2 2 2 2 2 2 1 2 w {,,} th {,,} r {,,} sa {,,} su {,,} 1 2 orward phas
Propagating rgular o tu w th r sa su o {,,} tu {,,} 1 1 1 1 1 1 1 2 2 2 2 2 2 2 1 2 w {,,} th {,,} r {,,} sa {,,} su {,,} 1 2 orward phas
Propagating rgular o tu w th r sa su o {,,} tu {,,} 1 1 1 1 1 1 1 2 2 2 2 2 2 2 1 2 w {,,} th {,,} r {,,} sa {,,} su {,,} 1 2 orward phas
Propagating rgular o tu w th r sa su o {,,} tu {,,} 1 1 1 1 1 1 1 2 2 2 2 2 2 2 1 2 w {,,} th {,,} r {,,} sa {,,} su {,,} 1 2 orward phas
Propagating rgular o tu w th r sa su o {,,} tu {,,} 1 1 1 1 1 1 1 2 2 2 2 2 2 2 1 2 w {,,} th {,,} r {,,} sa {,,} su {,,} 1 2 orward phas
Propagating rgular o tu w th r sa su o {,,} tu {,,} 1 1 1 1 1 1 1 2 2 2 2 2 2 2 1 2 w {,,} th {,,} r {,,} sa {,,} su {,,} 1 2 orward phas
Propagating rgular o tu w th r sa su o {,,} tu {,,} 1 1 1 1 1 1 1 2 2 2 2 2 2 2 1 2 w {,,} th {,,} r {,,} sa {,,} su {,,} 1 2 orward phas
Propagating rgular o tu w th r sa su o {,,} tu {,,} 1 1 1 1 1 1 1 2 2 2 2 2 2 2 1 2 w {,,} th {,,} r {,,} sa {,,} su {,,} 1 2 orward phas
Propagating rgular o tu w th r sa su o {,,} tu {,,} 1 1 1 1 1 1 1 2 2 2 2 2 2 2 1 2 w {,,} th {,,} r {,,} sa {,,} su {,,} 1 2 orward phas
Propagating rgular o tu w th r sa su o {,,} tu {,,} 1 1 1 1 1 1 1 2 2 2 2 2 2 2 1 2 w {,,} th {,,} r {,,} sa {,,} su {,,} 1 2 orward phas
Propagating rgular o tu w th r sa su o {,,} tu {,,} 1 1 1 1 1 1 1 2 2 2 2 2 2 2 1 2 w {,,} th {,,} r {,,} sa {,,} su {,,} 1 2 orward phas
Propagating rgular o tu w th r sa su o {,,} tu {,,} 1 1 1 1 1 1 1 2 2 2 2 2 2 2 1 2 w {,,} th {,,} r {,,} sa {,,} su {,,} 1 2 orward phas
Propagating rgular o tu w th r sa su o {,,} tu {,,} 1 1 1 1 1 1 1 2 2 2 2 2 2 2 1 2 w {,,} th {,,} r {,,} sa {,,} su {,,} 1 2 orward phas
Propagating rgular o tu w th r sa su o {,,} tu {,,} 1 1 1 1 1 1 1 2 2 2 2 2 2 2 1 2 w {,,} th {,,} r {,,} sa {,,} su {,,} 1 2 orward phas
Propagating rgular o tu w th r sa su o {,,} tu {,,} 1 1 1 1 1 1 1 2 2 2 2 2 2 2 1 2 w {,,} th {,,} r {,,} sa {,,} su {,,} 1 2 orward phas
Propagating rgular o tu w th r sa su o {,,} tu {,,} 1 1 1 1 1 1 1 2 2 2 2 2 2 2 1 2 w {,,} th {,,} r {,,} sa {,,} su {,,} 1 2 orward phas
Propagating rgular o tu w th r sa su o {,,} tu {,,} 1 1 1 1 1 1 1 2 2 2 2 2 2 2 1 2 w {,,} th {,,} r {,,} sa {,,} su {,,} 1 2 orward phas
Propagating rgular o tu w th r sa su o {,,} tu {,,} 1 1 1 1 1 1 1 2 2 2 2 2 2 2 1 2 w {,,} th {,,} r {,,} sa {,,} su {,,} 1 2 orward phas
Propagating rgular o tu w th r sa su o {,,} tu {,,} 1 1 1 1 1 1 1 2 2 2 2 2 2 2 1 2 w {,,} th {,,} r {,,} sa {,,} su {,,} 1 2 orward phas
Propagating rgular o tu w th r sa su o {,,} tu {,,} 1 1 1 1 1 1 1 2 2 2 2 2 2 2 1 2 w {,,} th {,,} r {,,} sa {,,} su {,,} 1 2 orward phas
Propagating rgular o tu w th r sa su o {,,} tu {,,} 1 1 1 1 1 1 1 2 2 2 2 2 2 2 1 2 w {,,} th {,,} r {,,} sa {,,} su {,,} 1 2 orward phas
Propagating rgular o tu w th r sa su o {,,} tu {,,} 1 1 1 1 1 1 1 2 2 2 2 2 2 2 1 2 w {,,} th {,,} r {,,} sa {,,} su {,,} 1 2
Propagating rgular o tu w th r sa su o {,,} tu {,,} 1 1 1 1 1 1 1 2 2 2 2 2 2 2 1 2 w {,,} th {,,} r {,,} sa {,,} su {,,} 1 2 backward phas
Propagating rgular o tu w th r sa su o {,,} tu {,,} 1 1 1 1 1 1 1 2 2 2 2 2 2 2 1 2 w {,,} th {,,} r {,,} sa {,,} su {,,} 1 2 backward phas
Propagating rgular o tu w th r sa su o {,,} tu {,,} 1 1 1 1 1 1 1 2 2 2 2 2 2 2 1 2 w {,,} th {,,} r {,,} sa {,,} su {,,} 1 2 backward phas
Propagating rgular o tu w th r sa su o {,,} tu {,,} 1 1 1 1 1 1 1 2 2 2 2 2 2 2 1 2 w {,,} th {,,} r {,,} sa {,,} su {,,} 1 2 backward phas
Propagating rgular o tu w th r sa su o {,,} tu {,,} 1 1 1 1 1 1 1 2 2 2 2 2 2 2 1 2 w {,,} th {,,} r {,,} sa {,,} su {,,} 1 2 backward phas
Propagating rgular o tu w th r sa su o {,,} tu {,,} 1 1 1 1 1 1 1 2 2 2 2 2 2 2 1 2 w {,,} th {,,} r {,,} sa {,,} su {,,} 1 2 backward phas
Propagating rgular o tu w th r sa su o {,,} tu {,,} 1 1 1 1 1 1 1 2 2 2 2 2 2 2 1 2 w {,,} th {,,} r {,,} sa {,,} su {,,} 1 2 backward phas
Propagating rgular o tu w th r sa su o {,,} tu {,,} 1 1 1 1 1 1 1 2 2 2 2 2 2 2 1 2 w {,,} th {,,} r {,,} sa {,,} su {,,} 1 2 backward phas
Propagating rgular o tu w th r sa su o {,,} tu {,,} 1 1 1 1 1 1 1 2 2 2 2 2 2 2 1 2 w {,,} th {,,} r {,,} sa {,,} su {,,} 1 2 updat phas
Propagating rgular o tu w th r sa su o {} tu {,} 1 1 1 1 1 1 1 2 2 2 2 2 2 2 1 2 w {,} th {} r {} sa {,} su {,} 1 2 updat phas
Incrntality kp layrd graph btwn invocations i v is rovd ro x i: dlt all arcs in layr i corrsponding to a transition with labl v propagat changs orward and backward
Propagating rgular o tu w th r sa su o {} tu {,} 1 1 1 1 1 1 1 2 2 2 2 2 2 2 1 2 w {,} th {} r {} sa {,} su {,} 1 2 roving a valu
Propagating rgular o tu w th r sa su o {} tu {,} 1 1 1 1 1 1 1 2 2 2 2 2 2 2 1 2 w {,} th {} r {} sa {,} su {,} 1 2 roving a valu
Propagating rgular o tu w th r sa su o {} tu {,} 1 1 1 1 1 1 1 2 2 2 2 2 2 2 1 2 w {,} th {} r {} sa {,} su {,} 1 2 roving a valu
Propagating rgular o tu w th r sa su o {} tu {,} 1 1 1 1 1 1 1 2 2 2 2 2 2 2 1 2 w {,} th {} r {} sa {,} su {,} 1 2 roving a valu
Propagating rgular o tu w th r sa su o {} tu {,} 1 1 1 1 1 1 1 2 2 2 2 2 2 2 1 2 w {,} th {} r {} sa {,} su {,} 1 2 roving a valu
Propagating rgular o tu w th r sa su o {} tu {,} 1 1 1 1 1 1 1 2 2 2 2 2 2 2 1 2 w {,} th {} r {} sa {,} su {,} 1 2 roving a valu
Propagating rgular o tu w th r sa su o {} tu {,} 1 1 1 1 1 1 1 2 2 2 2 2 2 2 1 2 w {,} th {} r {} sa {,} su {,} 1 2 roving a valu
Propagating rgular o tu w th r sa su o {} tu {,} 1 1 1 1 1 1 1 2 2 2 2 2 2 2 1 2 w {,} th {} r {} sa {,} su {,} 1 2 roving a valu
Propagating rgular o tu w th r sa su o {} tu {,} 1 1 1 1 1 1 1 2 2 2 2 2 2 2 1 2 w {,} th {} r {} sa {,} su {,} 1 2 roving a valu
Propagating rgular o tu w th r sa su o {} tu {,} 1 1 1 1 1 1 1 2 2 2 2 2 2 2 1 2 w {,} th {} r {} sa {,} su {,} 1 2 roving a valu
Propagating rgular o tu w th r sa su o {} tu {} 1 1 1 1 1 1 1 2 2 2 2 2 2 2 1 2 w {} th {} r {} sa {,} su {,} 1 2 roving a valu
Consistncy achivd by rgular propagating rgular achivs doain consistncy: all arcs corrspond to valus in a doain and valid transitions vry arc is rachabl ro th initial stat vry arc lis on a path to a inal stat consqunc: vry valu has support
Runti analysis Initial stup: O(n Q ) with n=#variabls, =doain siz, Q =#stats Incrntal propagation: constant ti pr rovd arc (providd w us clvr data structurs or th graph) Linar in Q : iniiz th autoaton!
Othr applications o rgular ncod ad-hoc xtnsional constraints c x,y = { (1,), (1,), (,), (,) } is ncodd as rgular([x,y], (1)+(1)+()+()) ncod puzzls.g. solitair battlships, placing tils on a board,... sotis inasibl!.g. distinct rsults in xponntial siz autoaton!
Siilar idas Easy xtnsion: circular pattrns (x n ollowd by x 1 ) Extnsion to contxt-r languags graar contraints Mor coplx autoata countrs lad to sallr autoata Altrnativ iplntation dcoposition into sallr constraints, without hindring propagation
Litratur Rcondd: Gills Psant: A rgular languag brship constraint. In: CP 200, LNCS 2, Springr Vrlag. Wll-writtn, and includs iplntation dtails.
Suary: Schduling Hard, ral-li probls Modl siilar to tporal rlations but: intrstd in actual solution + optiization Global constraints: titabl, dg-inding, not-irst/not-last Spcializd branching
Suary: Rostring Hard, ral-li probls Usul propagator: rgular
Thank you.