Conflict Directed Clause Learning for the Maximum Weighted Clique - - PowerPoint PPT Presentation

conflict directed clause learning for the maximum
SMART_READER_LITE
LIVE PREVIEW

Conflict Directed Clause Learning for the Maximum Weighted Clique - - PowerPoint PPT Presentation

Conflict Directed Clause Learning for the Maximum Weighted Clique Problem Emmanuel Hebrard 1 and George Katsirelos 2 1 LAAS-CNRS, Universit 2 MIAT, INRA e de Toulouse The Maximum Weight Clique Problem 5 b d 9 Given a graph G with weight


slide-1
SLIDE 1

Conflict Directed Clause Learning for the Maximum Weighted Clique Problem

Emmanuel Hebrard1 and George Katsirelos2

1LAAS-CNRS, Universit´

e de Toulouse

2MIAT, INRA

slide-2
SLIDE 2

The Maximum Weight Clique Problem

Given a graph G with weight function w

a 10 b 5 c 3 d 9 e 3 f 13

1 / 16

slide-3
SLIDE 3

The Maximum Weight Clique Problem

Given a graph G with weight function w Find a clique – set of vertices all pairwise adjacent – of maximum weight

a 10 b 5 c 3 d 9 e 3 f 13

1 / 16

slide-4
SLIDE 4

The Maximum Weight Clique Problem

Given a graph G with weight function w Find a clique – set of vertices all pairwise adjacent – of maximum weight

a 10 b 5 c 3 d 9 e 3 f 13 b 5 f 13

1 / 16

slide-5
SLIDE 5

The Maximum Weight Clique Problem

Given a graph G with weight function w Find a clique – set of vertices all pairwise adjacent – of maximum weight ⇐ ⇒ Find a set of vertices without edge (Independent Set – IS) of maximum weight (on the complement)

a 10 b 5 c 3 d 9 e 3 f 13 b 5 f 13

1 / 16

slide-6
SLIDE 6

The Maximum Weight Clique Problem

Given a graph G with weight function w Find a clique – set of vertices all pairwise adjacent – of maximum weight ⇐ ⇒ Find a set of vertices without edge (Independent Set – IS) of maximum weight (on the complement) ⇐ ⇒ Find a set of vertices touching every edge (Vertex Cover – VC) minimum weight (on the complement)

a 10 b 5 c 3 d 9 e 3 f 13 b 5 f 13

1 / 16

slide-7
SLIDE 7

The Maximum Weight Clique Problem

Given a graph G with weight function w Find a clique – set of vertices all pairwise adjacent – of maximum weight ⇐ ⇒ Find a set of vertices without edge (Independent Set – IS) of maximum weight (on the complement) ⇐ ⇒ Find a set of vertices touching every edge (Vertex Cover – VC) minimum weight (on the complement)

a 10 b 5 c 3 d 9 e 3 f 13 a 10 c 3 d 9 e 3

1 / 16

slide-8
SLIDE 8

The Maximum Weight Clique Problem

Given a graph G with weight function w Find a clique – set of vertices all pairwise adjacent – of maximum weight ⇐ ⇒ Find a set of vertices without edge (Independent Set – IS) of maximum weight (on the complement) ⇐ ⇒ Find a set of vertices touching every edge (Vertex Cover – VC) minimum weight (on the complement)

a 10 b 5 c 3 d 9 e 3 f 13 a 10 c 3 d 9 e 3 Perfect philogeny Error- correcting codes Subgraph isomorphism

1 / 16

slide-9
SLIDE 9

Branch & Bound (CP) vs SAT Encoding Branch & Bound (CP) SAT Encoding

2 / 16

slide-10
SLIDE 10

Branch & Bound (CP) vs SAT Encoding Branch & Bound (CP)

Dedicated upper bound (coloring)

SAT Encoding

Weak upper bound (UP)

2 / 16

slide-11
SLIDE 11

Branch & Bound (CP) vs SAT Encoding Branch & Bound (CP)

Dedicated upper bound (coloring) Dedicated data structure (bitsets)

