88

Flexible Optimization: Nurse Scheduling with Constraint Programming … · 2019-10-16 · working rules as weighted automata [Menana09] automated modeling tool in ChocoETP 1 model

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Flexible Optimization: Nurse Scheduling with Constraint Programming … · 2019-10-16 · working rules as weighted automata [Menana09] automated modeling tool in ChocoETP 1 model

Flexible Optimization: Nurse Schedulingwith Constraint Programming and Automata

Sophie Demassey

Centre de Mathématiques Appliquées, MINES ParisTechhttp://sofdem.github.io/

CMP, Gardanne, 3 July 2014

Flexible optimization 1 / 34

Page 2: Flexible Optimization: Nurse Scheduling with Constraint Programming … · 2019-10-16 · working rules as weighted automata [Menana09] automated modeling tool in ChocoETP 1 model

mutability of practical recurring problems

example 1: online data center resource managementhttp://btrp.inria.fr/ [Hermenier09]

Flexible optimization 2 / 34

Page 3: Flexible Optimization: Nurse Scheduling with Constraint Programming … · 2019-10-16 · working rules as weighted automata [Menana09] automated modeling tool in ChocoETP 1 model

mutability of practical recurring problems

example 2: employee timetablinghttps://github.com/sofdem/chocoETP [Menana09]

Flexible optimization 3 / 34

Page 4: Flexible Optimization: Nurse Scheduling with Constraint Programming … · 2019-10-16 · working rules as weighted automata [Menana09] automated modeling tool in ChocoETP 1 model

outline

1 Mutable ProblemNurse Scheduling

2 Flexible Tools�nite automataglobal constraints

3 Flexible Solutionsmulticost-regular = automata + global constraintsChocoETP = automata + CP + local search

4 Conclusion

Flexible optimization 4 / 34

Page 5: Flexible Optimization: Nurse Scheduling with Constraint Programming … · 2019-10-16 · working rules as weighted automata [Menana09] automated modeling tool in ChocoETP 1 model

Nurse Scheduling Probleman illustration of mutability

Flexible optimization 5 / 34

Page 6: Flexible Optimization: Nurse Scheduling with Constraint Programming … · 2019-10-16 · working rules as weighted automata [Menana09] automated modeling tool in ChocoETP 1 model

Nurse Scheduling Problem

I set of nurses

T discrete time horizon 28 days

A set of activities N night, M morning, E evening, R rest

cover constraints Ct / day t between 2 and 3 nurses at night

working rules Ri / nurse i at least 2 mornings a week

R2

C3

Flexible optimization Illustration NSP 5 / 34

Page 7: Flexible Optimization: Nurse Scheduling with Constraint Programming … · 2019-10-16 · working rules as weighted automata [Menana09] automated modeling tool in ChocoETP 1 model

Nurse Scheduling Problem

I set of nurses

T discrete time horizon 28 days

A set of activities N night, M morning, E evening, R rest

cover constraints Ct / day t between 2 and 3 nurses at night

working rules Ri / nurse i at least 2 mornings a week

R2

C3

Flexible optimization Illustration NSP 5 / 34

Page 8: Flexible Optimization: Nurse Scheduling with Constraint Programming … · 2019-10-16 · working rules as weighted automata [Menana09] automated modeling tool in ChocoETP 1 model

Nurse Scheduling Problem

I set of nurses

T discrete time horizon 28 days

A set of activities N night, M morning, E evening, R rest

cover constraints Ct / day t between 2 and 3 nurses at night

working rules Ri / nurse i at least 2 mornings a week

R2

C3

Flexible optimization Illustration NSP 5 / 34

Page 9: Flexible Optimization: Nurse Scheduling with Constraint Programming … · 2019-10-16 · working rules as weighted automata [Menana09] automated modeling tool in ChocoETP 1 model

working rules

Examples:

between 2 and 3 rests every 7 days

no 3 consecutive nights a week

a rest and a night every week-end

mutable, heterogeneous, hard/soft

Flexible optimization Illustration NSP 6 / 34

Page 10: Flexible Optimization: Nurse Scheduling with Constraint Programming … · 2019-10-16 · working rules as weighted automata [Menana09] automated modeling tool in ChocoETP 1 model

working rules

Examples:

between 2 and 3 rests every 7 days

no 3 consecutive nights a week

a rest and a night every week-end

mutable, heterogeneous, hard/soft

Flexible optimization Illustration NSP 6 / 34

Page 11: Flexible Optimization: Nurse Scheduling with Constraint Programming … · 2019-10-16 · working rules as weighted automata [Menana09] automated modeling tool in ChocoETP 1 model

working rules

Examples:

between 2 and 3 rests every 7 days

no 3 consecutive nights a week

a rest and a night every week-end

mutable, heterogeneous, hard/soft

how ? forbid enforce count

what ? activity stretch pattern

when ? �xed time sliding period �xed period

Flexible optimization Illustration NSP 6 / 34

Page 12: Flexible Optimization: Nurse Scheduling with Constraint Programming … · 2019-10-16 · working rules as weighted automata [Menana09] automated modeling tool in ChocoETP 1 model

working rules

Examples:

between 2 and 3 rests every 7 days

no 3 consecutive nights a week

a rest and a night every week-end

mutable, heterogeneous, hard/soft

how ? forbid enforce count

what ? activity stretch pattern

when ? �xed time sliding period �xed period

Flexible optimization Illustration NSP 6 / 34

Page 13: Flexible Optimization: Nurse Scheduling with Constraint Programming … · 2019-10-16 · working rules as weighted automata [Menana09] automated modeling tool in ChocoETP 1 model

working rules

Examples:

between 2 and 3 rests every 7 days

no 3 consecutive nights a week

a rest and a night every week-end

mutable, heterogeneous, hard/soft

how ? forbid enforce count

what ? activity stretch pattern

when ? �xed time sliding period �xed period

Flexible optimization Illustration NSP 6 / 34

Page 14: Flexible Optimization: Nurse Scheduling with Constraint Programming … · 2019-10-16 · working rules as weighted automata [Menana09] automated modeling tool in ChocoETP 1 model

working rules

Examples:

between 2 and 3 rests every 7 days

no 3 consecutive nights a week

a rest and a night every week-end

mutable, heterogeneous, hard/soft

Flexible optimization Illustration NSP 6 / 34

Page 15: Flexible Optimization: Nurse Scheduling with Constraint Programming … · 2019-10-16 · working rules as weighted automata [Menana09] automated modeling tool in ChocoETP 1 model

working rules

Examples:

between 2 and 3 rests every 7 days

no 3 consecutive nights a week

a rest and a night every week-end

mutable, heterogeneous, hard/soft

individual constraint penalties (to minimize)ex: 5∗occurrence(violation)2

Flexible optimization Illustration NSP 6 / 34

Page 16: Flexible Optimization: Nurse Scheduling with Constraint Programming … · 2019-10-16 · working rules as weighted automata [Menana09] automated modeling tool in ChocoETP 1 model

working rules

Examples:

between 2 and 3 rests every 7 days

no 3 consecutive nights a week

a rest and a night every week-end

mutable, heterogeneous, hard/soft

⇒ high-level modelisation tools⇒ auto-con�gurable algorithms

