100
Introduction Approach Conclusion Conjure Revisited: Towards Automated Constraint Modelling Ozgur Akgun 1 , Alan M. Frisch 2 , Brahim Hnich 3 , Chris Jefferson 1 , Ian Miguel 1 1 School of Computer Science, University of St Andrews, UK 2 Artificial Intelligence Group, Dept. of Computer Science, University of York, UK 3 Department of Computer Engineering, Izmir University of Economics, Turkey ModRef 2010 The 9th International Workshop on Constraint Modelling and Reformulation Ozgur Akgun, et al. Conjure Revisited: Towards Automated Constraint Modelling

Conjure Revisited: Towards Automated Constraint Modelling · Introduction Approach Conclusion Conjure Revisited: Towards Automated Constraint Modelling Ozgur Akgun1, Alan M. Frisch2,

  • Upload
    others

  • View
    17

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Conjure Revisited: Towards Automated Constraint Modelling · Introduction Approach Conclusion Conjure Revisited: Towards Automated Constraint Modelling Ozgur Akgun1, Alan M. Frisch2,

IntroductionApproach

Conclusion

Conjure Revisited: Towards AutomatedConstraint Modelling

Ozgur Akgun1,Alan M. Frisch2, Brahim Hnich3, Chris Jefferson1, Ian Miguel1

1 School of Computer Science, University of St Andrews, UK2 Artificial Intelligence Group, Dept. of Computer Science, University of York, UK

3 Department of Computer Engineering, Izmir University of Economics, Turkey

ModRef 2010The 9th International Workshop on

Constraint Modelling and Reformulation

Ozgur Akgun, et al. Conjure Revisited: Towards Automated Constraint Modelling

Page 2: Conjure Revisited: Towards Automated Constraint Modelling · Introduction Approach Conclusion Conjure Revisited: Towards Automated Constraint Modelling Ozgur Akgun1, Alan M. Frisch2,

IntroductionApproach

Conclusion

1 IntroductionWhat is?EssenceEssence by exampleEssence′

1 ApproachThe taskThe pipelineNon-deterministic RewritingSome rulesMatching expressions, not constraints

1 ConclusionCoverage and limitationsConclusion and future work

Ozgur Akgun, et al. Conjure Revisited: Towards Automated Constraint Modelling

Page 3: Conjure Revisited: Towards Automated Constraint Modelling · Introduction Approach Conclusion Conjure Revisited: Towards Automated Constraint Modelling Ozgur Akgun1, Alan M. Frisch2,

IntroductionApproach

Conclusion

What is?EssenceEssence by exampleEssence′

What is?

Essence: a high level problem specification language

Conjure: a tool to generate multiple CSP models given aproblem specification

Essence′: a solver independent, problem class level CSPmodelling language

Ozgur Akgun, et al. Conjure Revisited: Towards Automated Constraint Modelling

Page 4: Conjure Revisited: Towards Automated Constraint Modelling · Introduction Approach Conclusion Conjure Revisited: Towards Automated Constraint Modelling Ozgur Akgun1, Alan M. Frisch2,

IntroductionApproach

Conclusion

What is?EssenceEssence by exampleEssence′

What is?

Essence: a high level problem specification language

Conjure: a tool to generate multiple CSP models given aproblem specification

Essence′: a solver independent, problem class level CSPmodelling language

Ozgur Akgun, et al. Conjure Revisited: Towards Automated Constraint Modelling

Page 5: Conjure Revisited: Towards Automated Constraint Modelling · Introduction Approach Conclusion Conjure Revisited: Towards Automated Constraint Modelling Ozgur Akgun1, Alan M. Frisch2,

IntroductionApproach

Conclusion

What is?EssenceEssence by exampleEssence′

What is?

Essence: a high level problem specification language

Conjure: a tool to generate multiple CSP models given aproblem specification

Essence′: a solver independent, problem class level CSPmodelling language

Ozgur Akgun, et al. Conjure Revisited: Towards Automated Constraint Modelling

Page 6: Conjure Revisited: Towards Automated Constraint Modelling · Introduction Approach Conclusion Conjure Revisited: Towards Automated Constraint Modelling Ozgur Akgun1, Alan M. Frisch2,

IntroductionApproach

Conclusion

What is?EssenceEssence by exampleEssence′

What is?

Essence: a high level problem specification language

Conjure: a tool to generate multiple CSP models given aproblem specification

Essence′: a solver independent, problem class level CSPmodelling language

Ozgur Akgun, et al. Conjure Revisited: Towards Automated Constraint Modelling

Page 7: Conjure Revisited: Towards Automated Constraint Modelling · Introduction Approach Conclusion Conjure Revisited: Towards Automated Constraint Modelling Ozgur Akgun1, Alan M. Frisch2,

IntroductionApproach

Conclusion

What is?EssenceEssence by exampleEssence′

What is?

Essence: a high level problem specification language

Conjure: a tool to generate multiple CSP models given aproblem specification

Essence′: a solver independent, problem class level CSPmodelling language

Ozgur Akgun, et al. Conjure Revisited: Towards Automated Constraint Modelling

Page 8: Conjure Revisited: Towards Automated Constraint Modelling · Introduction Approach Conclusion Conjure Revisited: Towards Automated Constraint Modelling Ozgur Akgun1, Alan M. Frisch2,

IntroductionApproach

Conclusion

What is?EssenceEssence by exampleEssence′

Essence

A high level problem specification language

Supports many type constructors that allow problems to bespecified in natural ways

boolean, integer, enumeration, unnamed types,set, multi-set, function, relation, tuple,and arbitrary nestings of these type constructors

No CSP modelling decisions involved

Ozgur Akgun, et al. Conjure Revisited: Towards Automated Constraint Modelling

Page 9: Conjure Revisited: Towards Automated Constraint Modelling · Introduction Approach Conclusion Conjure Revisited: Towards Automated Constraint Modelling Ozgur Akgun1, Alan M. Frisch2,

IntroductionApproach

Conclusion

What is?EssenceEssence by exampleEssence′

Essence

A high level problem specification language

Supports many type constructors that allow problems to bespecified in natural ways

boolean, integer, enumeration, unnamed types,set, multi-set, function, relation, tuple,and arbitrary nestings of these type constructors

No CSP modelling decisions involved

Ozgur Akgun, et al. Conjure Revisited: Towards Automated Constraint Modelling

Page 10: Conjure Revisited: Towards Automated Constraint Modelling · Introduction Approach Conclusion Conjure Revisited: Towards Automated Constraint Modelling Ozgur Akgun1, Alan M. Frisch2,

IntroductionApproach

Conclusion

What is?EssenceEssence by exampleEssence′

Essence

A high level problem specification language

Supports many type constructors that allow problems to bespecified in natural ways

boolean, integer, enumeration, unnamed types,set, multi-set, function, relation, tuple,and arbitrary nestings of these type constructors

No CSP modelling decisions involved

Ozgur Akgun, et al. Conjure Revisited: Towards Automated Constraint Modelling

Page 11: Conjure Revisited: Towards Automated Constraint Modelling · Introduction Approach Conclusion Conjure Revisited: Towards Automated Constraint Modelling Ozgur Akgun1, Alan M. Frisch2,

IntroductionApproach

Conclusion

What is?EssenceEssence by exampleEssence′

Essence by example

Problem

given n distinct items, with associated weights and valuesselect a set out of these items maximising total valuesuch that the total weight is not more than that of you cancarry

Ozgur Akgun, et al. Conjure Revisited: Towards Automated Constraint Modelling

Page 12: Conjure Revisited: Towards Automated Constraint Modelling · Introduction Approach Conclusion Conjure Revisited: Towards Automated Constraint Modelling Ozgur Akgun1, Alan M. Frisch2,

IntroductionApproach

Conclusion

What is?EssenceEssence by exampleEssence′

Essence by example

given i t em : enumgiven w : funct ion i t em −> i n t (0 . . )given v : funct ion i t em −> i n t (0 . . )given cap : i n t (0 . . )

f i nd x : set of i t em

maximising sum i : x . v ( i )such that sum i : x . w( i ) <= cap

Ozgur Akgun, et al. Conjure Revisited: Towards Automated Constraint Modelling

Page 13: Conjure Revisited: Towards Automated Constraint Modelling · Introduction Approach Conclusion Conjure Revisited: Towards Automated Constraint Modelling Ozgur Akgun1, Alan M. Frisch2,

IntroductionApproach

Conclusion

What is?EssenceEssence by exampleEssence′

Essence′

Almost a subset of Essence

Operates on problem class level

Supports boolean and integer decision variables, andmulti-dimensional matrices

Supports several global constraints, in addition to commonarithmetic and logical ones

Tailor compiles efficient CSP models to multiple targetsolvers

MinionGecodeFlatZinc

Ozgur Akgun, et al. Conjure Revisited: Towards Automated Constraint Modelling