SAT Encoding

Weak upper bound (UP) No data structure

2 / 16

slide-12
SLIDE 12

Branch & Bound (CP) vs SAT Encoding Branch & Bound (CP)

Dedicated upper bound (coloring) Dedicated data structure (bitsets) Dedicated strategies (degree, color)

SAT Encoding

Weak upper bound (UP) No data structure VSIDS

2 / 16

slide-13
SLIDE 13

Branch & Bound (CP) vs SAT Encoding Branch & Bound (CP)

Dedicated upper bound (coloring) Dedicated data structure (bitsets) Dedicated strategies (degree, color) Backtracking

SAT Encoding

Weak upper bound (UP) No data structure VSIDS Conflict-Driven Clause Learning

2 / 16

slide-14
SLIDE 14

Branch & Bound (CP) vs SAT Encoding Branch & Bound (CP)

Dedicated upper bound (coloring) Dedicated data structure (bitsets) Dedicated strategies (degree, color) Backtracking

SAT Encoding

Weak upper bound (UP) No data structure VSIDS Conflict-Driven Clause Learning

We want the best of both worlds!

2 / 16

slide-15
SLIDE 15

Generalised Nogoods [Katsirelos and Bacchus 05][Ohrimenko, Stuckey and Codish 07]

Branch and propagate as a CP solver

3 / 16

slide-16
SLIDE 16

Generalised Nogoods [Katsirelos and Bacchus 05][Ohrimenko, Stuckey and Codish 07]

Branch and propagate as a CP solver Store every deduction made during propagation as an explanation clause (p1 ∧ p2 ∧ . . . ∧ pk) = ⇒ c with pi’s and c literals of the form x{=, =}v

3 / 16

slide-17
SLIDE 17

Generalised Nogoods [Katsirelos and Bacchus 05][Ohrimenko, Stuckey and Codish 07]

Branch and propagate as a CP solver Store every deduction made during propagation as an explanation clause (p1 ∧ p2 ∧ . . . ∧ pk) = ⇒ c with pi’s and c literals of the form x{=, =}v When failing, compute a conflict using the explanation graph

3 / 16

slide-18
SLIDE 18

Generalised Nogoods [Katsirelos and Bacchus 05][Ohrimenko, Stuckey and Codish 07]

Branch and propagate as a CP solver Store every deduction made during propagation as an explanation clause (p1 ∧ p2 ∧ . . . ∧ pk) = ⇒ c with pi’s and c literals of the form x{=, =}v When failing, compute a conflict using the explanation graph A global constraint “X is an independent set of weight larger than k”

◮ Compute an upper bound ◮ Prune w.r.t. this upper bound ◮ Need to compute explanations! 3 / 16

slide-19
SLIDE 19

Branching For any vertex v:

a 10 b 5 c 3 d 9 e 3 f 13

4 / 16

slide-20
SLIDE 20

Branching For any vertex v:

either v is in VC (xv = true)

a 10 b 5 c 3 d 9 e 3 f 13 a 10

4 / 16

slide-21
SLIDE 21

Branching For any vertex v:

either v is in VC (xv = true)

a 10 b 5 c 3 d 9 e 3 f 13

4 / 16

slide-22
SLIDE 22

Branching For any vertex v:

either v is in VC (xv = true)

  • r v is in IS (xv = false)

a 10 b 5 c 3 d 9 e 3 f 13 a 10

4 / 16

slide-23
SLIDE 23

Branching For any vertex v:

either v is in VC (xv = true)

  • r v is in IS (xv = false)

a 10 b 5 c 3 d 9 e 3 f 13 a 10 b 5 c 3 d 9 f 13

4 / 16

slide-24
SLIDE 24

Upper bound

Unweighted case: coloring

a 10 b 5 c 3 d 9 e 3 f 13

5 / 16

slide-25
SLIDE 25

Upper bound

Unweighted case: coloring A clique of size k requires k colors

a 10 b 5 c 3 d 9 e 3 f 13

5 / 16

slide-26
SLIDE 26

Upper bound

