Upload
victor-green
View
214
Download
1
Tags:
Embed Size (px)
Citation preview
Graph Colouring
Various Models
• an obvious model• SAT• sets• demo• random graphs• chromatic number• maxCol• phase transition
kCol
We are given a graph G = (V,E) whereV is set of vertices and E is set of edgesG is simple, undirected graph
Given k colours, can we label vertices with colourssuch that for all (i,j) E colour(i) ≠ colour(j)
0 1 2
3 4
75
6
98
A Graph G = (V,E)
0 1 2
3 4
75
6
98
A Graph G = (V,E)
Colour such that adjacent vertices are different
Model 1
kColModel 1
Have a constrained integer variable v[i] for each vertex i VDomain of v[i] is {1..k} the set of avaliable coloursFor all for all (i,j) E v[i] ≠ v[j]Decision variable are v[0] to v[n-1]Heuristic, Brelaz
Model 2
kColModel 2 SAT encoding
kivtruev ki ][
Consider as an example a 3Col instance with 2 adjacent vertices, i and j
)()()()( 323121321iiiiiiiii vvvvvvvvv
boolean variable to represent a vertex x taking a specific colour k
“at least one and at most one” constraint
)()()( 332211jijiji vvvvvv
)()()()( 323121321jjjjjjjjj vvvvvvvvv
adjacent vertices take different colours
kColModel 2 SAT encoding
Heuristics?
Implementation … generate data and pass to minisat+
Model 3
kColModel 3
Have a constrained set variable S[i] for each colour
Colour Sets of Vertices
icoliEvu Svu },{),(
Decision variables are S[0] to S[k-1]Heuristics?
nScoli i
Where col is a set of colours
An edge is notin a coloured set
All vertices are coloured
an example
0 1 2
3 4
75
6
98
g10.txt
0 1 2
3 4
75
6
98
g10.txt
0 1 2
3 4
75
6
98
g10.txt
0 1 2
3 4
75
6
98
1 is red
2 is green
3 is blue
g10.txt
0 1 2
3 4
75
6
98
g10.txtA different colour with Colour02
Generating random graphs
Small demo with data directory
Chromatic Number
Chromatic Number
We want the minimum number of colours to colour G
Chromatic Number
• introduce a constrained integer variable maxCol• maxCol has domain {1 .. n}• each vertex has a constrained integer variable v[i]• v[i] has domain {1 .. n}• for (int i=0;i<n;i++) modl.addConstraint(leq(v[i],maxCol))• sol.minimise(maxCol)
Chromatic Number
Chromatic Number
Chromatic Number
What should we do if there are not enough colours and wewant to do the best that we can? That is, colour as many vertices
as possible leaving some vertices uncoloured, or colour all vertices and minimise conflicts?
MaxCol (min-conflicts)
MaxCol (min-conflicts)
• associate a dummy colour into domains• dummy colour doesn’t conflict with any other colours• get occurrence of dummy colour and minimise that
OR
• associate a penalty with a conflict• for edge {i,j} have constrained integer variable P[i][j]• domain P[i][j] is {0,1}• modl.addConstraint(or(and(neq(v[i],v[j]),eq(P[i][j],0)),• (and(eq(v[i],v[j]),eq(P[i][j],1)))• minimise the sum of the penalty variables
Lassie, do you think we could have a look at the phase transition in kCol?
Woof!
Lassie, remember the paper by Cheeseman, Kanefsky and Taylor, and that stuff on constrainedness?
Woof!
Lassie, are you lying?
Woof!
1 2log ( )Sol
N
Constrainedness
<Sol> is expected number of solutions N is log_2 of the size of the state space
k = 0, all states are solutions, easy, underconstrained
k =
k = 1, critically constrained, 50% solubility, hard
, <Sol> is zero, easy, overconstrained
Applied to: CSP, TSP, 3-SAT, 3-COL, Partition, HC, …?
Random Graphs
Random Graphs
Make Experiments as a Job
Make Experiments as a Job
The Results File
Analyse Results
4Coln = 50sample size = 500.1 ≤ p ≤ 0.3
Check Out the Dates
1 day’s work
fin