Page 14: Conjure Revisited: Towards Automated Constraint Modelling · Introduction Approach Conclusion Conjure Revisited: Towards Automated Constraint Modelling Ozgur Akgun1, Alan M. Frisch2,

IntroductionApproach

Conclusion

What is?EssenceEssence by exampleEssence′

Essence′

Almost a subset of Essence

Operates on problem class level

Supports boolean and integer decision variables, andmulti-dimensional matrices

Supports several global constraints, in addition to commonarithmetic and logical ones

Tailor compiles efficient CSP models to multiple targetsolvers

MinionGecodeFlatZinc

Ozgur Akgun, et al. Conjure Revisited: Towards Automated Constraint Modelling

Page 15: Conjure Revisited: Towards Automated Constraint Modelling · Introduction Approach Conclusion Conjure Revisited: Towards Automated Constraint Modelling Ozgur Akgun1, Alan M. Frisch2,

IntroductionApproach

Conclusion

What is?EssenceEssence by exampleEssence′

Essence′

Almost a subset of Essence

Operates on problem class level

Supports boolean and integer decision variables, andmulti-dimensional matrices

Supports several global constraints, in addition to commonarithmetic and logical ones

Tailor compiles efficient CSP models to multiple targetsolvers

MinionGecodeFlatZinc

Ozgur Akgun, et al. Conjure Revisited: Towards Automated Constraint Modelling

Page 16: Conjure Revisited: Towards Automated Constraint Modelling · Introduction Approach Conclusion Conjure Revisited: Towards Automated Constraint Modelling Ozgur Akgun1, Alan M. Frisch2,

IntroductionApproach

Conclusion

What is?EssenceEssence by exampleEssence′

Essence′

Almost a subset of Essence

Operates on problem class level

Supports boolean and integer decision variables, andmulti-dimensional matrices

Supports several global constraints, in addition to commonarithmetic and logical ones

Tailor compiles efficient CSP models to multiple targetsolvers

MinionGecodeFlatZinc

Ozgur Akgun, et al. Conjure Revisited: Towards Automated Constraint Modelling

Page 17: Conjure Revisited: Towards Automated Constraint Modelling · Introduction Approach Conclusion Conjure Revisited: Towards Automated Constraint Modelling Ozgur Akgun1, Alan M. Frisch2,

IntroductionApproach

Conclusion

What is?EssenceEssence by exampleEssence′

Essence′

Almost a subset of Essence

Operates on problem class level

Supports boolean and integer decision variables, andmulti-dimensional matrices

Supports several global constraints, in addition to commonarithmetic and logical ones

Tailor compiles efficient CSP models to multiple targetsolvers

MinionGecodeFlatZinc

Ozgur Akgun, et al. Conjure Revisited: Towards Automated Constraint Modelling

Page 18: Conjure Revisited: Towards Automated Constraint Modelling · Introduction Approach Conclusion Conjure Revisited: Towards Automated Constraint Modelling Ozgur Akgun1, Alan M. Frisch2,

IntroductionApproach

Conclusion

What is?EssenceEssence by exampleEssence′

Essence′

Almost a subset of Essence

Operates on problem class level

Supports boolean and integer decision variables, andmulti-dimensional matrices

Supports several global constraints, in addition to commonarithmetic and logical ones

Tailor compiles efficient CSP models to multiple targetsolvers

MinionGecodeFlatZinc

Ozgur Akgun, et al. Conjure Revisited: Towards Automated Constraint Modelling

Page 19: Conjure Revisited: Towards Automated Constraint Modelling · Introduction Approach Conclusion Conjure Revisited: Towards Automated Constraint Modelling Ozgur Akgun1, Alan M. Frisch2,

IntroductionApproach

Conclusion

The taskThe pipelineNon-deterministic RewritingSome rulesMatching expressions, not constraints

The task

Compile Essence specifications to multiple Essence′ models

Compilation process needs to be easily modifiable

A term rewriting infrastructure supported by a set of rewriterules

Ozgur Akgun, et al. Conjure Revisited: Towards Automated Constraint Modelling

Page 20: Conjure Revisited: Towards Automated Constraint Modelling · Introduction Approach Conclusion Conjure Revisited: Towards Automated Constraint Modelling Ozgur Akgun1, Alan M. Frisch2,

IntroductionApproach

Conclusion

The taskThe pipelineNon-deterministic RewritingSome rulesMatching expressions, not constraints

The task

Compile Essence specifications to multiple Essence′ models

Compilation process needs to be easily modifiable

A term rewriting infrastructure supported by a set of rewriterules

Ozgur Akgun, et al. Conjure Revisited: Towards Automated Constraint Modelling

Page 21: Conjure Revisited: Towards Automated Constraint Modelling · Introduction Approach Conclusion Conjure Revisited: Towards Automated Constraint Modelling Ozgur Akgun1, Alan M. Frisch2,

IntroductionApproach

Conclusion

The taskThe pipelineNon-deterministic RewritingSome rulesMatching expressions, not constraints

The task

Compile Essence specifications to multiple Essence′ models

Compilation process needs to be easily modifiable

A term rewriting infrastructure supported by a set of rewriterules

Ozgur Akgun, et al. Conjure Revisited: Towards Automated Constraint Modelling

Page 22: Conjure Revisited: Towards Automated Constraint Modelling · Introduction Approach Conclusion Conjure Revisited: Towards Automated Constraint Modelling Ozgur Akgun1, Alan M. Frisch2,

IntroductionApproach

Conclusion

The taskThe pipelineNon-deterministic RewritingSome rulesMatching expressions, not constraints

The pipeline

Parsing

Type checking

Validating the input

Representations phase

Auto-Channelling phase

Adding structural constraints

Expression rewriting

Presentation

Ozgur Akgun, et al. Conjure Revisited: Towards Automated Constraint Modelling

Page 23: Conjure Revisited: Towards Automated Constraint Modelling · Introduction Approach Conclusion Conjure Revisited: Towards Automated Constraint Modelling Ozgur Akgun1, Alan M. Frisch2,

IntroductionApproach

Conclusion

The taskThe pipelineNon-deterministic RewritingSome rulesMatching expressions, not constraints

The pipeline

Parsing

Type checking

Validating the input

Representations phase

Auto-Channelling phase

Adding structural constraints

Expression rewriting

Presentation

Ozgur Akgun, et al. Conjure Revisited: Towards Automated Constraint Modelling

Page 24: Conjure Revisited: Towards Automated Constraint Modelling · Introduction Approach Conclusion Conjure Revisited: Towards Automated Constraint Modelling Ozgur Akgun1, Alan M. Frisch2,

IntroductionApproach

Conclusion

The taskThe pipelineNon-deterministic RewritingSome rulesMatching expressions, not constraints

The pipeline

Parsing

Type checking

Validating the input

Representations phase

Auto-Channelling phase

Adding structural constraints

Expression rewriting

Presentation

Ozgur Akgun, et al. Conjure Revisited: Towards Automated Constraint Modelling

Page 25: Conjure Revisited: Towards Automated Constraint Modelling · Introduction Approach Conclusion Conjure Revisited: Towards Automated Constraint Modelling Ozgur Akgun1, Alan M. Frisch2,

IntroductionApproach

Conclusion

The taskThe pipelineNon-deterministic RewritingSome rulesMatching expressions, not constraints

The pipeline

Parsing

Type checking

Validating the input

Representations phase

Auto-Channelling phase

Adding structural constraints

Expression rewriting

Presentation

Ozgur Akgun, et al. Conjure Revisited: Towards Automated Constraint Modelling

Page 26: Conjure Revisited: Towards Automated Constraint Modelling · Introduction Approach Conclusion Conjure Revisited: Towards Automated Constraint Modelling Ozgur Akgun1, Alan M. Frisch2,

IntroductionApproach

Conclusion

The taskThe pipelineNon-deterministic RewritingSome rulesMatching expressions, not constraints

The pipeline

Parsing

Type checking

Validating the input

Representations phase

Auto-Channelling phase

Adding structural constraints

Expression rewriting

Presentation

Ozgur Akgun, et al. Conjure Revisited: Towards Automated Constraint Modelling

Page 27: Conjure Revisited: Towards Automated Constraint Modelling · Introduction Approach Conclusion Conjure Revisited: Towards Automated Constraint Modelling Ozgur Akgun1, Alan M. Frisch2,

IntroductionApproach

Conclusion

The taskThe pipelineNon-deterministic RewritingSome rulesMatching expressions, not constraints

The pipeline

Parsing

Type checking

Validating the input

Representations phase

Auto-Channelling phase

Adding structural constraints

Expression rewriting

Presentation

Ozgur Akgun, et al. Conjure Revisited: Towards Automated Constraint Modelling

Page 28: Conjure Revisited: Towards Automated Constraint Modelling · Introduction Approach Conclusion Conjure Revisited: Towards Automated Constraint Modelling Ozgur Akgun1, Alan M. Frisch2,

IntroductionApproach

Conclusion