Unweighted case: coloring A clique of size k requires k colors The chromatic number χ(G) of G is an upper bound on its clique number ω(G)

a 10 b 5 c 3 d 9 e 3 f 13

5 / 16

slide-27
SLIDE 27

Upper bound

Unweighted case: coloring A clique of size k requires k colors The chromatic number χ(G) of G is an upper bound on its clique number ω(G) We work on the complement, so non-neighbors cannot share the same color ⇒ clique cover

a 10 b 5 c 3 d 9 e 3 f 13 a 10 b 5 c 3 d 9 e 3 f 13

5 / 16

slide-28
SLIDE 28

Upper bound

Unweighted case: clique cover An independent set of size k requires k cliques The chromatic number χ(G) of the complement of G is an upper bound on G’s independence number α(G) We work on the complement, so non-neighbors cannot share the same color ⇒ clique cover

a 10 b 5 c 3 d 9 e 3 f 13 a 10 b 5 c 3 d 9 e 3 f 13

5 / 16

slide-29
SLIDE 29

Upper bound

Weighted case: clique multi cover [Babel 94]

a 10 b 5 c 3 d 9 e 3 f 13

6 / 16

slide-30
SLIDE 30

Upper bound

Weighted case: clique multi cover [Babel 94] A vertex of weight w must be covered by w cliques

a 10 b 5 c 3 d 9 e 3 f 13

6 / 16

slide-31
SLIDE 31

Upper bound

Weighted case: clique multi cover [Babel 94] A vertex of weight w must be covered by w cliques The total number of clique is an upper bound on weight of the heaviest independent set

a 10 b 5 c 3 d 9 e 3 f 13

6 / 16

slide-32
SLIDE 32

Upper bound

Weighted case: clique multi cover [Babel 94] A vertex of weight w must be covered by w cliques The total number of clique is an upper bound on weight of the heaviest independent set Babel’s complexity depends on the number of colors (|E|k)

a 10 b 5 c 3 d 9 e 3 f 13

6 / 16

slide-33
SLIDE 33

Upper bound

Weighted case: clique multi cover [Babel 94] A vertex of weight w must be covered by w cliques The total number of clique is an upper bound on weight of the heaviest independent set Babel’s complexity depends on the number of colors (|E|k)

a 10 b 5 c 3 d 9 e 3 f 13

6 / 16

slide-34
SLIDE 34

Upper bound

Weighted case: clique multi cover [Babel 94] A vertex of weight w must be covered by w cliques The total number of clique is an upper bound on weight of the heaviest independent set Babel’s complexity depends on the number of colors (|E|k)

a 10 b 5 c 3 d 9 e 3 f 13

6 / 16

slide-35
SLIDE 35

Upper bound

Weighted case: clique multi cover [Babel 94] A vertex of weight w must be covered by w cliques The total number of clique is an upper bound on weight of the heaviest independent set Babel’s complexity depends on the number of colors (|E|k)

a 10 b 5 c 3 d 9 e 3 f 13

6 / 16

slide-36
SLIDE 36

Upper bound

Weighted case: clique multi cover [Babel 94] A vertex of weight w must be covered by w cliques The total number of clique is an upper bound on weight of the heaviest independent set Babel’s complexity depends on the number of colors (|E|k)

◮ method similar to [Tavares 16] (|V|3)

a 10 b 5 c 3 d 9 e 3 f 13 a 10 b 5 c 3 d 9 e 3 f 13

6 / 16

slide-37
SLIDE 37

Upper bound

Weighted case: clique multi cover [Babel 94] A vertex of weight w must be covered by w cliques The total number of clique is an upper bound on weight of the heaviest independent set Babel’s complexity depends on the number of colors (|E|k)

◮ method similar to [Tavares 16] (|V|3)

a 10 b 5 c 3 d 9 e 3 f 13 3

+

3

6 / 16

slide-38
SLIDE 38

Upper bound

Weighted case: clique multi cover [Babel 94] A vertex of weight w must be covered by w cliques The total number of clique is an upper bound on weight of the heaviest independent set Babel’s complexity depends on the number of colors (|E|k)