Flexible optimization Illustration NSP 6 / 34

Page 17: Flexible Optimization: Nurse Scheduling with Constraint Programming … · 2019-10-16 · working rules as weighted automata [Menana09] automated modeling tool in ChocoETP 1 model

Flexible tools in Combinatorial Optimization

Flexible optimization Flexible Tools 7 / 34

Page 18: Flexible Optimization: Nurse Scheduling with Constraint Programming … · 2019-10-16 · working rules as weighted automata [Menana09] automated modeling tool in ChocoETP 1 model

�nite automata�exible tool #1

a

p

la

o o

a aaa

b bbb

b

pl

b

o

ao

l ll

Flexible optimization Flexible Tools �nite automata 7 / 34

Page 19: Flexible Optimization: Nurse Scheduling with Constraint Programming … · 2019-10-16 · working rules as weighted automata [Menana09] automated modeling tool in ChocoETP 1 model

formal languages

alphabet: Σ a �nite non-empty set of symbols{a, b}

word/string: w ∈ Σn a �nite sequence of symbolsaaabb

language: L ⊆ Σ∗ a set of words{ab, ba, aab, bba, aaab, bbba, . . .}

classes and recognizers: regular, context-free, etc.

operations: union, concatenation, closure, etc.

properties: emptiness, membership, universality, etc.

Flexible optimization Flexible Tools �nite automata 7 / 34

Page 20: Flexible Optimization: Nurse Scheduling with Constraint Programming … · 2019-10-16 · working rules as weighted automata [Menana09] automated modeling tool in ChocoETP 1 model

formal languages

alphabet: Σ a �nite non-empty set of symbols{a, b}

word/string: w ∈ Σn a �nite sequence of symbolsaaabb

language: L ⊆ Σ∗ a set of words{ab, ba, aab, bba, aaab, bbba, . . .}

classes and recognizers: regular, context-free, etc.

operations: union, concatenation, closure, etc.

properties: emptiness, membership, universality, etc.

Flexible optimization Flexible Tools �nite automata 7 / 34

Page 21: Flexible Optimization: Nurse Scheduling with Constraint Programming … · 2019-10-16 · working rules as weighted automata [Menana09] automated modeling tool in ChocoETP 1 model

formal languages

alphabet: Σ a �nite non-empty set of symbols{a, b}

word/string: w ∈ Σn a �nite sequence of symbolsaaabb

language: L ⊆ Σ∗ a set of words{ab, ba, aab, bba, aaab, bbba, . . .}

classes and recognizers: regular, context-free, etc.

operations: union, concatenation, closure, etc.

properties: emptiness, membership, universality, etc.

Flexible optimization Flexible Tools �nite automata 7 / 34

Page 22: Flexible Optimization: Nurse Scheduling with Constraint Programming … · 2019-10-16 · working rules as weighted automata [Menana09] automated modeling tool in ChocoETP 1 model

formal languages

alphabet: Σ a �nite non-empty set of symbols{a, b}

word/string: w ∈ Σn a �nite sequence of symbolsaaabb

language: L ⊆ Σ∗ a set of words{ab, ba, aab, bba, aaab, bbba, . . .}

classes and recognizers: regular, context-free, etc.

operations: union, concatenation, closure, etc.

properties: emptiness, membership, universality, etc.

Flexible optimization Flexible Tools �nite automata 7 / 34

Page 23: Flexible Optimization: Nurse Scheduling with Constraint Programming … · 2019-10-16 · working rules as weighted automata [Menana09] automated modeling tool in ChocoETP 1 model

generators and recognizers

L = {ab, ba, aab, bba, aaab, bbba, . . .}

1 in�nite regular language, 3 �nite representations:

�nite automaton regular expression

(a+b)|(b+a)

formal grammar

S → aA|bBA → aA|bB → bB|a

Flexible optimization Flexible Tools �nite automata 8 / 34

Page 24: Flexible Optimization: Nurse Scheduling with Constraint Programming … · 2019-10-16 · working rules as weighted automata [Menana09] automated modeling tool in ChocoETP 1 model

what purpose ?

implicit and concise (�nite) representation

human-readable and machine-processable

theories and algorithms for operations and decision properties

models of discrete systems like languages, protocols

models of working rules

alphabet: set of activities A = {M,E,N,R}word: w ∈ AT schedule of an employeelanguage: constrained set of schedules

Flexible optimization Flexible Tools �nite automata 9 / 34

Page 25: Flexible Optimization: Nurse Scheduling with Constraint Programming … · 2019-10-16 · working rules as weighted automata [Menana09] automated modeling tool in ChocoETP 1 model

what purpose ?

implicit and concise (�nite) representation

human-readable and machine-processable

theories and algorithms for operations and decision properties

models of discrete systems like languages, protocols

models of working rules

alphabet: set of activities A = {M,E,N,R}word: w ∈ AT schedule of an employeelanguage: constrained set of schedules

Flexible optimization Flexible Tools �nite automata 9 / 34

Page 26: Flexible Optimization: Nurse Scheduling with Constraint Programming … · 2019-10-16 · working rules as weighted automata [Menana09] automated modeling tool in ChocoETP 1 model

working rules as a language

rule R as a regexp ER [Pesant04]

no more than 2 consecutive nights: ER = ¬(NNN)

feasible schedules as a regular language LR ∩AT with

LR =⋂R∈RL(ER) = L(¬

⋃R∈R¬ER)

extension to context-free grammars [Sellman06, Quimper06, Côté10]

L(S → ε, S → aSb) = {anbn | n ∈ N}

extension to weighted automata [Demassey05, Menana09]

for counting, optimization and soft rules

Flexible optimization Flexible Tools �nite automata 10 / 34

Page 27: Flexible Optimization: Nurse Scheduling with Constraint Programming … · 2019-10-16 · working rules as weighted automata [Menana09] automated modeling tool in ChocoETP 1 model

working rules as a language

rule R as a regexp ER [Pesant04]

no more than 2 consecutive nights: ER = ¬(NNN)

feasible schedules as a regular language LR ∩AT with

LR =⋂R∈RL(ER) = L(¬

⋃R∈R¬ER)

extension to context-free grammars [Sellman06, Quimper06, Côté10]

L(S → ε, S → aSb) = {anbn | n ∈ N}

extension to weighted automata [Demassey05, Menana09]

for counting, optimization and soft rules

Flexible optimization Flexible Tools �nite automata 10 / 34

Page 28: Flexible Optimization: Nurse Scheduling with Constraint Programming … · 2019-10-16 · working rules as weighted automata [Menana09] automated modeling tool in ChocoETP 1 model

working rules as a language

rule R as a regexp ER [Pesant04]

no more than 2 consecutive nights: ER = ¬(NNN)

feasible schedules as a regular language LR ∩AT with

LR =⋂R∈RL(ER) = L(¬

⋃R∈R¬ER)

extension to context-free grammars [Sellman06, Quimper06, Côté10]

L(S → ε, S → aSb) = {anbn | n ∈ N}

extension to weighted automata [Demassey05, Menana09]

for counting, optimization and soft rules

Flexible optimization Flexible Tools �nite automata 10 / 34