The taskThe pipelineNon-deterministic RewritingSome rulesMatching expressions, not constraints

The pipeline

Parsing

Type checking

Validating the input

Representations phase

Auto-Channelling phase

Adding structural constraints

Expression rewriting

Presentation

Ozgur Akgun, et al. Conjure Revisited: Towards Automated Constraint Modelling

Page 29: Conjure Revisited: Towards Automated Constraint Modelling · Introduction Approach Conclusion Conjure Revisited: Towards Automated Constraint Modelling Ozgur Akgun1, Alan M. Frisch2,

IntroductionApproach

Conclusion

The taskThe pipelineNon-deterministic RewritingSome rulesMatching expressions, not constraints

The pipeline

Parsing

Type checking

Validating the input

Representations phase

Auto-Channelling phase

Adding structural constraints

Expression rewriting

Presentation

Ozgur Akgun, et al. Conjure Revisited: Towards Automated Constraint Modelling

Page 30: Conjure Revisited: Towards Automated Constraint Modelling · Introduction Approach Conclusion Conjure Revisited: Towards Automated Constraint Modelling Ozgur Akgun1, Alan M. Frisch2,

IntroductionApproach

Conclusion

The taskThe pipelineNon-deterministic RewritingSome rulesMatching expressions, not constraints

The pipeline: Representations phase

One of the two kinds of modelling decisions

Selecting the viewpoint

Select a representation for every parameter and decisionvariable

Possible to represent a variable in multiple ways

if it appears in more than one constraint

Ozgur Akgun, et al. Conjure Revisited: Towards Automated Constraint Modelling

Page 31: Conjure Revisited: Towards Automated Constraint Modelling · Introduction Approach Conclusion Conjure Revisited: Towards Automated Constraint Modelling Ozgur Akgun1, Alan M. Frisch2,

IntroductionApproach

Conclusion

The taskThe pipelineNon-deterministic RewritingSome rulesMatching expressions, not constraints

The pipeline: Representations phase

One of the two kinds of modelling decisions

Selecting the viewpoint

Select a representation for every parameter and decisionvariable

Possible to represent a variable in multiple ways

if it appears in more than one constraint

Ozgur Akgun, et al. Conjure Revisited: Towards Automated Constraint Modelling

Page 32: Conjure Revisited: Towards Automated Constraint Modelling · Introduction Approach Conclusion Conjure Revisited: Towards Automated Constraint Modelling Ozgur Akgun1, Alan M. Frisch2,

IntroductionApproach

Conclusion

The taskThe pipelineNon-deterministic RewritingSome rulesMatching expressions, not constraints

The pipeline: Representations phase

One of the two kinds of modelling decisions

Selecting the viewpoint

Select a representation for every parameter and decisionvariable

Possible to represent a variable in multiple ways

if it appears in more than one constraint

Ozgur Akgun, et al. Conjure Revisited: Towards Automated Constraint Modelling

Page 33: Conjure Revisited: Towards Automated Constraint Modelling · Introduction Approach Conclusion Conjure Revisited: Towards Automated Constraint Modelling Ozgur Akgun1, Alan M. Frisch2,

IntroductionApproach

Conclusion

The taskThe pipelineNon-deterministic RewritingSome rulesMatching expressions, not constraints

2 representations for sets

Given: set (size 2) of int(1..3)

Explicit representation:matrix indexed by [int(1..2)] of int(1..3)Occurrence representation:matrix indexed by [int(1..3)] of bool

Ozgur Akgun, et al. Conjure Revisited: Towards Automated Constraint Modelling

Page 34: Conjure Revisited: Towards Automated Constraint Modelling · Introduction Approach Conclusion Conjure Revisited: Towards Automated Constraint Modelling Ozgur Akgun1, Alan M. Frisch2,

IntroductionApproach

Conclusion

The taskThe pipelineNon-deterministic RewritingSome rulesMatching expressions, not constraints

2 representations for sets

Given: set (size 2) of int(1..3)Explicit representation:matrix indexed by [int(1..2)] of int(1..3)

Occurrence representation:matrix indexed by [int(1..3)] of bool

Ozgur Akgun, et al. Conjure Revisited: Towards Automated Constraint Modelling

Page 35: Conjure Revisited: Towards Automated Constraint Modelling · Introduction Approach Conclusion Conjure Revisited: Towards Automated Constraint Modelling Ozgur Akgun1, Alan M. Frisch2,

IntroductionApproach

Conclusion

The taskThe pipelineNon-deterministic RewritingSome rulesMatching expressions, not constraints

2 representations for sets

Given: set (size 2) of int(1..3)Explicit representation:matrix indexed by [int(1..2)] of int(1..3)Occurrence representation:matrix indexed by [int(1..3)] of bool

Ozgur Akgun, et al. Conjure Revisited: Towards Automated Constraint Modelling

Page 36: Conjure Revisited: Towards Automated Constraint Modelling · Introduction Approach Conclusion Conjure Revisited: Towards Automated Constraint Modelling Ozgur Akgun1, Alan M. Frisch2,

IntroductionApproach

Conclusion

The taskThe pipelineNon-deterministic RewritingSome rulesMatching expressions, not constraints

Example

given lb , ub , n : i n tgiven s : set of i n t ( l b . . ub )f i nd x : set ( s i z e n ) of i n t ( l b . . ub )

such thatx subseteq s ,f o r a l l i : x . k ( i )

Ozgur Akgun, et al. Conjure Revisited: Towards Automated Constraint Modelling

Page 37: Conjure Revisited: Towards Automated Constraint Modelling · Introduction Approach Conclusion Conjure Revisited: Towards Automated Constraint Modelling Ozgur Akgun1, Alan M. Frisch2,

IntroductionApproach

Conclusion

The taskThe pipelineNon-deterministic RewritingSome rulesMatching expressions, not constraints

Example

given lb , ub , n : i n tgiven s : set of i n t ( l b . . ub )f i nd x o c c r : set ( s i z e n ) of i n t ( l b . . ub )

such thatx o c c r subseteq s ,f o r a l l i : x o c c r . k ( i )

Ozgur Akgun, et al. Conjure Revisited: Towards Automated Constraint Modelling

Page 38: Conjure Revisited: Towards Automated Constraint Modelling · Introduction Approach Conclusion Conjure Revisited: Towards Automated Constraint Modelling Ozgur Akgun1, Alan M. Frisch2,

IntroductionApproach

Conclusion

The taskThe pipelineNon-deterministic RewritingSome rulesMatching expressions, not constraints

Example

given lb , ub , n : i n tgiven s : set of i n t ( l b . . ub )f i nd x e x p l : set ( s i z e n ) of i n t ( l b . . ub )

such thatx e x p l subseteq s ,f o r a l l i : x e x p l . k ( i )

Ozgur Akgun, et al. Conjure Revisited: Towards Automated Constraint Modelling

Page 39: Conjure Revisited: Towards Automated Constraint Modelling · Introduction Approach Conclusion Conjure Revisited: Towards Automated Constraint Modelling Ozgur Akgun1, Alan M. Frisch2,

IntroductionApproach

Conclusion

The taskThe pipelineNon-deterministic RewritingSome rulesMatching expressions, not constraints

Example

given lb , ub , n : i n tgiven s : set of i n t ( l b . . ub )f i nd x ? : set ( s i z e n ) of i n t ( l b . . ub )

such thatx o c c r subseteq s ,f o r a l l i : x e x p l . k ( i )

Ozgur Akgun, et al. Conjure Revisited: Towards Automated Constraint Modelling

Page 40: Conjure Revisited: Towards Automated Constraint Modelling · Introduction Approach Conclusion Conjure Revisited: Towards Automated Constraint Modelling Ozgur Akgun1, Alan M. Frisch2,

IntroductionApproach

Conclusion

The taskThe pipelineNon-deterministic RewritingSome rulesMatching expressions, not constraints

Example

given lb , ub , n : i n tgiven s : set of i n t ( l b . . ub )f i nd x e x p l : set ( s i z e n ) of i n t ( l b . . ub )f i nd x o c c r : set ( s i z e n ) of i n t ( l b . . ub )

such thatx o c c r subseteq s ,f o r a l l i : x e x p l . k ( i )

Ozgur Akgun, et al. Conjure Revisited: Towards Automated Constraint Modelling

Page 41: Conjure Revisited: Towards Automated Constraint Modelling · Introduction Approach Conclusion Conjure Revisited: Towards Automated Constraint Modelling Ozgur Akgun1, Alan M. Frisch2,

IntroductionApproach

Conclusion

The taskThe pipelineNon-deterministic RewritingSome rulesMatching expressions, not constraints

Example

given lb , ub , n : i n tgiven s : set of i n t ( l b . . ub )f i nd x e x p l : set ( s i z e n ) of i n t ( l b . . ub )f i nd x o c c r : set ( s i z e n ) of i n t ( l b . . ub )

such thatx o c c r subseteq s ,f o r a l l i : x e x p l . k ( i ) ,x o c c r = x e x p l