◮ method similar to [Tavares 16] (|V|3)

3

+

3 a 7 b 2 d 6 f 10

6 / 16

slide-39
SLIDE 39

Upper bound

Weighted case: clique multi cover [Babel 94] A vertex of weight w must be covered by w cliques The total number of clique is an upper bound on weight of the heaviest independent set Babel’s complexity depends on the number of colors (|E|k)

◮ method similar to [Tavares 16] (|V|3)

3

+

3 a 7 b 2 d 6 f 10

6 / 16

slide-40
SLIDE 40

Upper bound

Weighted case: clique multi cover [Babel 94] A vertex of weight w must be covered by w cliques The total number of clique is an upper bound on weight of the heaviest independent set Babel’s complexity depends on the number of colors (|E|k)

◮ method similar to [Tavares 16] (|V|3)

3

+

3

+

2

+

6 a 1 f 4

6 / 16

slide-41
SLIDE 41

Upper bound

Weighted case: clique multi cover [Babel 94] A vertex of weight w must be covered by w cliques The total number of clique is an upper bound on weight of the heaviest independent set Babel’s complexity depends on the number of colors (|E|k)

◮ method similar to [Tavares 16] (|V|3)

3

+

3

+

2

+

6 a 1 f 4

6 / 16

slide-42
SLIDE 42

Upper bound

Weighted case: clique multi cover [Babel 94] A vertex of weight w must be covered by w cliques The total number of clique is an upper bound on weight of the heaviest independent set Babel’s complexity depends on the number of colors (|E|k)

◮ method similar to [Tavares 16] (|V|3)

3

+

3

+

2

+

6

+

1 f 3

6 / 16

slide-43
SLIDE 43

Upper bound

Weighted case: clique multi cover [Babel 94] A vertex of weight w must be covered by w cliques The total number of clique is an upper bound on weight of the heaviest independent set Babel’s complexity depends on the number of colors (|E|k)

◮ method similar to [Tavares 16] (|V|3)

3

+

3

+

2

+

6

+

1

+

3

=18

f 3

6 / 16

slide-44
SLIDE 44

Pruning

[Babel 94]’s pruning rule: marginal cost

  • f adding a vertex to the IS

At most one vertex per clique in the IS

a 10 b 5 c 3 e 3 f 13 d 9 3

+

3

+

2

+

6

+

1

+

3

= 18 {a, b, c} {d, e, f} {b} {a, d, f} {a, f} {f} 7 / 16

slide-45
SLIDE 45

Pruning

[Babel 94]’s pruning rule: marginal cost

  • f adding a vertex to the IS

At most one vertex per clique in the IS E.g. if d ∈ IS then a, e, f cannot be in the IS, then:

a 10 b 5 c 3 e 3 f 13 d 9 3

+

3

+

2

+

6

+

1

+

3

= 18 {a, b, c} {d, e, f} {b} {a, d, f} {a, f} {f} 7 / 16

slide-46
SLIDE 46

Pruning

[Babel 94]’s pruning rule: marginal cost

  • f adding a vertex to the IS

At most one vertex per clique in the IS E.g. if d ∈ IS then a, e, f cannot be in the IS, then:

◮ No vertices from cliques included in N(d) ◮ Marginal cost of d ∈ IS is 4

a 10 b 5 c 3 e 3 f 13 d 9 3

+

3

+

2

+

6

+

1

+

3

= 14 {a, b, c} {d, e, f} {b} {a, d, f} 7 / 16

slide-47
SLIDE 47

Dominance

“Dual” rule: marginal cost of v ∈ VC

a 10 b 5 c 3 e 3 d 9 f 13 3

+

3

+

2

+

6

+

1

+

3

= 18 {a, b, c} {d, e, f} {b} {a, d, f} {a, f} {f} 8 / 16

slide-48
SLIDE 48

Dominance

“Dual” rule: marginal cost of v ∈ VC Lose w(f) = 13, gain at most

  • u∈N(f) w(u) = 22