Page 29: Flexible Optimization: Nurse Scheduling with Constraint Programming … · 2019-10-16 · working rules as weighted automata [Menana09] automated modeling tool in ChocoETP 1 model

working rules as a language

rule R as a regexp ER [Pesant04]

no more than 2 consecutive nights: ER = ¬(NNN)

feasible schedules as a regular language LR ∩AT with

LR =⋂R∈RL(ER) = L(¬

⋃R∈R¬ER)

extension to context-free grammars [Sellman06, Quimper06, Côté10]

L(S → ε, S → aSb) = {anbn | n ∈ N}

extension to weighted automata [Demassey05, Menana09]

for counting, optimization and soft rules

Flexible optimization Flexible Tools �nite automata 10 / 34

Page 30: Flexible Optimization: Nurse Scheduling with Constraint Programming … · 2019-10-16 · working rules as weighted automata [Menana09] automated modeling tool in ChocoETP 1 model

working rules as a language

rule R as a regexp ER [Pesant04]

no more than 2 consecutive nights: ER = ¬(NNN)

feasible schedules as a regular language LR ∩AT with

LR =⋂R∈RL(ER) = L(¬

⋃R∈R¬ER)

extension to context-free grammars [Sellman06, Quimper06, Côté10]

L(S → ε, S → aSb) = {anbn | n ∈ N}

extension to weighted automata [Demassey05, Menana09]

for counting, optimization and soft rules

Flexible optimization Flexible Tools �nite automata 10 / 34

Page 31: Flexible Optimization: Nurse Scheduling with Constraint Programming … · 2019-10-16 · working rules as weighted automata [Menana09] automated modeling tool in ChocoETP 1 model

weighted automata

transition costs, path cost, and bounds

add a vector of costs (index dependent) to each transition

the cost of the word is the sum of the transition costs

restrict the language to words with costs within given bounds

Flexible optimization Flexible Tools �nite automata 11 / 34

Page 32: Flexible Optimization: Nurse Scheduling with Constraint Programming … · 2019-10-16 · working rules as weighted automata [Menana09] automated modeling tool in ChocoETP 1 model

working rules as weighted automata [Menana09]

automated modeling tool in ChocoETP

1 model each rule including penalties as a language⇒ regex or weighted automaton

2 compute the language intersection⇒ multi-weighted automaton

include parsers for di�erent benchmark formats:

ASAP3 (XML) www.staffrostersolutions.com

NRP10 (XML) www.kuleuven-kortrijk.be

NSPLib (csv) www.projectmanagement.ugent.be

ETPShoe (csv+txt) [Demassey05]

Flexible optimization Flexible Tools �nite automata 12 / 34

Page 33: Flexible Optimization: Nurse Scheduling with Constraint Programming … · 2019-10-16 · working rules as weighted automata [Menana09] automated modeling tool in ChocoETP 1 model

working rules as weighted automata [Menana09]

automated modeling tool in ChocoETP

1 model each rule including penalties as a language⇒ regex or weighted automaton

2 compute the language intersection⇒ multi-weighted automaton

include parsers for di�erent benchmark formats:

ASAP3 (XML) www.staffrostersolutions.com

NRP10 (XML) www.kuleuven-kortrijk.be

NSPLib (csv) www.projectmanagement.ugent.be

ETPShoe (csv+txt) [Demassey05]

Flexible optimization Flexible Tools �nite automata 12 / 34

Page 34: Flexible Optimization: Nurse Scheduling with Constraint Programming … · 2019-10-16 · working rules as weighted automata [Menana09] automated modeling tool in ChocoETP 1 model

modeling rules (ex: activity count)

at least one rest on week # 2

hard rule, 2 alternatives:

a regexp A{7}((¬R)∗RA∗)A{14}or A∗ with a counter Z ∈ [1, 28] and ctR = 1 i� t ∈ [8, 14]

soft rule: (ex: �xed penalty of 10 if no rest on week 2)A∗ with a counter Z ∈ [0, 28] with ctR = 1 i� t ∈ [8, 14]and an external cost Y ∈ [0, 10] with Y = 10 ⇐⇒ Z < 1

Flexible optimization Flexible Tools �nite automata 13 / 34

Page 35: Flexible Optimization: Nurse Scheduling with Constraint Programming … · 2019-10-16 · working rules as weighted automata [Menana09] automated modeling tool in ChocoETP 1 model

modeling rules (ex: activity count)

at least one rest on week # 2

hard rule, 2 alternatives:

a regexp A{7}((¬R)∗RA∗)A{14}or A∗ with a counter Z ∈ [1, 28] and ctR = 1 i� t ∈ [8, 14]

soft rule: (ex: �xed penalty of 10 if no rest on week 2)A∗ with a counter Z ∈ [0, 28] with ctR = 1 i� t ∈ [8, 14]and an external cost Y ∈ [0, 10] with Y = 10 ⇐⇒ Z < 1

Flexible optimization Flexible Tools �nite automata 13 / 34

Page 36: Flexible Optimization: Nurse Scheduling with Constraint Programming … · 2019-10-16 · working rules as weighted automata [Menana09] automated modeling tool in ChocoETP 1 model

modeling rules (ex: sliding stretch)

between 3 and 5 consecutive night shifts

hard rule:

soft rule: (hard bounds[0, 7] and quadratic penalty)

with a cost/counter Y = Z ∈ [0,+∞]

Flexible optimization Flexible Tools �nite automata 14 / 34

Page 37: Flexible Optimization: Nurse Scheduling with Constraint Programming … · 2019-10-16 · working rules as weighted automata [Menana09] automated modeling tool in ChocoETP 1 model

modeling rules (ex: sliding stretch)

between 3 and 5 consecutive night shifts

hard rule:

soft rule: (hard bounds[0, 7] and quadratic penalty)

with a cost/counter Y = Z ∈ [0,+∞]

Flexible optimization Flexible Tools �nite automata 14 / 34

Page 38: Flexible Optimization: Nurse Scheduling with Constraint Programming … · 2019-10-16 · working rules as weighted automata [Menana09] automated modeling tool in ChocoETP 1 model

modeling rules (ex: forbid pattern)

at least one rest after 2 consecutive night shifts

hard rule:

¬(A∗ (NN(¬R))A∗)

soft rule: (ex: linear penalty)

1 build the DFA corresponding to (A∗ (NN(¬R)β∗)∗)∗2 get Qβ the set of states q with outgoing transition β3 add a cost c = 1 on every ingoing transition of Qβ4 associate a cost/counter Y = Z ∈ [0,+∞]

Flexible optimization Flexible Tools �nite automata 15 / 34

Page 39: Flexible Optimization: Nurse Scheduling with Constraint Programming … · 2019-10-16 · working rules as weighted automata [Menana09] automated modeling tool in ChocoETP 1 model

modeling rules (ex: forbid pattern)

at least one rest after 2 consecutive night shifts

hard rule:

¬(A∗ (NN(¬R))A∗)soft rule: (ex: linear penalty)

1 build the DFA corresponding to (A∗ (NN(¬R)β∗)∗)∗2 get Qβ the set of states q with outgoing transition β3 add a cost c = 1 on every ingoing transition of Qβ4 associate a cost/counter Y = Z ∈ [0,+∞]