Ozgur Akgun, et al. Conjure Revisited: Towards Automated Constraint Modelling

Page 42: Conjure Revisited: Towards Automated Constraint Modelling · Introduction Approach Conclusion Conjure Revisited: Towards Automated Constraint Modelling Ozgur Akgun1, Alan M. Frisch2,

IntroductionApproach

Conclusion

The taskThe pipelineNon-deterministic RewritingSome rulesMatching expressions, not constraints

The pipeline: Auto-Channelling phase

More than one representation for a decision variable=>

pairwise equality constraints!

Ozgur Akgun, et al. Conjure Revisited: Towards Automated Constraint Modelling

Page 43: Conjure Revisited: Towards Automated Constraint Modelling · Introduction Approach Conclusion Conjure Revisited: Towards Automated Constraint Modelling Ozgur Akgun1, Alan M. Frisch2,

IntroductionApproach

Conclusion

The taskThe pipelineNon-deterministic RewritingSome rulesMatching expressions, not constraints

The pipeline: Adding structural constraints

Now, representations for decision variables are known

“Structural constraints” are added to the model

an alldiff constraint for x_expla cardinality constraint for x_occr

Ozgur Akgun, et al. Conjure Revisited: Towards Automated Constraint Modelling

Page 44: Conjure Revisited: Towards Automated Constraint Modelling · Introduction Approach Conclusion Conjure Revisited: Towards Automated Constraint Modelling Ozgur Akgun1, Alan M. Frisch2,

IntroductionApproach

Conclusion

The taskThe pipelineNon-deterministic RewritingSome rulesMatching expressions, not constraints

The pipeline: Adding structural constraints

Now, representations for decision variables are known

“Structural constraints” are added to the model

an alldiff constraint for x_expla cardinality constraint for x_occr

Ozgur Akgun, et al. Conjure Revisited: Towards Automated Constraint Modelling

Page 45: Conjure Revisited: Towards Automated Constraint Modelling · Introduction Approach Conclusion Conjure Revisited: Towards Automated Constraint Modelling Ozgur Akgun1, Alan M. Frisch2,

IntroductionApproach

Conclusion

The taskThe pipelineNon-deterministic RewritingSome rulesMatching expressions, not constraints

The pipeline: Adding structural constraints

Now, representations for decision variables are known

“Structural constraints” are added to the model

an alldiff constraint for x_expla cardinality constraint for x_occr

Ozgur Akgun, et al. Conjure Revisited: Towards Automated Constraint Modelling

Page 46: Conjure Revisited: Towards Automated Constraint Modelling · Introduction Approach Conclusion Conjure Revisited: Towards Automated Constraint Modelling Ozgur Akgun1, Alan M. Frisch2,

IntroductionApproach

Conclusion

The taskThe pipelineNon-deterministic RewritingSome rulesMatching expressions, not constraints

Example, structural constraints added

given lb , ub , n : i n tgiven s : set of i n t ( l b . . ub )f i nd x e x p l : set ( s i z e n ) of i n t ( l b . . ub )f i nd x o c c r : set ( s i z e n ) of i n t ( l b . . ub )

such thatx o c c r subseteq s ,f o r a l l i : x e x p l . k ( i ) ,x o c c r = x e xp l ,{ a l l d i f f on x e xp l ’ s r e f i n emen t } ,{ c a r d i n a l i t y on x occ r ’ s r e f i n emen t }

Ozgur Akgun, et al. Conjure Revisited: Towards Automated Constraint Modelling

Page 47: Conjure Revisited: Towards Automated Constraint Modelling · Introduction Approach Conclusion Conjure Revisited: Towards Automated Constraint Modelling Ozgur Akgun1, Alan M. Frisch2,

IntroductionApproach

Conclusion

The taskThe pipelineNon-deterministic RewritingSome rulesMatching expressions, not constraints

Example, final

g iven lb , ub , n : i n tg i ven s o c c r : mat r i x i ndexed by [ i n t ( l b . . ub ) ] of boo lf i n d x e x p l : mat r i x i ndexed by [ i n t (1 . . n ) ] of i n t ( l b . . ub )f i n d x o c c r : mat r i x i ndexed by [ i n t ( l b . . ub ) ] of boo l

such thatf o r a l l i : i n t ( l b . . ub ) . x o c c r [ i ] <= s o c c r [ i ] ,f o r a l l i : i n t (1 . . n ) . k ( x e x p l [ i ] ) ,f o r a l l i : i n t (1 . . n ) . x o c c r [ x e x p l [ i ] ] = 1 ,f o r a l l i : i n t ( l b . . ub ) . (

x o c c r [ i ] => e x i s t s j : i n t (1 . . n ) . x e x p l [ j ] = i) ,a l l d i f f ( x e x p l ) ,sum i : i n t ( l b . . ub ) . x o c c r [ i ] = n

Ozgur Akgun, et al. Conjure Revisited: Towards Automated Constraint Modelling

Page 48: Conjure Revisited: Towards Automated Constraint Modelling · Introduction Approach Conclusion Conjure Revisited: Towards Automated Constraint Modelling Ozgur Akgun1, Alan M. Frisch2,

IntroductionApproach

Conclusion

The taskThe pipelineNon-deterministic RewritingSome rulesMatching expressions, not constraints

Non-deterministic Rewriting

Given a set of rewrite rules and a starting term, apply therules repeatedly.

normal form

More than one rule can match a term.

Select one at random?Apply all matching rules? (produces a list of terms)

Ozgur Akgun, et al. Conjure Revisited: Towards Automated Constraint Modelling

Page 49: Conjure Revisited: Towards Automated Constraint Modelling · Introduction Approach Conclusion Conjure Revisited: Towards Automated Constraint Modelling Ozgur Akgun1, Alan M. Frisch2,

IntroductionApproach

Conclusion

The taskThe pipelineNon-deterministic RewritingSome rulesMatching expressions, not constraints

Non-deterministic Rewriting

Given a set of rewrite rules and a starting term, apply therules repeatedly.

normal form

More than one rule can match a term.

Select one at random?Apply all matching rules? (produces a list of terms)

Ozgur Akgun, et al. Conjure Revisited: Towards Automated Constraint Modelling

Page 50: Conjure Revisited: Towards Automated Constraint Modelling · Introduction Approach Conclusion Conjure Revisited: Towards Automated Constraint Modelling Ozgur Akgun1, Alan M. Frisch2,

IntroductionApproach

Conclusion

The taskThe pipelineNon-deterministic RewritingSome rulesMatching expressions, not constraints

Non-deterministic Rewriting

Given a set of rewrite rules and a starting term, apply therules repeatedly.

normal form

More than one rule can match a term.

Select one at random?Apply all matching rules? (produces a list of terms)

Ozgur Akgun, et al. Conjure Revisited: Towards Automated Constraint Modelling

Page 51: Conjure Revisited: Towards Automated Constraint Modelling · Introduction Approach Conclusion Conjure Revisited: Towards Automated Constraint Modelling Ozgur Akgun1, Alan M. Frisch2,

IntroductionApproach

Conclusion

The taskThe pipelineNon-deterministic RewritingSome rulesMatching expressions, not constraints

Non-deterministic Rewriting

Given a set of rewrite rules and a starting term, apply therules repeatedly.

normal form

More than one rule can match a term.

Select one at random?

Apply all matching rules? (produces a list of terms)

Ozgur Akgun, et al. Conjure Revisited: Towards Automated Constraint Modelling

Page 52: Conjure Revisited: Towards Automated Constraint Modelling · Introduction Approach Conclusion Conjure Revisited: Towards Automated Constraint Modelling Ozgur Akgun1, Alan M. Frisch2,

IntroductionApproach

Conclusion

The taskThe pipelineNon-deterministic RewritingSome rulesMatching expressions, not constraints

Non-deterministic Rewriting

Given a set of rewrite rules and a starting term, apply therules repeatedly.

normal form

More than one rule can match a term.

Select one at random?Apply all matching rules? (produces a list of terms)

Ozgur Akgun, et al. Conjure Revisited: Towards Automated Constraint Modelling

Page 53: Conjure Revisited: Towards Automated Constraint Modelling · Introduction Approach Conclusion Conjure Revisited: Towards Automated Constraint Modelling Ozgur Akgun1, Alan M. Frisch2,

IntroductionApproach

Conclusion

The taskThe pipelineNon-deterministic RewritingSome rulesMatching expressions, not constraints

Rule representation

Rules are represented as directed equations with guards.

A * B -> A + A, if B is 2A / B -> A , if B is 1

This is a partial mapping.

Can combine multiple such rules, into a one-to-manymapping.

Subterms: {A,B,C,D}

rule1: A to B

rule2: A to C

rule3: B to D

allRules

{ (A, {B,C}) , (B, { D }) , (C, { C }) , (D, { D }) }

Handle just one rule.

Ozgur Akgun, et al. Conjure Revisited: Towards Automated Constraint Modelling

