Specialised (user defined) constraints in JChoco 2 examples: max and subtour elimination.

58
Specialised (user defined) constraints in JChoco 2 examples: max and subtour eliminat

Transcript of Specialised (user defined) constraints in JChoco 2 examples: max and subtour elimination.

Page 1: Specialised (user defined) constraints in JChoco 2 examples: max and subtour elimination.

Specialised (user defined) constraints in JChoco

2 examples: max and subtour elimination

Page 2: Specialised (user defined) constraints in JChoco 2 examples: max and subtour elimination.

Consider the following contraint

),,,max( 110 nvvvx

This can be implemented in JChoco using primitives as follows

Page 3: Specialised (user defined) constraints in JChoco 2 examples: max and subtour elimination.

)(:),,max( cxbxaxcxbxaxcbax

Due to Chris Unsworth

Page 4: Specialised (user defined) constraints in JChoco 2 examples: max and subtour elimination.
Page 5: Specialised (user defined) constraints in JChoco 2 examples: max and subtour elimination.
Page 6: Specialised (user defined) constraints in JChoco 2 examples: max and subtour elimination.
Page 7: Specialised (user defined) constraints in JChoco 2 examples: max and subtour elimination.

Could I define my own constraint to do this?

Why would I want to do that?

Possibly:• more compact• faster• more propagation

Page 8: Specialised (user defined) constraints in JChoco 2 examples: max and subtour elimination.

Define a constraint called Max that extends AbstractLargeIntConstraint

V[0] = max(v[1],v[2],…,v[n-1])

Page 9: Specialised (user defined) constraints in JChoco 2 examples: max and subtour elimination.
Page 10: Specialised (user defined) constraints in JChoco 2 examples: max and subtour elimination.
Page 11: Specialised (user defined) constraints in JChoco 2 examples: max and subtour elimination.
Page 12: Specialised (user defined) constraints in JChoco 2 examples: max and subtour elimination.
Page 13: Specialised (user defined) constraints in JChoco 2 examples: max and subtour elimination.
Page 14: Specialised (user defined) constraints in JChoco 2 examples: max and subtour elimination.
Page 15: Specialised (user defined) constraints in JChoco 2 examples: max and subtour elimination.

Methods to be implemented

inf: lower boundsup: upper bound

instantiate

initiation

removal of value

V[0] = max(v[1],v[2],…,v[n-1])

Page 16: Specialised (user defined) constraints in JChoco 2 examples: max and subtour elimination.

A demoV[0] = max(v[1],v[2],…,v[n-1])

Cart before the horse?

Page 17: Specialised (user defined) constraints in JChoco 2 examples: max and subtour elimination.

Note: output always has a 4 or a 5 in it

V[0] = max(v[1],v[2],…,v[n-1])

Page 18: Specialised (user defined) constraints in JChoco 2 examples: max and subtour elimination.
Page 19: Specialised (user defined) constraints in JChoco 2 examples: max and subtour elimination.
Page 20: Specialised (user defined) constraints in JChoco 2 examples: max and subtour elimination.
Page 21: Specialised (user defined) constraints in JChoco 2 examples: max and subtour elimination.

Backtrackable Variables(Stored*)

We haven’t used them yet, but ….

Page 22: Specialised (user defined) constraints in JChoco 2 examples: max and subtour elimination.
Page 23: Specialised (user defined) constraints in JChoco 2 examples: max and subtour elimination.
Page 24: Specialised (user defined) constraints in JChoco 2 examples: max and subtour elimination.
Page 25: Specialised (user defined) constraints in JChoco 2 examples: max and subtour elimination.
Page 26: Specialised (user defined) constraints in JChoco 2 examples: max and subtour elimination.

Small TSP’s

Page 27: Specialised (user defined) constraints in JChoco 2 examples: max and subtour elimination.
Page 28: Specialised (user defined) constraints in JChoco 2 examples: max and subtour elimination.

The single successor model

An array of n variables

}1..0{ nnexti

iji citycityjnext followsy immediatel

)(nextntallDiffere

But this aint enough

“single successor” model of a graphLimits what kind of graph can be modelled• out-degree of 1

Page 29: Specialised (user defined) constraints in JChoco 2 examples: max and subtour elimination.

The single successor model }1..0{ nnexti

iji citycityjnext followsy immediatel )(nextntallDiffere

1 2 3 0 5 6 7 4

0 1 72 3 4 5 6

NOT A TOUR!

We need subtour elimination

Page 30: Specialised (user defined) constraints in JChoco 2 examples: max and subtour elimination.
Page 31: Specialised (user defined) constraints in JChoco 2 examples: max and subtour elimination.

Associate with each variable next[i] the following reversible variables

i involves path that theoflength the

i involves path that theof end the

i involves path that theofstart the

i

i

i

l

e

s

When making an instantiationnext[i] = j

• We now join the path that ends in i to path that starts with j• If the path involves less that n vertices/cities

• next[e[j]] != s[i]• i.e. we cannot close that loop!

Yikes! Show me a picture!

Page 32: Specialised (user defined) constraints in JChoco 2 examples: max and subtour elimination.

0

3

2

1

5

4

7

next[1] = 5

s[1] = 0

e[0] = 1

e[5] = 7

s[7] = 5

8

6

e[8] = 6

s[6] = 8

Page 33: Specialised (user defined) constraints in JChoco 2 examples: max and subtour elimination.

0

3

2

1

5

4

7

e[0] = 7

s[7] = 0

8

6

e[8] = 6

s[6] = 8

Page 34: Specialised (user defined) constraints in JChoco 2 examples: max and subtour elimination.

0

3

2

1

5

4

7

e[0] = 7

s[7] = 0

8

6

e[8] = 6

s[6] = 8

next[7] ≠ 0

Otherwise we have a subtour/loop

This is the “propagation” .

Note: this is a constraint that may be used in a richer problem

Page 35: Specialised (user defined) constraints in JChoco 2 examples: max and subtour elimination.
Page 36: Specialised (user defined) constraints in JChoco 2 examples: max and subtour elimination.
Page 37: Specialised (user defined) constraints in JChoco 2 examples: max and subtour elimination.

Example application: knight’s tour

Page 38: Specialised (user defined) constraints in JChoco 2 examples: max and subtour elimination.
Page 39: Specialised (user defined) constraints in JChoco 2 examples: max and subtour elimination.
Page 40: Specialised (user defined) constraints in JChoco 2 examples: max and subtour elimination.
Page 41: Specialised (user defined) constraints in JChoco 2 examples: max and subtour elimination.
Page 42: Specialised (user defined) constraints in JChoco 2 examples: max and subtour elimination.

Wot! Show me a picture!

Page 44: Specialised (user defined) constraints in JChoco 2 examples: max and subtour elimination.
Page 45: Specialised (user defined) constraints in JChoco 2 examples: max and subtour elimination.
Page 46: Specialised (user defined) constraints in JChoco 2 examples: max and subtour elimination.
Page 47: Specialised (user defined) constraints in JChoco 2 examples: max and subtour elimination.
Page 48: Specialised (user defined) constraints in JChoco 2 examples: max and subtour elimination.

Is there a dvo heuristic for this?

Page 49: Specialised (user defined) constraints in JChoco 2 examples: max and subtour elimination.
Page 50: Specialised (user defined) constraints in JChoco 2 examples: max and subtour elimination.
Page 51: Specialised (user defined) constraints in JChoco 2 examples: max and subtour elimination.
Page 52: Specialised (user defined) constraints in JChoco 2 examples: max and subtour elimination.
Page 54: Specialised (user defined) constraints in JChoco 2 examples: max and subtour elimination.

Is there an alternative model for this?

Page 55: Specialised (user defined) constraints in JChoco 2 examples: max and subtour elimination.

A knights-graph with a degree sequence 2* that is connected i.e. adjacency matrix model of the graph

Page 56: Specialised (user defined) constraints in JChoco 2 examples: max and subtour elimination.

So?

• Jean-Francois Puget called this “the glass box”• Note how this fits with AC5• Note that we need to consider state and backtracking• Why bother?

Page 57: Specialised (user defined) constraints in JChoco 2 examples: max and subtour elimination.
Page 58: Specialised (user defined) constraints in JChoco 2 examples: max and subtour elimination.