Flexible optimization Flexible Tools �nite automata 15 / 34

Page 40: Flexible Optimization: Nurse Scheduling with Constraint Programming … · 2019-10-16 · working rules as weighted automata [Menana09] automated modeling tool in ChocoETP 1 model

aggregating rules

satisfying a conjunction of rules

R1 ∧R2 holds i�X ∈ L(Π1) ∩ L(Π2) ∧ Z1 =

∑t c

1tXt

∧ Z2 =∑

t c2tXt

WFA intersection in the tropical semiring of higher dimension:(Π1, [c1, 0]) ∩ (Π2, [0, c2]) ∈WFA(Σ,Rn1+n2 )

(our) intersection algorithm in WFA(Σ,Rn)

convert WFA(Σ,Rn) to FA(Σ× Rn) and naive intersectionmodi�ed: ((q1, q2), (σ1, σ2), (q′1, q

′2)) ∈ ∆∩ ⇐⇒

(q1, σ1, q′1) ∈ ∆1 ∧ (q2, σ2, q′2) ∈ ∆2 ∧ symbol(σ1) = symbol(σ2)

Flexible optimization Flexible Tools �nite automata 16 / 34

Page 41: Flexible Optimization: Nurse Scheduling with Constraint Programming … · 2019-10-16 · working rules as weighted automata [Menana09] automated modeling tool in ChocoETP 1 model

aggregating rules

satisfying a conjunction of rules

R1 ∧R2 holds i�X ∈ L(Π1) ∩ L(Π2) ∧ Z1 =

∑t c

1tXt

∧ Z2 =∑

t c2tXt

WFA intersection in the tropical semiring of higher dimension:(Π1, [c1, 0]) ∩ (Π2, [0, c2]) ∈WFA(Σ,Rn1+n2 )

(our) intersection algorithm in WFA(Σ,Rn)

convert WFA(Σ,Rn) to FA(Σ× Rn) and naive intersectionmodi�ed: ((q1, q2), (σ1, σ2), (q′1, q

′2)) ∈ ∆∩ ⇐⇒

(q1, σ1, q′1) ∈ ∆1 ∧ (q2, σ2, q′2) ∈ ∆2 ∧ symbol(σ1) = symbol(σ2)

Flexible optimization Flexible Tools �nite automata 16 / 34

Page 42: Flexible Optimization: Nurse Scheduling with Constraint Programming … · 2019-10-16 · working rules as weighted automata [Menana09] automated modeling tool in ChocoETP 1 model

aggregating rules

satisfying a conjunction of rules

R1 ∧R2 holds i�X ∈ L(Π1) ∩ L(Π2) ∧ Z1 =

∑t c

1tXt

∧ Z2 =∑

t c2tXt

WFA intersection in the tropical semiring of higher dimension:(Π1, [c1, 0]) ∩ (Π2, [0, c2]) ∈WFA(Σ,Rn1+n2 )

(our) intersection algorithm in WFA(Σ,Rn)

convert WFA(Σ,Rn) to FA(Σ× Rn) and naive intersectionmodi�ed: ((q1, q2), (σ1, σ2), (q′1, q

′2)) ∈ ∆∩ ⇐⇒

(q1, σ1, q′1) ∈ ∆1 ∧ (q2, σ2, q′2) ∈ ∆2 ∧ symbol(σ1) = symbol(σ2)

Flexible optimization Flexible Tools �nite automata 16 / 34

Page 43: Flexible Optimization: Nurse Scheduling with Constraint Programming … · 2019-10-16 · working rules as weighted automata [Menana09] automated modeling tool in ChocoETP 1 model

aggregating rules

satisfying a conjunction of rules

R1 ∧R2 holds i�X ∈ L(Π1) ∩ L(Π2) ∧ Z1 =

∑t c

1tXt

∧ Z2 =∑

t c2tXt

WFA intersection in the tropical semiring of higher dimension:(Π1, [c1, 0]) ∩ (Π2, [0, c2]) ∈WFA(Σ,Rn1+n2 )

(our) intersection algorithm in WFA(Σ,Rn)

convert WFA(Σ,Rn) to FA(Σ× Rn) and naive intersectionmodi�ed: ((q1, q2), (σ1, σ2), (q′1, q

′2)) ∈ ∆∩ ⇐⇒

(q1, σ1, q′1) ∈ ∆1 ∧ (q2, σ2, q′2) ∈ ∆2 ∧ symbol(σ1) = symbol(σ2)

Flexible optimization Flexible Tools �nite automata 16 / 34

Page 44: Flexible Optimization: Nurse Scheduling with Constraint Programming … · 2019-10-16 · working rules as weighted automata [Menana09] automated modeling tool in ChocoETP 1 model

global constraints�exible tool #2

Flexible optimization Flexible Tools global constraints 17 / 34

Page 45: Flexible Optimization: Nurse Scheduling with Constraint Programming … · 2019-10-16 · working rules as weighted automata [Menana09] automated modeling tool in ChocoETP 1 model

constraint satisfaction problem (CSP)

a set of variables X1, X2, . . . , Xn

on �nite (discrete) domains D1, D2, . . . , Dn

related by constraints C1, . . . , Cm

A solution:

(x1, . . . , xn) ∈ D1 × · · · ×Dn s.t.Cj(x1, . . . , xn) holds ∀j = 1, . . . ,m

Flexible optimization Flexible Tools global constraints 17 / 34

Page 46: Flexible Optimization: Nurse Scheduling with Constraint Programming … · 2019-10-16 · working rules as weighted automata [Menana09] automated modeling tool in ChocoETP 1 model

constraint satisfaction problem (CSP)

a set of variables X1, X2, . . . , Xn

on �nite (discrete) domains D1, D2, . . . , Dn

related by constraints C1, . . . , Cm

A solution:

(x1, . . . , xn) ∈ D1 × · · · ×Dn s.t.Cj(x1, . . . , xn) holds ∀j = 1, . . . ,m

Flexible optimization Flexible Tools global constraints 17 / 34

Page 47: Flexible Optimization: Nurse Scheduling with Constraint Programming … · 2019-10-16 · working rules as weighted automata [Menana09] automated modeling tool in ChocoETP 1 model

sudoku as a CSP

X0, X1, . . . , X80

Di = [0, 9] ∀i ∈ [0, 80]

X0 = 2, X1 = 6, . . .

Xi 6= Xj ∀(i, j) ∈ LXi 6= Xj ∀(i, j) ∈ CXi 6= Xj ∀(i, j) ∈ S

credit: N. Jussien

arc consistency of X0 6= X7: D0 = {2} =⇒ �lter 2 6∈ D7

Flexible optimization Flexible Tools global constraints 18 / 34

Page 48: Flexible Optimization: Nurse Scheduling with Constraint Programming … · 2019-10-16 · working rules as weighted automata [Menana09] automated modeling tool in ChocoETP 1 model

sudoku as a CSP

X0, X1, . . . , X80

Di = [0, 9] ∀i ∈ [0, 80]

X0 = 2, X1 = 6, . . .

Xi 6= Xj ∀(i, j) ∈ LXi 6= Xj ∀(i, j) ∈ CXi 6= Xj ∀(i, j) ∈ S