Page 54: Conjure Revisited: Towards Automated Constraint Modelling · Introduction Approach Conclusion Conjure Revisited: Towards Automated Constraint Modelling Ozgur Akgun1, Alan M. Frisch2,

IntroductionApproach

Conclusion

The taskThe pipelineNon-deterministic RewritingSome rulesMatching expressions, not constraints

Rule representation

Rules are represented as directed equations with guards.

A * B -> A + A, if B is 2A / B -> A , if B is 1

This is a partial mapping.

Can combine multiple such rules, into a one-to-manymapping.

Subterms: {A,B,C,D}

rule1: A to B

rule2: A to C

rule3: B to D

allRules

{ (A, {B,C}) , (B, { D }) , (C, { C }) , (D, { D }) }

Handle just one rule.

Ozgur Akgun, et al. Conjure Revisited: Towards Automated Constraint Modelling

Page 55: Conjure Revisited: Towards Automated Constraint Modelling · Introduction Approach Conclusion Conjure Revisited: Towards Automated Constraint Modelling Ozgur Akgun1, Alan M. Frisch2,

IntroductionApproach

Conclusion

The taskThe pipelineNon-deterministic RewritingSome rulesMatching expressions, not constraints

Rule representation

Rules are represented as directed equations with guards.

A * B -> A + A, if B is 2A / B -> A , if B is 1

This is a partial mapping.

Can combine multiple such rules, into a one-to-manymapping.

Subterms: {A,B,C,D}

rule1: A to B

rule2: A to C

rule3: B to D

allRules

{ (A, {B,C}) , (B, { D }) , (C, { C }) , (D, { D }) }

Handle just one rule.

Ozgur Akgun, et al. Conjure Revisited: Towards Automated Constraint Modelling

Page 56: Conjure Revisited: Towards Automated Constraint Modelling · Introduction Approach Conclusion Conjure Revisited: Towards Automated Constraint Modelling Ozgur Akgun1, Alan M. Frisch2,

IntroductionApproach

Conclusion

The taskThe pipelineNon-deterministic RewritingSome rulesMatching expressions, not constraints

Rule representation

Rules are represented as directed equations with guards.

A * B -> A + A, if B is 2A / B -> A , if B is 1

This is a partial mapping.

Can combine multiple such rules, into a one-to-manymapping.

Subterms: {A,B,C,D}

rule1: A to B

rule2: A to C

rule3: B to D

allRules

{ (A, {B,C}) , (B, { D }) , (C, { C }) , (D, { D }) }

Handle just one rule.

Ozgur Akgun, et al. Conjure Revisited: Towards Automated Constraint Modelling

Page 57: Conjure Revisited: Towards Automated Constraint Modelling · Introduction Approach Conclusion Conjure Revisited: Towards Automated Constraint Modelling Ozgur Akgun1, Alan M. Frisch2,

IntroductionApproach

Conclusion

The taskThe pipelineNon-deterministic RewritingSome rulesMatching expressions, not constraints

Rule representation

Rules are represented as directed equations with guards.

A * B -> A + A, if B is 2A / B -> A , if B is 1

This is a partial mapping.

Can combine multiple such rules, into a one-to-manymapping.

Subterms: {A,B,C,D}

rule1: A to B

rule2: A to C

rule3: B to D

allRules

{ (A, {B,C}) , (B, { D }) , (C, { C }) , (D, { D }) }

Handle just one rule.

Ozgur Akgun, et al. Conjure Revisited: Towards Automated Constraint Modelling

Page 58: Conjure Revisited: Towards Automated Constraint Modelling · Introduction Approach Conclusion Conjure Revisited: Towards Automated Constraint Modelling Ozgur Akgun1, Alan M. Frisch2,

IntroductionApproach

Conclusion

The taskThe pipelineNon-deterministic RewritingSome rulesMatching expressions, not constraints

Rule representation

Rules are represented as directed equations with guards.

A * B -> A + A, if B is 2A / B -> A , if B is 1

This is a partial mapping.

Can combine multiple such rules, into a one-to-manymapping.

Subterms: {A,B,C,D}

rule1: A to B

rule2: A to C

rule3: B to D

allRules

{ (A, {B,C}) , (B, { D }) , (C, { C }) , (D, { D }) }

Handle just one rule.

Ozgur Akgun, et al. Conjure Revisited: Towards Automated Constraint Modelling

Page 59: Conjure Revisited: Towards Automated Constraint Modelling · Introduction Approach Conclusion Conjure Revisited: Towards Automated Constraint Modelling Ozgur Akgun1, Alan M. Frisch2,

IntroductionApproach

Conclusion

The taskThe pipelineNon-deterministic RewritingSome rulesMatching expressions, not constraints

Some example rules

essence_expression equivalent_expression

guards: properties that essence_expression must satisfy

declarations: newly created variables and

local aliases for expressions

Ozgur Akgun, et al. Conjure Revisited: Towards Automated Constraint Modelling

Page 60: Conjure Revisited: Towards Automated Constraint Modelling · Introduction Approach Conclusion Conjure Revisited: Towards Automated Constraint Modelling Ozgur Akgun1, Alan M. Frisch2,

IntroductionApproach

Conclusion

The taskThe pipelineNon-deterministic RewritingSome rulesMatching expressions, not constraints

Example rules: ruleSetEq

a = b a subseteq b /\ b subseteq a

guards: a ∼ set of τ,b ∼ set of τ

Ozgur Akgun, et al. Conjure Revisited: Towards Automated Constraint Modelling

Page 61: Conjure Revisited: Towards Automated Constraint Modelling · Introduction Approach Conclusion Conjure Revisited: Towards Automated Constraint Modelling Ozgur Akgun1, Alan M. Frisch2,

IntroductionApproach

Conclusion

The taskThe pipelineNon-deterministic RewritingSome rulesMatching expressions, not constraints

Example rules: ruleSetSubsetEq

a subseteq b forall i : a . i elem b

guards: a ∼ set of τ,b ∼ set of τ

Ozgur Akgun, et al. Conjure Revisited: Towards Automated Constraint Modelling

Page 62: Conjure Revisited: Towards Automated Constraint Modelling · Introduction Approach Conclusion Conjure Revisited: Towards Automated Constraint Modelling Ozgur Akgun1, Alan M. Frisch2,

IntroductionApproach

Conclusion

The taskThe pipelineNon-deterministic RewritingSome rulesMatching expressions, not constraints

Example rules: ruleSetElem

e elem s exists i : s . i = e

guards: e ∼ τ,s ∼ set of τ

Ozgur Akgun, et al. Conjure Revisited: Towards Automated Constraint Modelling

Page 63: Conjure Revisited: Towards Automated Constraint Modelling · Introduction Approach Conclusion Conjure Revisited: Towards Automated Constraint Modelling Ozgur Akgun1, Alan M. Frisch2,

IntroductionApproach

Conclusion

The taskThe pipelineNon-deterministic RewritingSome rulesMatching expressions, not constraints

Example rules: ruleSetQuan

forall i : (a union b) . k forall i : a . k /\ forall i : b . k

exists i : (a union b) . k exists i : a . k \/ exists i : b . k

forall i : (a intersect b) . k forall i : a ( i elem b => k )

forall i : (a intersect b) . k forall i : b ( i elem a => k )

exists i : (a intersect b) . k exists i : a ( i elem b /\ k )

exists i : (a intersect b) . k exists i : b ( i elem a /\ k )

Ozgur Akgun, et al. Conjure Revisited: Towards Automated Constraint Modelling

Page 64: Conjure Revisited: Towards Automated Constraint Modelling · Introduction Approach Conclusion Conjure Revisited: Towards Automated Constraint Modelling Ozgur Akgun1, Alan M. Frisch2,

IntroductionApproach

Conclusion

The taskThe pipelineNon-deterministic RewritingSome rulesMatching expressions, not constraints

Matching expressions, not constraints

Some other tools reason about complete constraints

including previous implementations of Conjure

Now, can match with any subexpression, not necessarilycomplete constraints

Can work on a non-flat modelAble to reason about structureDo more with fewer rules

Ozgur Akgun, et al. Conjure Revisited: Towards Automated Constraint Modelling

Page 65: Conjure Revisited: Towards Automated Constraint Modelling · Introduction Approach Conclusion Conjure Revisited: Towards Automated Constraint Modelling Ozgur Akgun1, Alan M. Frisch2,

IntroductionApproach

Conclusion

The taskThe pipelineNon-deterministic RewritingSome rulesMatching expressions, not constraints

Matching expressions, not constraints

Some other tools reason about complete constraints

including previous implementations of Conjure

Now, can match with any subexpression, not necessarilycomplete constraints

Can work on a non-flat modelAble to reason about structureDo more with fewer rules

Ozgur Akgun, et al. Conjure Revisited: Towards Automated Constraint Modelling