a 10 b 5 c 3 e 3 d 9 f 13 3

+

3

+

2

+

6

+

1

+

3

= 18 {a, b, c} {d, e, f} {b} {a, d, f} {a, f} {f} 8 / 16

slide-49
SLIDE 49

Dominance

“Dual” rule: marginal cost of v ∈ VC Lose w(f) = 13, gain at most

  • u∈N(f) w(u) = 22

At most one vertex per clique in the IS

a 10 b 5 c 3 e 3 d 9 f 13 3

+

3

+

2

+

6

+

1

+

3

= 18 {a, b, c} {d, e, f} {b} {a, d, f} {a, f} {f} 8 / 16

slide-50
SLIDE 50

Dominance

“Dual” rule: marginal cost of v ∈ VC Lose w(f) = 13, gain at most

  • u∈N(f) w(u) = 22

At most one vertex per clique in the IS

◮ Gain at most 1 per neighbor clique

a 10 b 5 c 3 e 3 d 9 f 13 3

+

3

+

2

+

6

+

1

+

3

= 18 {a, b, c} {d, e, f} {b} {a, d, f} {a, f} {f} 8 / 16

slide-51
SLIDE 51

Dominance

“Dual” rule: marginal cost of v ∈ VC Lose w(f) = 13, gain at most

  • u∈N(f) w(u) = 22

At most one vertex per clique in the IS

◮ Gain at most 1 per neighbor clique ◮ Lose 13, win ≤ 13: might as well be in IS

a 10 b 5 c 3 e 3 d 9 f 13 3

+

3

+

2

+

6

+

1

+

3

= 13 {a, b, c} {d, e, f} {b} {a, d, f} {a, f} {f} 8 / 16

slide-52
SLIDE 52

Explanation

a 10 b 5 c 3 d 9 e 3 f 13 3

+

3

+

2

+

6

+

1

+

3

= 18 {a, b, c} {d, e, f} {a, d, f} {b} {a, f} {f} 9 / 16

slide-53
SLIDE 53

Explanation

Residual graph after two decisions: g ∈ VC and h ∈ VC

a 10 b 5 c 3 d 9 e 3 f 13 h 5 g 6 3

+

3

+

2

+

6

+

1

+

3

= 18 {a, b, c} {d, e, f} {a, d, f} {b} {a, f} {f} 9 / 16

slide-54
SLIDE 54

Explanation

Residual graph after two decisions: g ∈ VC and h ∈ VC We have found an IS of weight 21

◮ Failure since 21 ≥ 18

a 10 b 5 c 3 d 9 e 3 f 13 h 5 g 6 3

+

3

+

2

+

6

+

1

+

3

= 18 {a, b, c} {d, e, f} {a, d, f} {b} {a, f} {f} 9 / 16

slide-55
SLIDE 55

Explanation

Residual graph after two decisions: g ∈ VC and h ∈ VC We have found an IS of weight 21

◮ Failure since 21 ≥ 18

Explanation: minimal clause that entails the current upper bound when falsified

a 10 b 5 c 3 d 9 e 3 f 13 h 5 g 6 3

+

3

+

2

+

6

+

1

+

3

= 18 {a, b, c} {d, e, f} {a, d, f} {b} {a, f} {f} 9 / 16

slide-56
SLIDE 56

Explanation

Residual graph after two decisions: g ∈ VC and h ∈ VC We have found an IS of weight 21

◮ Failure since 21 ≥ 18

Explanation: minimal clause that entails the current upper bound when falsified Trivial explanation: g ∈ IS or h ∈ IS

a 10 b 5 c 3 d 9 e 3 f 13 h 5 g 6 3

+

3

+

2

+

6

+

1

+

3

= 18 {a, b, c} {d, e, f} {a, d, f} {b} {a, f} {f} 9 / 16

slide-57
SLIDE 57

Explanation

Residual graph after two decisions: g ∈ VC and h ∈ VC We have found an IS of weight 21

◮ Failure since 21 ≥ 18