arc consistency of X0 6= X7: D0 = {2} =⇒ �lter 2 6∈ D7

Flexible optimization Flexible Tools global constraints 18 / 34

Page 49: Flexible Optimization: Nurse Scheduling with Constraint Programming … · 2019-10-16 · working rules as weighted automata [Menana09] automated modeling tool in ChocoETP 1 model

backtracking algorithm aka �branch-and-propagate�

1 propagation:for each constraint,

infer inconsistent value assignmentsapply domain reduction

until �x point

2 tree search:if domains are singleton, then solution foundif no domain is empty, then assign a free variable to a valueotherwise, backtrack

Flexible optimization Flexible Tools global constraints 19 / 34

Page 50: Flexible Optimization: Nurse Scheduling with Constraint Programming … · 2019-10-16 · working rules as weighted automata [Menana09] automated modeling tool in ChocoETP 1 model

sudoku as a CSP with global constraints

X0, X1, . . . , X80

Di = [0, 9] ∀i ∈ [0, 80]

X0 = 2, X1 = 6, . . .

alldifferent(Xi)i∈l ∀l ∈ Lalldifferent(Xi)i∈c ∀c ∈ Calldifferent(Xi)i∈s ∀s ∈ S

global AC: X43 6= 7alldifferent ≈ bipartitematching O(m

√n) [Régin 94]

Flexible optimization Flexible Tools global constraints 20 / 34

Page 51: Flexible Optimization: Nurse Scheduling with Constraint Programming … · 2019-10-16 · working rules as weighted automata [Menana09] automated modeling tool in ChocoETP 1 model

sudoku as a CSP with global constraints

X0, X1, . . . , X80

Di = [0, 9] ∀i ∈ [0, 80]

X0 = 2, X1 = 6, . . .

alldifferent(Xi)i∈l ∀l ∈ Lalldifferent(Xi)i∈c ∀c ∈ Calldifferent(Xi)i∈s ∀s ∈ S

global AC: X43 6= 7

alldifferent ≈ bipartitematching O(m

√n) [Régin 94]

Flexible optimization Flexible Tools global constraints 20 / 34

Page 52: Flexible Optimization: Nurse Scheduling with Constraint Programming … · 2019-10-16 · working rules as weighted automata [Menana09] automated modeling tool in ChocoETP 1 model

sudoku as a CSP with global constraints

X0, X1, . . . , X80

Di = [0, 9] ∀i ∈ [0, 80]

X0 = 2, X1 = 6, . . .

alldifferent(Xi)i∈l ∀l ∈ Lalldifferent(Xi)i∈c ∀c ∈ Calldifferent(Xi)i∈s ∀s ∈ S

global AC: X43 6= 7alldifferent ≈ bipartitematching O(m

√n) [Régin 94]

Flexible optimization Flexible Tools global constraints 20 / 34

Page 53: Flexible Optimization: Nurse Scheduling with Constraint Programming … · 2019-10-16 · working rules as weighted automata [Menana09] automated modeling tool in ChocoETP 1 model

examples of value global constraints

alldifferent((X1, X2, ..., Xn)) [Régin 94]

global-cardinality((X1, X2, ..., Xn), (lj)j , (uj)j) [Régin 96]

among(Z, (X1, X2, ..., Xn),V) [Bessière et al. 05]

soft-alldifferent(Z, (X1, X2, ..., Xn)) [Petit et al. 01]

mincost-alldifferent(Z, (X1, X2, ..., Xn), (cij)i,j) [Sellmann 02]

see also the Global Constraint Catalog http://sofdem.github.io/gccat/

from consistency to �ltering

robustness and incrementality

level of consistency vs. computation time

Flexible optimization Flexible Tools global constraints 21 / 34

Page 54: Flexible Optimization: Nurse Scheduling with Constraint Programming … · 2019-10-16 · working rules as weighted automata [Menana09] automated modeling tool in ChocoETP 1 model

examples of value global constraints

alldifferent((X1, X2, ..., Xn)) [Régin 94]

global-cardinality((X1, X2, ..., Xn), (lj)j , (uj)j) [Régin 96]

among(Z, (X1, X2, ..., Xn),V) [Bessière et al. 05]

soft-alldifferent(Z, (X1, X2, ..., Xn)) [Petit et al. 01]

mincost-alldifferent(Z, (X1, X2, ..., Xn), (cij)i,j) [Sellmann 02]

see also the Global Constraint Catalog http://sofdem.github.io/gccat/

from consistency to �ltering

robustness and incrementality

level of consistency vs. computation time

Flexible optimization Flexible Tools global constraints 21 / 34

Page 55: Flexible Optimization: Nurse Scheduling with Constraint Programming … · 2019-10-16 · working rules as weighted automata [Menana09] automated modeling tool in ChocoETP 1 model

a CSP model for NSP

R

C

Flexible optimization Flexible Tools global constraints 22 / 34

Page 56: Flexible Optimization: Nurse Scheduling with Constraint Programming … · 2019-10-16 · working rules as weighted automata [Menana09] automated modeling tool in ChocoETP 1 model

a CSP model for NSP

R

C

global_cardinality (gcc)

Flexible optimization Flexible Tools global constraints 22 / 34

Page 57: Flexible Optimization: Nurse Scheduling with Constraint Programming … · 2019-10-16 · working rules as weighted automata [Menana09] automated modeling tool in ChocoETP 1 model

a CSP model for NSP

R

C

global_cardinality (gcc)

a

p

la

o o

a aaa

b bbb

b

pl

b

o

ao

l ll

Flexible optimization Flexible Tools global constraints 22 / 34

Page 58: Flexible Optimization: Nurse Scheduling with Constraint Programming … · 2019-10-16 · working rules as weighted automata [Menana09] automated modeling tool in ChocoETP 1 model

language global constraints�exible solution #1

Flexible optimization Flexible Solutionsmulticost-regular = automata+ global constraints 23 / 34

Page 59: Flexible Optimization: Nurse Scheduling with Constraint Programming … · 2019-10-16 · working rules as weighted automata [Menana09] automated modeling tool in ChocoETP 1 model

CSPs as languages

CSP solution (x1, x2, . . . , xn) = word x1x2 . . . xn ∈ D∗

CSP model = language representation

(un)satis�ability = emptiness

language global constraint family

language((X1, X2, ..., Xn),L) ≡ X1X2 . . . Xn ∈ L

regular((X1, X2, ..., Xn),Π) [Pesant 04]

cost-regular(Z, (X1, X2, ..., Xn),Π, c) [Demassey 05]

context-free((X1, X2, ..., Xn), G) [Sellman 06, Quimper 06]

multicost-regular((Z1, Z2, ..., Zp), (X1, X2, ..., Xn),Π, c) [Menana 09]

Flexible optimization Flexible Solutionsmulticost-regular = automata+ global constraints 23 / 34

Page 60: Flexible Optimization: Nurse Scheduling with Constraint Programming … · 2019-10-16 · working rules as weighted automata [Menana09] automated modeling tool in ChocoETP 1 model

CSPs as languages

CSP solution (x1, x2, . . . , xn) = word x1x2 . . . xn ∈ D∗

CSP model = language representation

(un)satis�ability = emptiness

language global constraint family