Page 66: Conjure Revisited: Towards Automated Constraint Modelling · Introduction Approach Conclusion Conjure Revisited: Towards Automated Constraint Modelling Ozgur Akgun1, Alan M. Frisch2,

IntroductionApproach

Conclusion

The taskThe pipelineNon-deterministic RewritingSome rulesMatching expressions, not constraints

Matching expressions, not constraints

Some other tools reason about complete constraints

including previous implementations of Conjure

Now, can match with any subexpression, not necessarilycomplete constraints

Can work on a non-flat modelAble to reason about structureDo more with fewer rules

Ozgur Akgun, et al. Conjure Revisited: Towards Automated Constraint Modelling

Page 67: Conjure Revisited: Towards Automated Constraint Modelling · Introduction Approach Conclusion Conjure Revisited: Towards Automated Constraint Modelling Ozgur Akgun1, Alan M. Frisch2,

IntroductionApproach

Conclusion

The taskThe pipelineNon-deterministic RewritingSome rulesMatching expressions, not constraints

Matching expressions, not constraints

Some other tools reason about complete constraints

including previous implementations of Conjure

Now, can match with any subexpression, not necessarilycomplete constraints

Can work on a non-flat model

Able to reason about structureDo more with fewer rules

Ozgur Akgun, et al. Conjure Revisited: Towards Automated Constraint Modelling

Page 68: Conjure Revisited: Towards Automated Constraint Modelling · Introduction Approach Conclusion Conjure Revisited: Towards Automated Constraint Modelling Ozgur Akgun1, Alan M. Frisch2,

IntroductionApproach

Conclusion

The taskThe pipelineNon-deterministic RewritingSome rulesMatching expressions, not constraints

Matching expressions, not constraints

Some other tools reason about complete constraints

including previous implementations of Conjure

Now, can match with any subexpression, not necessarilycomplete constraints

Can work on a non-flat modelAble to reason about structure

Do more with fewer rules

Ozgur Akgun, et al. Conjure Revisited: Towards Automated Constraint Modelling

Page 69: Conjure Revisited: Towards Automated Constraint Modelling · Introduction Approach Conclusion Conjure Revisited: Towards Automated Constraint Modelling Ozgur Akgun1, Alan M. Frisch2,

IntroductionApproach

Conclusion

The taskThe pipelineNon-deterministic RewritingSome rulesMatching expressions, not constraints

Matching expressions, not constraints

Some other tools reason about complete constraints

including previous implementations of Conjure

Now, can match with any subexpression, not necessarilycomplete constraints

Can work on a non-flat modelAble to reason about structureDo more with fewer rules

Ozgur Akgun, et al. Conjure Revisited: Towards Automated Constraint Modelling

Page 70: Conjure Revisited: Towards Automated Constraint Modelling · Introduction Approach Conclusion Conjure Revisited: Towards Automated Constraint Modelling Ozgur Akgun1, Alan M. Frisch2,

IntroductionApproach

Conclusion

The taskThe pipelineNon-deterministic RewritingSome rulesMatching expressions, not constraints

Matching expressions, not constraints

Consider: (a union b) subseteq c

Flattened: aux subseteq c /\ aux = a union b

We could have: a subseteq c /\ b subseteq c

Ozgur Akgun, et al. Conjure Revisited: Towards Automated Constraint Modelling

Page 71: Conjure Revisited: Towards Automated Constraint Modelling · Introduction Approach Conclusion Conjure Revisited: Towards Automated Constraint Modelling Ozgur Akgun1, Alan M. Frisch2,

IntroductionApproach

Conclusion

The taskThe pipelineNon-deterministic RewritingSome rulesMatching expressions, not constraints

Matching expressions, not constraints

Consider: (a union b) subseteq c

Flattened: aux subseteq c /\ aux = a union b

We could have: a subseteq c /\ b subseteq c

Ozgur Akgun, et al. Conjure Revisited: Towards Automated Constraint Modelling

Page 72: Conjure Revisited: Towards Automated Constraint Modelling · Introduction Approach Conclusion Conjure Revisited: Towards Automated Constraint Modelling Ozgur Akgun1, Alan M. Frisch2,

IntroductionApproach

Conclusion

The taskThe pipelineNon-deterministic RewritingSome rulesMatching expressions, not constraints

Matching expressions, not constraints

Consider: (a union b) subseteq c

Flattened: aux subseteq c /\ aux = a union b

We could have: a subseteq c /\ b subseteq c

Ozgur Akgun, et al. Conjure Revisited: Towards Automated Constraint Modelling

Page 73: Conjure Revisited: Towards Automated Constraint Modelling · Introduction Approach Conclusion Conjure Revisited: Towards Automated Constraint Modelling Ozgur Akgun1, Alan M. Frisch2,

IntroductionApproach

Conclusion

The taskThe pipelineNon-deterministic RewritingSome rulesMatching expressions, not constraints

Matching expressions, not constraints

Flattening = lost information

We can still flatten things, but only if we want, using ourpowerful rewrite rules!

A small problem, where to put helper constraints?

Ozgur Akgun, et al. Conjure Revisited: Towards Automated Constraint Modelling

Page 74: Conjure Revisited: Towards Automated Constraint Modelling · Introduction Approach Conclusion Conjure Revisited: Towards Automated Constraint Modelling Ozgur Akgun1, Alan M. Frisch2,

IntroductionApproach

Conclusion

The taskThe pipelineNon-deterministic RewritingSome rulesMatching expressions, not constraints

Matching expressions, not constraints

Flattening = lost information

We can still flatten things, but only if we want, using ourpowerful rewrite rules!

A small problem, where to put helper constraints?

Ozgur Akgun, et al. Conjure Revisited: Towards Automated Constraint Modelling

Page 75: Conjure Revisited: Towards Automated Constraint Modelling · Introduction Approach Conclusion Conjure Revisited: Towards Automated Constraint Modelling Ozgur Akgun1, Alan M. Frisch2,

IntroductionApproach

Conclusion

The taskThe pipelineNon-deterministic RewritingSome rulesMatching expressions, not constraints

Matching expressions, not constraints

Flattening = lost information

We can still flatten things, but only if we want, using ourpowerful rewrite rules!

A small problem, where to put helper constraints?

Ozgur Akgun, et al. Conjure Revisited: Towards Automated Constraint Modelling

Page 76: Conjure Revisited: Towards Automated Constraint Modelling · Introduction Approach Conclusion Conjure Revisited: Towards Automated Constraint Modelling Ozgur Akgun1, Alan M. Frisch2,

IntroductionApproach

Conclusion

The taskThe pipelineNon-deterministic RewritingSome rulesMatching expressions, not constraints

Matching expressions, not constraints

given lb , ub , n ,m, k : i n tf i nd t : set ( s i z e n ) of i n t ( l b . . ub )f i nd A : set ( s i z e n ) set ( s i z e m) of i n t ( l b . . ub )

such thatf o r a l l s : A .

(max( s ) − max( t ) = k ) => ( k elem s )

Ozgur Akgun, et al. Conjure Revisited: Towards Automated Constraint Modelling

Page 77: Conjure Revisited: Towards Automated Constraint Modelling · Introduction Approach Conclusion Conjure Revisited: Towards Automated Constraint Modelling Ozgur Akgun1, Alan M. Frisch2,

IntroductionApproach

Conclusion

The taskThe pipelineNon-deterministic RewritingSome rulesMatching expressions, not constraints

@: the bubble attaching operator

max(s) max_s @ bubble

guards: s ∼ set of int

declarations: max_s : int

bubble = (max_s elem s) /\ (forall i : s . i <= max_s)

Ozgur Akgun, et al. Conjure Revisited: Towards Automated Constraint Modelling

Page 78: Conjure Revisited: Towards Automated Constraint Modelling · Introduction Approach Conclusion Conjure Revisited: Towards Automated Constraint Modelling Ozgur Akgun1, Alan M. Frisch2,

IntroductionApproach

Conclusion

The taskThe pipelineNon-deterministic RewritingSome rulesMatching expressions, not constraints

Matching expressions, not constraints

forall s: A .

(max(s) - max(t) = k) => (k elem s)

forall s: A .

((max_s@bubble_s) - max(t) = k) => (k elem s)

forall s: A .

((max_s@bubble_s) - (max_t@bubble_t) = k) => (k elem s)

forall s: A .

(((max_s-max_t) @ (bubble_s /\ bubble_t))=k) => (k elem s)

forall s: A .

(((max_s-max_t=k) @ (bubble_s /\ bubble_t))) => (k elem s)

forall s: A .

(((max_s-max_t=k) => (k elem s)) @ (bubble_s /\ bubble_t))

forall s: A .

(((max_s-max_t=k) => (k elem s)) /\ bubble_s /\ bubble_t)

bubble_t /\ forall s: A .

(((max_s-max_t=k) => (k elem s)) /\ bubble_s)

Ozgur Akgun, et al. Conjure Revisited: Towards Automated Constraint Modelling