Explanation: minimal clause that entails the current upper bound when falsified Trivial explanation: g ∈ IS or h ∈ IS

a 10 b 5 c 3 d 9 e 3 f 13 h 5 g 6 3

+

3

+

2

+

6

+

1

+

3

= 18 {a, b, c} {d, e, f} {a, d, f} {b} {a, f} {f} 9 / 16

slide-58
SLIDE 58

Explanation

Residual graph after two decisions: g ∈ VC and h ∈ VC We have found an IS of weight 21

◮ Failure since 21 ≥ 18

Explanation: minimal clause that entails the current upper bound when falsified Trivial explanation: g ∈ IS or h ∈ IS

a 10 b 5 c 3 d 9 e 3 f 13 h 5 g 6 3

1 2

3

+

3

+

2

+

6

+

1

+

3

= 18 {a, b, c} {d, e, f} {a, d, f} {b, g} {a, f, g} {f, g} 9 / 16

slide-59
SLIDE 59

Explanation

Residual graph after two decisions: g ∈ VC and h ∈ VC We have found an IS of weight 21

◮ Failure since 21 ≥ 18

Explanation: minimal clause that entails the current upper bound when falsified Trivial explanation: g ∈ IS or h ∈ IS Reduced explanation: h ∈ IS

a 10 b 5 c 3 d 9 e 3 f 13 h 5 g 6 3

1 2

3

+

3

+

2

+

6

+

1

+

3

= 18 {a, b, c} {d, e, f} {a, d, f} {b, g} {a, f, g} {f, g} 9 / 16

slide-60
SLIDE 60

Explanation

The stack of decisions/deductions contains literals [v ∈ VC] or [v ∈ IS]

10 / 16

slide-61
SLIDE 61

Explanation

The stack of decisions/deductions contains literals [v ∈ VC] or [v ∈ IS] A literal [v ∈ IS] is followed by the literals [u ∈ VC] for u ∈ N(v)

10 / 16

slide-62
SLIDE 62

Explanation

The stack of decisions/deductions contains literals [v ∈ VC] or [v ∈ IS] A literal [v ∈ IS] is followed by the literals [u ∈ VC] for u ∈ N(v)

Explanation Algorithm

Explore the stack of decisions/deductions in reverse order

◮ Given a literal [v ∈ VC]: try to remove it, and keep it otherwise 10 / 16

slide-63
SLIDE 63

Explanation

The stack of decisions/deductions contains literals [v ∈ VC] or [v ∈ IS] A literal [v ∈ IS] is followed by the literals [u ∈ VC] for u ∈ N(v)

Explanation Algorithm

Explore the stack of decisions/deductions in reverse order

◮ Given a literal [v ∈ VC]: try to remove it, and keep it otherwise ◮ Given a literal [v ∈ VC]: compute the cost of removing it 10 / 16

slide-64
SLIDE 64

Explanation

The stack of decisions/deductions contains literals [v ∈ VC] or [v ∈ IS] A literal [v ∈ IS] is followed by the literals [u ∈ VC] for u ∈ N(v)

Explanation Algorithm

Explore the stack of decisions/deductions in reverse order

◮ Given a literal [v ∈ VC]: try to remove it, and keep it otherwise ◮ Given a literal [v ∈ VC]: compute the cost of removing it ◮ Given a literal [v ∈ IS], 10 / 16

slide-65
SLIDE 65

Explanation

The stack of decisions/deductions contains literals [v ∈ VC] or [v ∈ IS] A literal [v ∈ IS] is followed by the literals [u ∈ VC] for u ∈ N(v)

Explanation Algorithm

Explore the stack of decisions/deductions in reverse order

◮ Given a literal [v ∈ VC]: try to remove it, and keep it otherwise ◮ Given a literal [v ∈ VC]: compute the cost of removing it ◮ Given a literal [v ∈ IS], if the cost of removing [u ∈ VC] for u ∈ N(v) is too high: ⋆ keep it, and remove [u ∈ VC] for u ∈ N(v) 10 / 16

slide-66
SLIDE 66

Explanation