language((X1, X2, ..., Xn),L) ≡ X1X2 . . . Xn ∈ L

regular((X1, X2, ..., Xn),Π) [Pesant 04]

cost-regular(Z, (X1, X2, ..., Xn),Π, c) [Demassey 05]

context-free((X1, X2, ..., Xn), G) [Sellman 06, Quimper 06]

multicost-regular((Z1, Z2, ..., Zp), (X1, X2, ..., Xn),Π, c) [Menana 09]

Flexible optimization Flexible Solutionsmulticost-regular = automata+ global constraints 23 / 34

Page 61: Flexible Optimization: Nurse Scheduling with Constraint Programming … · 2019-10-16 · working rules as weighted automata [Menana09] automated modeling tool in ChocoETP 1 model

CSPs as languages

CSP solution (x1, x2, . . . , xn) = word x1x2 . . . xn ∈ D∗

CSP model = language representation

(un)satis�ability = emptiness

language global constraint family

language((X1, X2, ..., Xn),L) ≡ X1X2 . . . Xn ∈ L

regular((X1, X2, ..., Xn),Π) [Pesant 04]

cost-regular(Z, (X1, X2, ..., Xn),Π, c) [Demassey 05]

context-free((X1, X2, ..., Xn), G) [Sellman 06, Quimper 06]

multicost-regular((Z1, Z2, ..., Zp), (X1, X2, ..., Xn),Π, c) [Menana 09]

Flexible optimization Flexible Solutionsmulticost-regular = automata+ global constraints 23 / 34

Page 62: Flexible Optimization: Nurse Scheduling with Constraint Programming … · 2019-10-16 · working rules as weighted automata [Menana09] automated modeling tool in ChocoETP 1 model

language (< X1, . . . , Xn >,L)

the satis�ability problem

is L ∩ (D1×· · ·×Dn) empty ?

the consistency problem for v ∈ Di

is L ∩ (D1×· · ·×Di−1×{v}×Di+1×· · ·×Dn) empty ?

Flexible optimization Flexible Solutionsmulticost-regular = automata+ global constraints 24 / 34

Page 63: Flexible Optimization: Nurse Scheduling with Constraint Programming … · 2019-10-16 · working rules as weighted automata [Menana09] automated modeling tool in ChocoETP 1 model

regular (< X1, . . . , Xn >,Π = (Q,D,∆, q0, F ))

graph connexity [Pesant03]

L(Π) ∩ (D1×· · ·×Dn)