Page 79: Conjure Revisited: Towards Automated Constraint Modelling · Introduction Approach Conclusion Conjure Revisited: Towards Automated Constraint Modelling Ozgur Akgun1, Alan M. Frisch2,

IntroductionApproach

Conclusion

The taskThe pipelineNon-deterministic RewritingSome rulesMatching expressions, not constraints

Matching expressions, not constraints

forall s: A .

(max(s) - max(t) = k) => (k elem s)

forall s: A .

((max_s@bubble_s) - max(t) = k) => (k elem s)

forall s: A .

((max_s@bubble_s) - (max_t@bubble_t) = k) => (k elem s)

forall s: A .

(((max_s-max_t) @ (bubble_s /\ bubble_t))=k) => (k elem s)

forall s: A .

(((max_s-max_t=k) @ (bubble_s /\ bubble_t))) => (k elem s)

forall s: A .

(((max_s-max_t=k) => (k elem s)) @ (bubble_s /\ bubble_t))

forall s: A .

(((max_s-max_t=k) => (k elem s)) /\ bubble_s /\ bubble_t)

bubble_t /\ forall s: A .

(((max_s-max_t=k) => (k elem s)) /\ bubble_s)

Ozgur Akgun, et al. Conjure Revisited: Towards Automated Constraint Modelling

Page 80: Conjure Revisited: Towards Automated Constraint Modelling · Introduction Approach Conclusion Conjure Revisited: Towards Automated Constraint Modelling Ozgur Akgun1, Alan M. Frisch2,

IntroductionApproach

Conclusion

The taskThe pipelineNon-deterministic RewritingSome rulesMatching expressions, not constraints

Matching expressions, not constraints

forall s: A .

(max(s) - max(t) = k) => (k elem s)

forall s: A .

((max_s@bubble_s) - max(t) = k) => (k elem s)

forall s: A .

((max_s@bubble_s) - (max_t@bubble_t) = k) => (k elem s)

forall s: A .

(((max_s-max_t) @ (bubble_s /\ bubble_t))=k) => (k elem s)

forall s: A .

(((max_s-max_t=k) @ (bubble_s /\ bubble_t))) => (k elem s)

forall s: A .

(((max_s-max_t=k) => (k elem s)) @ (bubble_s /\ bubble_t))

forall s: A .

(((max_s-max_t=k) => (k elem s)) /\ bubble_s /\ bubble_t)

bubble_t /\ forall s: A .

(((max_s-max_t=k) => (k elem s)) /\ bubble_s)

Ozgur Akgun, et al. Conjure Revisited: Towards Automated Constraint Modelling

Page 81: Conjure Revisited: Towards Automated Constraint Modelling · Introduction Approach Conclusion Conjure Revisited: Towards Automated Constraint Modelling Ozgur Akgun1, Alan M. Frisch2,

IntroductionApproach

Conclusion

The taskThe pipelineNon-deterministic RewritingSome rulesMatching expressions, not constraints

Matching expressions, not constraints

forall s: A .

(max(s) - max(t) = k) => (k elem s)

forall s: A .

((max_s@bubble_s) - max(t) = k) => (k elem s)

forall s: A .

((max_s@bubble_s) - (max_t@bubble_t) = k) => (k elem s)

forall s: A .

(((max_s-max_t) @ (bubble_s /\ bubble_t))=k) => (k elem s)

forall s: A .

(((max_s-max_t=k) @ (bubble_s /\ bubble_t))) => (k elem s)

forall s: A .

(((max_s-max_t=k) => (k elem s)) @ (bubble_s /\ bubble_t))

forall s: A .

(((max_s-max_t=k) => (k elem s)) /\ bubble_s /\ bubble_t)

bubble_t /\ forall s: A .

(((max_s-max_t=k) => (k elem s)) /\ bubble_s)

Ozgur Akgun, et al. Conjure Revisited: Towards Automated Constraint Modelling

Page 82: Conjure Revisited: Towards Automated Constraint Modelling · Introduction Approach Conclusion Conjure Revisited: Towards Automated Constraint Modelling Ozgur Akgun1, Alan M. Frisch2,

IntroductionApproach

Conclusion

The taskThe pipelineNon-deterministic RewritingSome rulesMatching expressions, not constraints

Matching expressions, not constraints

forall s: A .

(max(s) - max(t) = k) => (k elem s)

forall s: A .

((max_s@bubble_s) - max(t) = k) => (k elem s)

forall s: A .

((max_s@bubble_s) - (max_t@bubble_t) = k) => (k elem s)

forall s: A .

(((max_s-max_t) @ (bubble_s /\ bubble_t))=k) => (k elem s)

forall s: A .

(((max_s-max_t=k) @ (bubble_s /\ bubble_t))) => (k elem s)

forall s: A .

(((max_s-max_t=k) => (k elem s)) @ (bubble_s /\ bubble_t))

forall s: A .

(((max_s-max_t=k) => (k elem s)) /\ bubble_s /\ bubble_t)

bubble_t /\ forall s: A .

(((max_s-max_t=k) => (k elem s)) /\ bubble_s)

Ozgur Akgun, et al. Conjure Revisited: Towards Automated Constraint Modelling

Page 83: Conjure Revisited: Towards Automated Constraint Modelling · Introduction Approach Conclusion Conjure Revisited: Towards Automated Constraint Modelling Ozgur Akgun1, Alan M. Frisch2,

IntroductionApproach

Conclusion

The taskThe pipelineNon-deterministic RewritingSome rulesMatching expressions, not constraints

Matching expressions, not constraints

forall s: A .

(max(s) - max(t) = k) => (k elem s)

forall s: A .

((max_s@bubble_s) - max(t) = k) => (k elem s)

forall s: A .

((max_s@bubble_s) - (max_t@bubble_t) = k) => (k elem s)

forall s: A .

(((max_s-max_t) @ (bubble_s /\ bubble_t))=k) => (k elem s)

forall s: A .

(((max_s-max_t=k) @ (bubble_s /\ bubble_t))) => (k elem s)

forall s: A .

(((max_s-max_t=k) => (k elem s)) @ (bubble_s /\ bubble_t))

forall s: A .

(((max_s-max_t=k) => (k elem s)) /\ bubble_s /\ bubble_t)

bubble_t /\ forall s: A .

(((max_s-max_t=k) => (k elem s)) /\ bubble_s)

Ozgur Akgun, et al. Conjure Revisited: Towards Automated Constraint Modelling

Page 84: Conjure Revisited: Towards Automated Constraint Modelling · Introduction Approach Conclusion Conjure Revisited: Towards Automated Constraint Modelling Ozgur Akgun1, Alan M. Frisch2,

IntroductionApproach

Conclusion

The taskThe pipelineNon-deterministic RewritingSome rulesMatching expressions, not constraints

Matching expressions, not constraints

forall s: A .

(max(s) - max(t) = k) => (k elem s)

forall s: A .

((max_s@bubble_s) - max(t) = k) => (k elem s)

forall s: A .

((max_s@bubble_s) - (max_t@bubble_t) = k) => (k elem s)

forall s: A .

(((max_s-max_t) @ (bubble_s /\ bubble_t))=k) => (k elem s)

forall s: A .

(((max_s-max_t=k) @ (bubble_s /\ bubble_t))) => (k elem s)

forall s: A .

(((max_s-max_t=k) => (k elem s)) @ (bubble_s /\ bubble_t))

forall s: A .

(((max_s-max_t=k) => (k elem s)) /\ bubble_s /\ bubble_t)

bubble_t /\ forall s: A .

(((max_s-max_t=k) => (k elem s)) /\ bubble_s)

Ozgur Akgun, et al. Conjure Revisited: Towards Automated Constraint Modelling

Page 85: Conjure Revisited: Towards Automated Constraint Modelling · Introduction Approach Conclusion Conjure Revisited: Towards Automated Constraint Modelling Ozgur Akgun1, Alan M. Frisch2,

IntroductionApproach

Conclusion

The taskThe pipelineNon-deterministic RewritingSome rulesMatching expressions, not constraints

Matching expressions, not constraints

forall s: A .

(max(s) - max(t) = k) => (k elem s)

forall s: A .

((max_s@bubble_s) - max(t) = k) => (k elem s)

forall s: A .

((max_s@bubble_s) - (max_t@bubble_t) = k) => (k elem s)

forall s: A .

(((max_s-max_t) @ (bubble_s /\ bubble_t))=k) => (k elem s)

forall s: A .

(((max_s-max_t=k) @ (bubble_s /\ bubble_t))) => (k elem s)

forall s: A .

(((max_s-max_t=k) => (k elem s)) @ (bubble_s /\ bubble_t))

forall s: A .

(((max_s-max_t=k) => (k elem s)) /\ bubble_s /\ bubble_t)

bubble_t /\ forall s: A .

(((max_s-max_t=k) => (k elem s)) /\ bubble_s)

Ozgur Akgun, et al. Conjure Revisited: Towards Automated Constraint Modelling