The stack of decisions/deductions contains literals [v ∈ VC] or [v ∈ IS] A literal [v ∈ IS] is followed by the literals [u ∈ VC] for u ∈ N(v)

Explanation Algorithm

Explore the stack of decisions/deductions in reverse order

◮ Given a literal [v ∈ VC]: try to remove it, and keep it otherwise ◮ Given a literal [v ∈ VC]: compute the cost of removing it ◮ Given a literal [v ∈ IS], if the cost of removing [u ∈ VC] for u ∈ N(v) is too high: ⋆ keep it, and remove [u ∈ VC] for u ∈ N(v) ◮ Otherwise: ⋆ remove [v ∈ IS] and try to remove as many [u ∈ VC] for u ∈ N(v) as possible 10 / 16

slide-67
SLIDE 67

Experimental evaluation: methods

mwclq [Fang et al. 16] wlmc [Jiang et al. 17] cliquer [Ostergard 01] OTClique [Shimuzu et al. 17] Tavares [Tavares 16] (implementation [McCreesh et al. 17])

11 / 16

slide-68
SLIDE 68

Experimental evaluation: benchmarks

12 / 16

slide-69
SLIDE 69

Experimental evaluation: benchmarks

DIMACS Maximum Clique BHOSLIB Maximum Independent Set

12 / 16

slide-70
SLIDE 70

Experimental evaluation: benchmarks

DIMACS Maximum Clique, w(vi) = (i mod 200) + 1 BHOSLIB Maximum Independent Set, w(vi) = (i mod 200) + 1

12 / 16

slide-71
SLIDE 71

Experimental evaluation: benchmarks

DIMACS Maximum Clique, w(vi) = (i mod 200) + 1 BHOSLIB Maximum Independent Set, w(vi) = (i mod 200) + 1 Structured benchmarks proposed by citationMcCreesh et al. 17

◮ WDP Winner Determination Problem in combinatorial auctions ◮ EC-CODE Design of error-correction codes ◮ REF Optimisation of university evaluation ◮ KIDNEY Maximizes the number/emergency of kidney exchanges 12 / 16

slide-72
SLIDE 72

Experimental evaluation: results on classes

Objective function: Geometric average weight

13 / 16

slide-73
SLIDE 73

Experimental evaluation: results on classes

Objective function: Geometric average weight cdcl wlmc mwclq cliquer OTClique Tavares

  • bjective objective objective
  • bjective
  • bjective
  • bjective

BHOSLIB (40) 4672.66 3770.83 4598.76 835.05 1619.57 4277.46 WDP (50) 84.95M 85.53M 85.53M 85.53M 85.53M 84.81M EC-CODE (15) 97.31 97.31 96.88 97.31 97.31 97.31 DIMACS (160) 3277.55 3232.41 3252.04 2079.63 2496.57 3146.91 REF (129) 129.82 128.11 128.61 105.06 117.88 129.24 KIDNEY (188) 549.71B 549.41B 516.48B 537.69B 540.15B 544.41B

13 / 16

slide-74
SLIDE 74

Experimental evaluation: global results

Mean normalised gap to the best solution average over every instance of:

maximum weight u minimum weight l gap of weight g(w) =

  • u−w

u−l

if u > l

  • therwise

◮ 0 if best, 1 if worst

0.1 0.2 0.3 101 102 103 104 105 106 107 Normalised gap to best CPU time (ms)

cdcl wlmc mwclq cliquer OTClique Tavares

14 / 16

slide-75
SLIDE 75

PhD Thesis on combinatorial oprimization / machine learning with Renault

Based at LAAS (Toulouse), visits to Renault (Paris) Fundamental research / Industrial applications

◮ Routing in workshop, Car sequencing, Project Scheduling, ?

Open topic: CDCL, DNN, Monte-Carlo tree search,... Attractive Salary Flexible starting date (end of 2018 to late spring 2019)

  • Fig. 1 – Cantine du LAAS
  • Fig. 2 – QG Renault

15 / 16

slide-76
SLIDE 76

Questions?

16 / 16