state-decomposition [Beldiceanu04]{Si ∈ Q, i = 1..n

(Si, Xi, Si+1) ∈ ∆, i = 1..n

O(|∆n|) with |∆n| � n|∆|

Flexible optimization Flexible Solutionsmulticost-regular = automata+ global constraints 25 / 34

Page 64: Flexible Optimization: Nurse Scheduling with Constraint Programming … · 2019-10-16 · working rules as weighted automata [Menana09] automated modeling tool in ChocoETP 1 model

regular (< X1, . . . , Xn >,Π = (Q,D,∆, q0, F ))

graph connexity [Pesant03]

L(Π) ∩ (D1×· · ·×Dn)

state-decomposition [Beldiceanu04]{Si ∈ Q, i = 1..n

(Si, Xi, Si+1) ∈ ∆, i = 1..n

O(|∆n|) with |∆n| � n|∆|

Flexible optimization Flexible Solutionsmulticost-regular = automata+ global constraints 25 / 34

Page 65: Flexible Optimization: Nurse Scheduling with Constraint Programming … · 2019-10-16 · working rules as weighted automata [Menana09] automated modeling tool in ChocoETP 1 model

regular (< X1, . . . , Xn >,Π = (Q,D,∆, q0, F ))

graph connexity [Pesant03]

L(Π) ∩ (D1×· · ·×Dn)

state-decomposition [Beldiceanu04]{Si ∈ Q, i = 1..n

(Si, Xi, Si+1) ∈ ∆, i = 1..n

O(|∆n|) with |∆n| � n|∆|

Flexible optimization Flexible Solutionsmulticost-regular = automata+ global constraints 25 / 34

Page 66: Flexible Optimization: Nurse Scheduling with Constraint Programming … · 2019-10-16 · working rules as weighted automata [Menana09] automated modeling tool in ChocoETP 1 model

regular (< X1, . . . , Xn >,Π = (Q,D,∆, q0, F ))

graph connexity [Pesant03]

L(Π) ∩ (D1×· · ·×Dn)

state-decomposition [Beldiceanu04]{Si ∈ Q, i = 1..n

(Si, Xi, Si+1) ∈ ∆, i = 1..n

O(|∆n|) with |∆n| � n|∆|

Flexible optimization Flexible Solutionsmulticost-regular = automata+ global constraints 25 / 34

Page 67: Flexible Optimization: Nurse Scheduling with Constraint Programming … · 2019-10-16 · working rules as weighted automata [Menana09] automated modeling tool in ChocoETP 1 model

regular (< X1, . . . , Xn >,Π = (Q,D,∆, q0, F ))

graph connexity [Pesant03]

L(Π) ∩ (D1×· · ·×Dn)

state-decomposition [Beldiceanu04]{Si ∈ Q, i = 1..n

(Si, Xi, Si+1) ∈ ∆, i = 1..n

O(|∆n|) with |∆n| � n|∆|

Flexible optimization Flexible Solutionsmulticost-regular = automata+ global constraints 25 / 34

Page 68: Flexible Optimization: Nurse Scheduling with Constraint Programming … · 2019-10-16 · working rules as weighted automata [Menana09] automated modeling tool in ChocoETP 1 model

regular (< X1, . . . , Xn >,Π = (Q,D,∆, q0, F ))

graph connexity [Pesant03]

L(Π) ∩ (D1×· · ·×Dn)

state-decomposition [Beldiceanu04]{Si ∈ Q, i = 1..n

(Si, Xi, Si+1) ∈ ∆, i = 1..n

O(|∆n|) with |∆n| � n|∆|

Flexible optimization Flexible Solutionsmulticost-regular = automata+ global constraints 25 / 34

Page 69: Flexible Optimization: Nurse Scheduling with Constraint Programming … · 2019-10-16 · working rules as weighted automata [Menana09] automated modeling tool in ChocoETP 1 model

regular (< X1, . . . , Xn >,Π = (Q,D,∆, q0, F ))

graph connexity [Pesant03]

L(Π) ∩ (D1×· · ·×Dn)

state-decomposition [Beldiceanu04]{Si ∈ Q, i = 1..n

(Si, Xi, Si+1) ∈ ∆, i = 1..n

O(|∆n|) with |∆n| � n|∆|

Flexible optimization Flexible Solutionsmulticost-regular = automata+ global constraints 25 / 34

Page 70: Flexible Optimization: Nurse Scheduling with Constraint Programming … · 2019-10-16 · working rules as weighted automata [Menana09] automated modeling tool in ChocoETP 1 model

regular (< X1, . . . , Xn >,Π = (Q,D,∆, q0, F ))

graph connexity [Pesant03]

L(Π) ∩ (D1×· · ·×Dn)

state-decomposition [Beldiceanu04]{Si ∈ Q, i = 1..n

(Si, Xi, Si+1) ∈ ∆, i = 1..n

O(|∆n|) with |∆n| � n|∆|

Flexible optimization Flexible Solutionsmulticost-regular = automata+ global constraints 25 / 34

Page 71: Flexible Optimization: Nurse Scheduling with Constraint Programming … · 2019-10-16 · working rules as weighted automata [Menana09] automated modeling tool in ChocoETP 1 model

optimization variants

cost-regular(Z,< X1, . . . , Xn >,Π, c)

≡ X1X2 . . . Xn ∈ L(Π) ∧∑

i ciXi = Z

shortest/longest path problem

O(|∆n|) bound consistency on Z

Ilog Solver, Choco [Demassey, Pesant & Rousseau 05]

multicost-regular(< Z1, . . . , Zp >,< X1, . . . , Xn >,Π, < c1, . . . , cp >)

≡ X1X2 . . . Xn ∈ L(Π) ∧∑

i ckiXi

= Zk(∀k)

resource-constrained SPP/LPP (NP-hard)

lagrangian relaxation O(K|∆n|)Choco [Menana & Demassey 09]

Flexible optimization Flexible Solutionsmulticost-regular = automata+ global constraints 26 / 34

Page 72: Flexible Optimization: Nurse Scheduling with Constraint Programming … · 2019-10-16 · working rules as weighted automata [Menana09] automated modeling tool in ChocoETP 1 model

optimization variants

cost-regular(Z,< X1, . . . , Xn >,Π, c)

≡ X1X2 . . . Xn ∈ L(Π) ∧∑

i ciXi = Z

shortest/longest path problem

O(|∆n|) bound consistency on Z

Ilog Solver, Choco [Demassey, Pesant & Rousseau 05]

multicost-regular(< Z1, . . . , Zp >,< X1, . . . , Xn >,Π, < c1, . . . , cp >)

≡ X1X2 . . . Xn ∈ L(Π) ∧∑

i ckiXi

= Zk(∀k)

resource-constrained SPP/LPP (NP-hard)

lagrangian relaxation O(K|∆n|)Choco [Menana & Demassey 09]

Flexible optimization Flexible Solutionsmulticost-regular = automata+ global constraints 26 / 34

Page 73: Flexible Optimization: Nurse Scheduling with Constraint Programming … · 2019-10-16 · working rules as weighted automata [Menana09] automated modeling tool in ChocoETP 1 model

bene�t of aggregation (1)

∑individual aggregate unfolded

full-time#states 5,782 682 230#transitions 40,402 4,768 400

part-time#states 4,401 385 421#transitions 30,729 2,689 681

Size of the automata for the ASAP/GPost hard instancefor full-time and part-time contracts, n = 28

Flexible optimization Flexible Solutionsmulticost-regular = automata+ global constraints 27 / 34

Page 74: Flexible Optimization: Nurse Scheduling with Constraint Programming … · 2019-10-16 · working rules as weighted automata [Menana09] automated modeling tool in ChocoETP 1 model

bene�t of aggregation (2)

a

p

la

o o

a aaa

b bbb

b

pl

b

o

ao

l ll

+ assignment costs to minimize+ cardinality (l, p, o) constraints1 employee, 96 timeslotsnumber of working activities (a, b, ...) between 1 and 5010 instances eachdefault backtracking of Choco in 10 minutes

multicost-regular∧

cost-regular cost-regular ∧ gcc

|A| proof best #nodes proof best #nodes proof best #nodes1 0.0 0.0 41 1.2 1.0 3654 0.3 0.2 2252 0.1 0.1 68 2.1 0.9 1563 0.6 0.3 3934 0.2 0.1 67 13.9 8.8 6401 2.9 2.3 11998 0.3 0.2 52 101.7 49.8 19637 17.9 13.2 359710 0.4 0.4 63 297.2 167.8 44530 50.0 47.7 761515 0.8 0.7 63 50% unsolved 58.1 47.1 623320 1.2 1.0 64 90% unsolved 58.1 44.0 457730 1.8 1.5 62 90% unsolved 20% unsolved50 5.0 4.8 65 100% unsolved 60% unsolved

best = times (s) to �nd an optimum, proof = time (s) to prove optimality

Flexible optimization Flexible Solutionsmulticost-regular = automata+ global constraints 28 / 34

Page 75: Flexible Optimization: Nurse Scheduling with Constraint Programming … · 2019-10-16 · working rules as weighted automata [Menana09] automated modeling tool in ChocoETP 1 model

bene�t of aggregation (2)

a

p

la

o o

a aaa

b bbb

b

pl

b

o

ao

l ll

+ assignment costs to minimize+ cardinality (l, p, o) constraints1 employee, 96 timeslotsnumber of working activities (a, b, ...) between 1 and 5010 instances eachdefault backtracking of Choco in 10 minutes

multicost-regular∧

cost-regular cost-regular ∧ gcc

|A| proof best #nodes proof best #nodes proof best #nodes1 0.0 0.0 41 1.2 1.0 3654 0.3 0.2 2252 0.1 0.1 68 2.1 0.9 1563 0.6 0.3 3934 0.2 0.1 67 13.9 8.8 6401 2.9 2.3 11998 0.3 0.2 52 101.7 49.8 19637 17.9 13.2 359710 0.4 0.4 63 297.2 167.8 44530 50.0 47.7 761515 0.8 0.7 63 50% unsolved 58.1 47.1 623320 1.2 1.0 64 90% unsolved 58.1 44.0 457730 1.8 1.5 62 90% unsolved 20% unsolved50 5.0 4.8 65 100% unsolved 60% unsolved

best = times (s) to �nd an optimum, proof = time (s) to prove optimality

Flexible optimization Flexible Solutionsmulticost-regular = automata+ global constraints 28 / 34

Page 76: Flexible Optimization: Nurse Scheduling with Constraint Programming … · 2019-10-16 · working rules as weighted automata [Menana09] automated modeling tool in ChocoETP 1 model

ChocoETP = DFA + CP + LNS�exible solution for NSP

Flexible optimization Flexible SolutionsChocoETP = automata + CP+ local search 29 / 34

Page 77: Flexible Optimization: Nurse Scheduling with Constraint Programming … · 2019-10-16 · working rules as weighted automata [Menana09] automated modeling tool in ChocoETP 1 model

a chief nurse-friendly solution ?

1 high-level language to express rules

2 automated tool to model rules

3 automated tool to agregate rules

4 automated tool to solve rules

5 automated tool to minimize penalties → CP + LNS

ChocoETP

CP-based Large Neighborhood Search solver

pluggable parsers

based on Choco and dk.brics Java libraries

https://github.com/sofdem/chocoETP

Flexible optimization Flexible SolutionsChocoETP = automata + CP+ local search 29 / 34

Page 78: Flexible Optimization: Nurse Scheduling with Constraint Programming … · 2019-10-16 · working rules as weighted automata [Menana09] automated modeling tool in ChocoETP 1 model

a chief nurse-friendly solution ?

1 high-level language to express rules

2 automated tool to model rules → WFA/regexp

3 automated tool to agregate rules → WFA intersection

4 automated tool to solve rules → multicost-regular

5 automated tool to minimize penalties → CP + LNS

ChocoETP

CP-based Large Neighborhood Search solver

pluggable parsers

based on Choco and dk.brics Java libraries

https://github.com/sofdem/chocoETP

Flexible optimization Flexible SolutionsChocoETP = automata + CP+ local search 29 / 34

Page 79: Flexible Optimization: Nurse Scheduling with Constraint Programming … · 2019-10-16 · working rules as weighted automata [Menana09] automated modeling tool in ChocoETP 1 model

a chief nurse-friendly solution ?

1 high-level language to express rules

2 automated tool to model rules → WFA/regexp

3 automated tool to agregate rules → WFA intersection

4 automated tool to solve rules → multicost-regular

5 automated tool to minimize penalties → CP + LNS

ChocoETP

CP-based Large Neighborhood Search solver

pluggable parsers

based on Choco and dk.brics Java libraries

https://github.com/sofdem/chocoETP

Flexible optimization Flexible SolutionsChocoETP = automata + CP+ local search 29 / 34

Page 80: Flexible Optimization: Nurse Scheduling with Constraint Programming … · 2019-10-16 · working rules as weighted automata [Menana09] automated modeling tool in ChocoETP 1 model

a chief nurse-friendly solution ?

1 high-level language to express rules

2 automated tool to model rules → WFA/regexp

3 automated tool to agregate rules → WFA intersection

4 automated tool to solve rules → multicost-regular

5 automated tool to minimize penalties → CP + LNS

ChocoETP

CP-based Large Neighborhood Search solver

pluggable parsers

based on Choco and dk.brics Java libraries

https://github.com/sofdem/chocoETP

Flexible optimization Flexible SolutionsChocoETP = automata + CP+ local search 29 / 34

Page 81: Flexible Optimization: Nurse Scheduling with Constraint Programming … · 2019-10-16 · working rules as weighted automata [Menana09] automated modeling tool in ChocoETP 1 model

�exibility and e�ectiveness

hard ASAP instances[Métivier 09] ChocoETP

|I × T | cpu cpu nodes bkAzaiez 13×28 233 6.3 4006 5574Sintef 24×21 - 1.4 165 53Millar-2S-1.1 8×12 1 0.5 29 0Millar-2S-1 8×12 1 0.3 25 0Ozkarahan 14×7 1 0.2 24 5

soft ASAP instances[Métivier 09] ChocoETP

Soft |I × T | opt penalty cpu penalty cpuGPost 8×28 5 8 234 5 75GPost-B 8×28 3 - - 3 3LLR 27×7 301 314 119 320 114Valouxis 16×28 20 160 3780 20 4879ORTEC01 16×31 270 - - 290 2920

Comparison with an ad-hoc LNS solver [Métivier09]

Flexible optimization Flexible SolutionsChocoETP = automata + CP+ local search 31 / 34

Page 82: Flexible Optimization: Nurse Scheduling with Constraint Programming … · 2019-10-16 · working rules as weighted automata [Menana09] automated modeling tool in ChocoETP 1 model

Conclusion

Flexible optimization Conclusion 32 / 34

Page 83: Flexible Optimization: Nurse Scheduling with Constraint Programming … · 2019-10-16 · working rules as weighted automata [Menana09] automated modeling tool in ChocoETP 1 model

�exible optimization

modular solutions for recurring problems with mutable constraints

key of �exibility: decomposed models

key of e�ectiveness: aggregated algorithms

=⇒ automated composition =⇒ constraint learning

tools for �exibility

automata and graphs

global constraints and propagation

decomposition methods in linear programming (e.g. [Demassey06])

linearization (e.g. [Côté13])

Flexible optimization Conclusion 32 / 34

Page 84: Flexible Optimization: Nurse Scheduling with Constraint Programming … · 2019-10-16 · working rules as weighted automata [Menana09] automated modeling tool in ChocoETP 1 model

�exible optimization

modular solutions for recurring problems with mutable constraints

key of �exibility: decomposed models

key of e�ectiveness: aggregated algorithms

=⇒ automated composition

=⇒ constraint learning

tools for �exibility

automata and graphs

global constraints and propagation

decomposition methods in linear programming (e.g. [Demassey06])

linearization (e.g. [Côté13])

Flexible optimization Conclusion 32 / 34

Page 85: Flexible Optimization: Nurse Scheduling with Constraint Programming … · 2019-10-16 · working rules as weighted automata [Menana09] automated modeling tool in ChocoETP 1 model

�exible optimization

modular solutions for recurring problems with mutable constraints

key of �exibility: decomposed models

key of e�ectiveness: aggregated algorithms

=⇒ automated composition =⇒ constraint learning

tools for �exibility

automata and graphs

global constraints and propagation

decomposition methods in linear programming (e.g. [Demassey06])

linearization (e.g. [Côté13])

Flexible optimization Conclusion 32 / 34

Page 86: Flexible Optimization: Nurse Scheduling with Constraint Programming … · 2019-10-16 · working rules as weighted automata [Menana09] automated modeling tool in ChocoETP 1 model

�exible optimization

modular solutions for recurring problems with mutable constraints

key of �exibility: decomposed models

key of e�ectiveness: aggregated algorithms

=⇒ automated composition =⇒ constraint learning

tools for �exibility

automata and graphs

global constraints and propagation

decomposition methods in linear programming (e.g. [Demassey06])

linearization (e.g. [Côté13])

Flexible optimization Conclusion 32 / 34

Page 87: Flexible Optimization: Nurse Scheduling with Constraint Programming … · 2019-10-16 · working rules as weighted automata [Menana09] automated modeling tool in ChocoETP 1 model

Bibliography

Menana (2011) Automates et programmation par contraintes pour laplani�cation de personnel, PhD Thesis.

Menana, Demassey (2010) Weighted Automata, Constraint Programming, andLarge Neighborhood Search, Nurse Rostering Competition at PATAT'10.

Menana, Demassey (2009) Sequencing and counting with the multicost-regularconstraint, LNCS 5547: 178 - 192.

Demassey, Pesant, Rousseau (2006) A Cost-Regular based Hybrid ColumnGeneration Approach, Constraints 11 (4) : 315 - 333.

Demassey, Pesant, Rousseau (2005) Constraint programming based columngeneration for employee timetabling LNCS 3524: 140 - 154.

Flexible optimization Conclusion 33 / 34

Page 88: Flexible Optimization: Nurse Scheduling with Constraint Programming … · 2019-10-16 · working rules as weighted automata [Menana09] automated modeling tool in ChocoETP 1 model

Bibliography

Pesant (2004) A regular language membership constraint for �nite sequences ofvariables, CP'04, 482-495.

Sellmann (2006) The theory of grammar constraints, CP'06, 530-544.

Côté, Gendron, Quimper, Rousseau (2007) Formal languages for integerprogramming modeling of shift scheduling problems, Constraints, 1-23.

Pesant (2008) Constraint-based rostering, PATAT'08.

Métivier, Boizumault, Loudni (2009) Solving nurse rostering problems using softglobal constraints, CP'09, 73-87.

Coté, Gendron, Rousseau (2013) Grammar-Based Column Generation forPersonalized Multi-Activity Shift Scheduling, INFORMS JoC, 25:3, 461-474.

Flexible optimization Conclusion 34 / 34