Page 86: Conjure Revisited: Towards Automated Constraint Modelling · Introduction Approach Conclusion Conjure Revisited: Towards Automated Constraint Modelling Ozgur Akgun1, Alan M. Frisch2,

IntroductionApproach

Conclusion

Coverage and limitationsConclusion and future work

Coverage of Essence

Essence has 7 core type constructors

matrix, set, mset, partition, tuple, function, relation

Type constructors supported: all except partition

Also we haven’t yet implemented support for enumerated andunnamed types

There are nearly 30 operators defined on these typeconstructors

Almost all of them implemented

Ozgur Akgun, et al. Conjure Revisited: Towards Automated Constraint Modelling

Page 87: Conjure Revisited: Towards Automated Constraint Modelling · Introduction Approach Conclusion Conjure Revisited: Towards Automated Constraint Modelling Ozgur Akgun1, Alan M. Frisch2,

IntroductionApproach

Conclusion

Coverage and limitationsConclusion and future work

Coverage of Essence

Essence has 7 core type constructors

matrix, set, mset, partition, tuple, function, relation

Type constructors supported: all except partition

Also we haven’t yet implemented support for enumerated andunnamed types

There are nearly 30 operators defined on these typeconstructors

Almost all of them implemented

Ozgur Akgun, et al. Conjure Revisited: Towards Automated Constraint Modelling

Page 88: Conjure Revisited: Towards Automated Constraint Modelling · Introduction Approach Conclusion Conjure Revisited: Towards Automated Constraint Modelling Ozgur Akgun1, Alan M. Frisch2,

IntroductionApproach

Conclusion

Coverage and limitationsConclusion and future work

Coverage of Essence

Essence has 7 core type constructors

matrix, set, mset, partition, tuple, function, relation

Type constructors supported: all except partition

Also we haven’t yet implemented support for enumerated andunnamed types

There are nearly 30 operators defined on these typeconstructors

Almost all of them implemented

Ozgur Akgun, et al. Conjure Revisited: Towards Automated Constraint Modelling

Page 89: Conjure Revisited: Towards Automated Constraint Modelling · Introduction Approach Conclusion Conjure Revisited: Towards Automated Constraint Modelling Ozgur Akgun1, Alan M. Frisch2,

IntroductionApproach

Conclusion

Coverage and limitationsConclusion and future work

Coverage of Essence

Essence has 7 core type constructors

matrix, set, mset, partition, tuple, function, relation

Type constructors supported: all except partition

Also we haven’t yet implemented support for enumerated andunnamed types

There are nearly 30 operators defined on these typeconstructors

Almost all of them implemented

Ozgur Akgun, et al. Conjure Revisited: Towards Automated Constraint Modelling

Page 90: Conjure Revisited: Towards Automated Constraint Modelling · Introduction Approach Conclusion Conjure Revisited: Towards Automated Constraint Modelling Ozgur Akgun1, Alan M. Frisch2,

IntroductionApproach

Conclusion

Coverage and limitationsConclusion and future work

Coverage of Essence

Essence has 7 core type constructors

matrix, set, mset, partition, tuple, function, relation

Type constructors supported: all except partition

Also we haven’t yet implemented support for enumerated andunnamed types

There are nearly 30 operators defined on these typeconstructors

Almost all of them implemented

Ozgur Akgun, et al. Conjure Revisited: Towards Automated Constraint Modelling

Page 91: Conjure Revisited: Towards Automated Constraint Modelling · Introduction Approach Conclusion Conjure Revisited: Towards Automated Constraint Modelling Ozgur Akgun1, Alan M. Frisch2,

IntroductionApproach

Conclusion

Coverage and limitationsConclusion and future work

Differences to the prototype implementation

Broader coverage of Essence

Representation decisions

Auto-channelling becomes very easy

No flattening

Easier rule authoring

Ozgur Akgun, et al. Conjure Revisited: Towards Automated Constraint Modelling

Page 92: Conjure Revisited: Towards Automated Constraint Modelling · Introduction Approach Conclusion Conjure Revisited: Towards Automated Constraint Modelling Ozgur Akgun1, Alan M. Frisch2,

IntroductionApproach

Conclusion

Coverage and limitationsConclusion and future work

Differences to the prototype implementation

Broader coverage of Essence

Representation decisions

Auto-channelling becomes very easy

No flattening

Easier rule authoring

Ozgur Akgun, et al. Conjure Revisited: Towards Automated Constraint Modelling

Page 93: Conjure Revisited: Towards Automated Constraint Modelling · Introduction Approach Conclusion Conjure Revisited: Towards Automated Constraint Modelling Ozgur Akgun1, Alan M. Frisch2,

IntroductionApproach

Conclusion

Coverage and limitationsConclusion and future work

Differences to the prototype implementation

Broader coverage of Essence

Representation decisions

Auto-channelling becomes very easy

No flattening

Easier rule authoring

Ozgur Akgun, et al. Conjure Revisited: Towards Automated Constraint Modelling

Page 94: Conjure Revisited: Towards Automated Constraint Modelling · Introduction Approach Conclusion Conjure Revisited: Towards Automated Constraint Modelling Ozgur Akgun1, Alan M. Frisch2,

IntroductionApproach

Conclusion

Coverage and limitationsConclusion and future work

Differences to the prototype implementation

Broader coverage of Essence

Representation decisions

Auto-channelling becomes very easy

No flattening

Easier rule authoring

Ozgur Akgun, et al. Conjure Revisited: Towards Automated Constraint Modelling

Page 95: Conjure Revisited: Towards Automated Constraint Modelling · Introduction Approach Conclusion Conjure Revisited: Towards Automated Constraint Modelling Ozgur Akgun1, Alan M. Frisch2,

IntroductionApproach

Conclusion

Coverage and limitationsConclusion and future work

Differences to the prototype implementation

Broader coverage of Essence

Representation decisions

Auto-channelling becomes very easy

No flattening

Easier rule authoring

Ozgur Akgun, et al. Conjure Revisited: Towards Automated Constraint Modelling

Page 96: Conjure Revisited: Towards Automated Constraint Modelling · Introduction Approach Conclusion Conjure Revisited: Towards Automated Constraint Modelling Ozgur Akgun1, Alan M. Frisch2,

IntroductionApproach

Conclusion

Coverage and limitationsConclusion and future work

Conclusion and future work

New version of Conjure with far greater coverage of theEssence language

Immediate future work, covering all of the types andoperations in Essence

Capture best modelling practices

Model selection

Investigate multi-model search techniques

Ozgur Akgun, et al. Conjure Revisited: Towards Automated Constraint Modelling

Page 97: Conjure Revisited: Towards Automated Constraint Modelling · Introduction Approach Conclusion Conjure Revisited: Towards Automated Constraint Modelling Ozgur Akgun1, Alan M. Frisch2,

IntroductionApproach

Conclusion

Coverage and limitationsConclusion and future work

Conclusion and future work

New version of Conjure with far greater coverage of theEssence language

Immediate future work, covering all of the types andoperations in Essence

Capture best modelling practices

Model selection

Investigate multi-model search techniques

Ozgur Akgun, et al. Conjure Revisited: Towards Automated Constraint Modelling

Page 98: Conjure Revisited: Towards Automated Constraint Modelling · Introduction Approach Conclusion Conjure Revisited: Towards Automated Constraint Modelling Ozgur Akgun1, Alan M. Frisch2,

IntroductionApproach

Conclusion

Coverage and limitationsConclusion and future work

Conclusion and future work

New version of Conjure with far greater coverage of theEssence language

Immediate future work, covering all of the types andoperations in Essence

Capture best modelling practices

Model selection

Investigate multi-model search techniques

Ozgur Akgun, et al. Conjure Revisited: Towards Automated Constraint Modelling

Page 99: Conjure Revisited: Towards Automated Constraint Modelling · Introduction Approach Conclusion Conjure Revisited: Towards Automated Constraint Modelling Ozgur Akgun1, Alan M. Frisch2,

IntroductionApproach

Conclusion

Coverage and limitationsConclusion and future work

Conclusion and future work

New version of Conjure with far greater coverage of theEssence language

Immediate future work, covering all of the types andoperations in Essence

Capture best modelling practices

Model selection

Investigate multi-model search techniques

Ozgur Akgun, et al. Conjure Revisited: Towards Automated Constraint Modelling

Page 100: Conjure Revisited: Towards Automated Constraint Modelling · Introduction Approach Conclusion Conjure Revisited: Towards Automated Constraint Modelling Ozgur Akgun1, Alan M. Frisch2,

IntroductionApproach

Conclusion

Coverage and limitationsConclusion and future work

Conclusion and future work

New version of Conjure with far greater coverage of theEssence language

Immediate future work, covering all of the types andoperations in Essence

Capture best modelling practices

Model selection

Investigate multi-model search techniques

Ozgur Akgun, et al. Conjure Revisited: Towards Automated Constraint Modelling