Filtering Algorithms based on Graph Theory JeanCharles REGIN
Filtering Algorithms based on Graph Theory Jean-Charles REGIN ILOG, Sophia Antipolis regin@ilog. fr copyright Jean-Charles Regin 2004 1
Plan o CP o Graph Theory: Flows o Global cardinality constraints: based on flow o o algorithms Global cardinality with costs: based on minimum cost flow Alldiff constraint: matching Symmetric alldiff constraint: symmetric matching Conclusion copyright Jean-Charles Regin 2004 2
Plan o CP o Graph Theory: Flows o Global cardinality constraints: based on flow o o algorithms Global cardinality with costs: based on minimum cost flow Alldiff constraint: matching Symmetric alldiff constraint: symmetric matching Conclusion copyright Jean-Charles Regin 2004 3
Constraint Programming o In CP a problem is defined from: - variables with possible values (domain) - constraints o Domain can be discrete or continuous, symbolic values or numerical values o Constraints express properties that have to be satisfied copyright Jean-Charles Regin 2004 4
Problem = conjunction of subproblems o In CP a problem can be viewed as a conjunction of sub-problems that we are able to solve o A sub-problem can be trivial: x < y or complex: search for a feasible flow o A sub-problem = a constraint copyright Jean-Charles Regin 2004 5
Constraints o o Predefined constraints: arithmetic (x < y, x = y +z, |x-y| > k, alldiff, cardinality, sequence … Constraints given in extension by the list of allowed (or forbidden) combinations of values user-defined constraints: any algorithm can be encapsulated Logical combination of constraints using OR, AND, NOT, XOR operators. Sometimes called meta-constraints copyright Jean-Charles Regin 2004 6
Filtering o We are able to solve a sub-problem: a method is available o CP uses this method to remove values from domain that do not belong to a solution of this sub-problem: filtering or domain-reduction o E. g: x < y and D(x)=[10, 20], D(y)=[5, 15] => D(x)=[10, 14], D(y)=[11, 15] copyright Jean-Charles Regin 2004 7
Filtering o A filtering algorithm is associated with each constraint (sub-problem). o Can be simple (x < y) or complex (alldiff) o Theoretical basics: arc consistency, remove all the values that do not belong to a solution of the underlined sub-problem. copyright Jean-Charles Regin 2004 8
Arc consistency o All the values which do not belong to any solution of the constraint are deleted. o Example: Alldiff({x, y, z}) with D(x)=D(y)={0, 1}, D(z)={0, 1, 2} the two variables x and y take the values 0 and 1, thus z cannot take these values. FA by AC => 0 and 1 are removed from D(z) copyright Jean-Charles Regin 2004 9
Propagation o Domain Reduction due to one constraint can lead to new domain reduction of other variables o When a domain is modified all the constraints involving this variable are studied and so on. . . copyright Jean-Charles Regin 2004 10
Why Propagation? o Idea: problem = conjunction of easy sub-problems. o Sub-problems: local point of view. Problem: global point of view. Propagation tries to obtain a global point of view from independent local point of view o The conjunction is stronger that the union of independent resolution copyright Jean-Charles Regin 2004 11
Search o Backtrack algorithm with strategies: try to successively assign variables with values. If a dead-end occurs then backtrack and try another value for the variable o Strategy: define which variable and which value will be chosen. o After each domain reduction (i. e assignment) filtering and propagation are triggered copyright Jean-Charles Regin 2004 12
Constraint Programming o 3 notions: - constraint network: variables, domains constraints + filtering (domain reduction) - propagation - search procedure (assignments + backtrack) copyright Jean-Charles Regin 2004 13
Plan o CP o Graph Theory: Flows o Global cardinality constraints: based on flow o o algorithms Global cardinality with costs: based on minimum cost flow Alldiff constraint: matching Symmetric alldiff constraint: symmetric matching Conclusion copyright Jean-Charles Regin 2004 14
Graph Theory o o o o Directed graph or digraph G=(X, U), X set of nodes, U set of arcs A path from v 1 to vk is a set of nodes [v 1, …, vk] such that (vi, vi+1) is an arc for every i in [1, . . k-1] A path is simple if all its nodes are distinct A path is a cycle iff k >1 and v 1=vk Length(p) is the sum of the costs of the arcs contained in p A shortest path from s to t is a path from s to t whose length is minimum There is a simple shortest path copyright Jean-Charles Regin 2004 15
Flows o Let G be a graph in which every arc (i, j) is associated with 2 integers: m l(i, j) the lower bound capacity of the arc m u(i, j) the upper bound capacity of the arc o A flow is a function f satisfying: m For any arc (i, j), f(i, j) represents the amount of some commodity that can ``flow'' through the arc. Such a flow is permitted only in the indicated direction of the arc, i. e. , from i to j. For convenience, we assume f(i, j)=0 if (i, j) is not an arc. m A conservation law is observed at each node: for every node j: ∑ f(i, j) = ∑ f(j, k). copyright Jean-Charles Regin 2004 16
Flows o The feasible flow problem: m Does there exist a flow in G that satisfies the capacity constraints? That is find f such that for every arc (i, j) in U(G): l(i, j) ≤ f(i, j) ≤ u(i, j). o The problem of the maximum flow for an arc (i, j): m Find a feasible flow in G for which the value of f(i, j) is maximum. copyright Jean-Charles Regin 2004 17
Flows o Without loss of generality, and to overcome notational difficulties, we will consider that: m if (i, j) is an arc of G then (j, i) is not an arc of G. m all boundaries of capacities are nonnegative integers. o If all the upper bounds and all the lower bounds are integers and if there exists a feasible flow, then for any arc (i, j) there exists a maximum flow from j to i which is integral on every arc in G copyright Jean-Charles Regin 2004 18
Plan o CP o Graph Theory: Flows o Global cardinality constraints: based on flow o o algorithms Global cardinality with costs: based on minimum cost flow Alldiff constraint: matching Symmetric alldiff constraint: symmetric matching Conclusion copyright Jean-Charles Regin 2004 19
Global Cardinality Constraint o GCC(X, {li}, {ui}) o Defined on a set X of variables, the number of times each value vi can be taken must be in a given interval [li, ui] o Example: D(x 1)={a, b, c, d}, D(x 2)={a, b, c, d}, D(x 3)={b, c}, D(x 4)={c, d}. Values b and c must be taken at most 2, values a and d must be taken at least 1. copyright Jean-Charles Regin 2004 20
GCC Peter M (1, 2) Paul Mary D (1, 2) John N (1, 1) Bob B (0, 2) Mike O (0, 2) Julia copyright Jean-Charles Regin 2004 21
Value Network Default Orientation Peter M (1, 2) Paul t Mary D (1, 2) John N (1, 1) Bob B (0, 2) Mike s O (0, 2) Julia (7, 7) copyright Jean-Charles Regin 2004 22
Feasible Flow Black Orientation Peter M (1, 2) Paul t Mary D (1, 2) John N (1, 1) Bob B (0, 2) Mike s O (0, 2) Julia (7, 7) copyright Jean-Charles Regin 2004 23
Successive augmentation o Successive augmentation are computed in a particular graph: The residual graph o The residual graph has no lower bounds o In our case this algorithm is equivalent to the best ones. copyright Jean-Charles Regin 2004 24
Residual Graph Black Orientation Green Orientation t Peter M (1, 2) Paul Mary D (1, 2) 2 John N (1, 1) 1 1 s 2 Bob B (0, 2) Mike 2 O (0, 2) Julia 6 (7, 7) If f(i, j) < u(i, j) then (i, j) and r(i, j)= u(i, j) – f(i, j) If f(i, j) > l(i, j) then (j, i) and r(j, i)= f(i, j) – l(i, j) 25
Residual Graph Black Orientation Green Orientation t Peter M (1, 2) Paul Mary D (1, 2) 2 John N (1, 1) 1 1 s 2 Bob B (0, 2) Mike 2 O (0, 2) Julia 6 (7, 7) 26
Residual Graph Black Orientation Green Orientation t Peter M (1, 2) Paul Mary D (1, 2) 2 John N (1, 1) 1 Bob B (0, 2) Mike 1 s 2 O (0, 2) Julia 5 (7, 7) If f(i, j) < u(i, j) then (i, j) and r(i, j)= u(i, j) – f(i, j) If f(i, j) > l(i, j) then (j, i) and r(j, i)= f(i, j) – l(i, j) 27
A Solution Default Orientation Peter M (1, 2) Paul t Mary D (1, 2) John N (1, 1) Bob B (0, 2) Mike 2 2 s 2 O (0, 2) Julia 7 7 flow value (7, 7) Sum = 7 copyright Jean-Charles Regin 2004 28
Properties o The flow value xij of (i, j) can be increased iff there is a path from j to i in R - {(j, i)} j i o The flow value xij of (i, j) can be decreased iff there is a path from i to j in R - {(i, j)} j i copyright Jean-Charles Regin 2004 29
Arc consistency o The flow value of an arc is constant iff the arc does not belong to a directed cycle of the residual graph o Definition of strongly connected components copyright Jean-Charles Regin 2004 30
Filtering algorithm for GCC o Compute a feasible flow o Compute the strongly connected components o Remove every arc with a zero flow value for which the ends belong to two different components o Linear algorithm achieving arc consistency o work well due to (0, 1) arcs copyright Jean-Charles Regin 2004 31
GCC Peter M (1, 2) Paul Mary D (1, 2) John N (1, 1) Bob B (0, 2) Mike O (0, 2) Julia copyright Jean-Charles Regin 2004 32
GCC after AC Peter M (1, 2) Paul Mary D (1, 2) John N (1, 1) Bob B (0, 2) Mike O (0, 2) Julia copyright Jean-Charles Regin 2004 33
Plan o CP o Graph Theory: Flows o Global cardinality constraints: based on flow o o algorithms Global cardinality with costs: based on minimum cost flow Alldiff constraint: matching Symmetric alldiff constraint: symmetric matching Conclusion copyright Jean-Charles Regin 2004 34
GCC with costs o GCC with costs = Global cardinality constraint + Sum constraint on the assignment costs o AC algorithm which takes into account the globality of the constraint + the costs copyright Jean-Charles Regin 2004 35
Minimum cost Flows o Let G be a graph in which every arc (i, j) is associated with 3 integers: m l(i, j) the lower bound capacity of the arc m u(i, j) the upper bound capacity of the arc m c(i, j) the cost of carrying one unit of flow o The cost of a flow f is cost(f)=∑ f(i, j) c(i, j) o The minimum cost flow problem: m If there exists a feasible flow, find a feasible flow f such that cost(f) is minimum. copyright Jean-Charles Regin 2004 36
GCC with costs Peter 1 4 Paul 1 4 3 Mary 1 3 John M (1, 2) D (1, 2) 1 N (1, 1) 1 Bob B (0, 2) 1 Mike 1 1 O (0, 2) Julia Sum < 12 copyright Jean-Charles Regin 2004 37
Arc consistency Peter 1 Paul Mary John M (1, 2) 1 D (1, 2) 1 1 N (1, 1) 1 Bob B (0, 2) 1 Mike 1 1 O (0, 2) Julia Sum < 12 copyright Jean-Charles Regin 2004 38
GCC with costs o Consistency can be computed by searching for a minimum cost flow o Arc consistency can be computed by searching for shortest paths in a special graph. copyright Jean-Charles Regin 2004 39
Minimum Cost flow o Similar to feasible flow except that: shortest paths are considered. o length of an arc = reduced cost of the arc o Reduced costs are used to work with nonnegative value (useful for shortest paths algorithms), but the principles remains the same with residual costs. o We will consider here only the residual costs copyright Jean-Charles Regin 2004 40
Minimum Cost Flow Default Orientation t Peter 1 4 Paul 1 4 3 Mary 1 3 John M (1, 2) D (1, 2) 1 N (1, 1) 1 Bob B (0, 2) 1 Mike 1 s 1 O (0, 2) Julia (7, 7) copyright Jean-Charles Regin 2004 41
A Solution Default Orientation t Peter 1 4 Paul 1 4 3 Mary 1 3 John M (1, 2) 2 D (1, 2) 1 s N (1, 1) 1 Bob B (0, 2) 1 Mike 2 1 1 2 O (0, 2) Julia 7 7 flow value (7, 7) Sum = 7 42
Residual Graph Black Orientation Green Orientation t Peter 1 4 Paul 1 4 3 Mary 1 3 John M (1, 2) D (1, 2) 1 1 Bob B (0, 2) 1 Mike 1 s N (1, 1) 1 2 O (0, 2) Julia copyright Jean-Charles Regin 2004 43
Residual Costs Black Orientation Green Orientation t Peter -1 4 Paul -1 4 3 Mary -1 3 John M (1, 2) D (1, 2) -1 -1 Bob B (0, 2) -1 Mike -1 s N (1, 1) 1 2 O (0, 2) Julia -1 residual cost = - cost if opposite arc copyright Jean-Charles Regin 2004 44
Residual Costs Black Orientation Green Orientation t Peter -1 4 Paul -1 4 3 Mary -1 3 John M (1, 2) D (1, 2) -1 -1 Bob B (0, 2) -1 Mike -1 s N (1, 1) 1 2 O (0, 2) Julia -1 residual cost = - cost if opposite arc 1 residual cost = cost if arc 45
Shortest path o d(i, j) = length of the shortest path which does not use (i, j) in the residual graph. The length is the sum of the residual costs of the arc contained in the path. copyright Jean-Charles Regin 2004 46
Residual Costs Black Orientation Green Orientation t Peter -1 4 Paul -1 4 3 Mary -1 3 John M (1, 2) D (1, 2) -1 -1 Bob B (0, 2) -1 Mike -1 s N (1, 1) 1 2 O (0, 2) Julia d(M, D)=3 + (-1) = 2 47
Minimum cost flow o If the feasible flow is computed by augmenting the flow along shortest paths then the solution is optimal. o Complexity O(n S(n, m, )) where is the maximum cost value. copyright Jean-Charles Regin 2004 48
Arc consistency o The flow value xij of (i, j) can be increased iff there is a path from j to i in R - {(j, i)} j i o The flow value xij of (i, j) can be decreased iff there is a path from i to j in R - {(i, j)} j i copyright Jean-Charles Regin 2004 49
Arc consistency o Let optcost be the value of the minimum cost flow, and H be the maximum value of the assignments. o The flow value of an arc (i, j) can be increased if and only if: rcij + d(j, i) + optcost < H The cost of the directed cycle is computed, that is the cost of rerouting the flow. copyright Jean-Charles Regin 2004 50
Can (M, John) be increased? Black Orientation Green Orientation t Peter -1 4 Paul -1 4 3 Mary -1 3 John M (1, 2) D (1, 2) -1 -1 Bob B (0, 2) -1 Mike -1 s N (1, 1) 1 2 O (0, 2) Julia copyright Jean-Charles Regin 2004 51
Can (M, John) be increased? Black Orientation Green Orientation t Peter -1 4 Paul -1 4 3 Mary -1 3 John M (1, 2) D (1, 2) -1 -1 Bob B (0, 2) -1 Mike -1 s N (1, 1) 1 2 O (0, 2) Julia rc(M, John) + d(John, M) + optcost = 3 + (-1+4+(-1)) + 7 = 12 > 11: NO copyright Jean-Charles Regin 2004 52
Arc consistency o Similar reasoning for decreasing the flow value. o Complexity O(m S(n, m, )) o can be improved! copyright Jean-Charles Regin 2004 53
AC Improvement o Problem: shortest paths from j to i cannot contain (j, i). o How the computations can be grouped, since the graph changes for each computation? copyright Jean-Charles Regin 2004 54
AC Improvement o Problem: shortest paths from j to i cannot contain (j, i). o How the computations can be grouped, since the graph changes for each computation? o The graph does not change for (0, 1) arcs! copyright Jean-Charles Regin 2004 55
AC Improvement o Between variables and values there are only (0, 1) arcs. o If we search for increasing the flow value of (i, j) then xij=0 and (j, i) does not exist in R o If we search for decreasing the flow value of (i, j) then xij=1 and (i, j) does not exist in R copyright Jean-Charles Regin 2004 56
AC Improvement o The computation can be grouped: For each variable, the shortest paths to all the values are computed o Complexity O(n S(n, m, )). o Can be improved by searching for shortest path from the values that are assigned. o Reduced costs can be used instead of residual cost to have only nonnegative costs and to improve the search for shortest paths. copyright Jean-Charles Regin 2004 57
Sum of all different var o Constraint: x 1+x 2+x 3 < H and alldiff(x 1, x 2, x 3). o Can be represented as a gcc with costs. copyright Jean-Charles Regin 2004 58
Sum of all different var x 1 x 2 x 3 1 2 2 5 1 1 2 3 3 5 The cost of an arc involving a value is equal to this value Can be generalized to cardinality constraints copyright Jean-Charles Regin 2004 59
Scalar Product of all different var x 1 x 2 x 3 3*1=3 1 3*2=6 4*1=4 2 2*2=4 3 2*3=6 4*5=20 5 3 x 1 + 2 x 2 + 4 x 3 = s The cost of an arc involving a value is equal to the coefficient of the variable multiplied by the value Can be generalized to cardinality constraints copyright Jean-Charles Regin 2004 60
Plan o CP o Graph Theory: Flows o Global cardinality constraints: based on flow o o algorithms Global cardinality with costs: based on minimum cost flow Alldiff constraint: matching Symmetric alldiff constraint: symmetric matching Conclusion copyright Jean-Charles Regin 2004 61
Matching o A matching is a set of edges no two of which have a common endpoint. o A matching M covers X if all the nodes is an endpoint of M copyright Jean-Charles Regin 2004 62
Alldiff constraint The value graph: 1 x 1 D(x 1)={1, 2} D(x 2)={2, 3} x 2 D(x 3)={1, 3} D(x 4)={3, 4} x 3 D(x 5)={2, 4, 5, 6} D(x 6)={5, 6, 7} x 4 2 3 4 5 x 5 6 x 6 copyright Jean-Charles Regin 2004 7 63
Matching 1 x 1 2 x 2 3 x 3 4 x 4 5 x 5 6 x 6 copyright Jean-Charles Regin 2004 7 64
Arc consistency Berge’s theorem: An edge belong to some but not all maximum matching, iff, for an arbitrary matching it belongs to either an even alternating path which begins at a free vertex, or an even alternating cycle. copyright Jean-Charles Regin 2004 65
Alternating path 1 x 1 2 x 2 3 x 3 4 x 4 5 x 5 6 Free vertex x 6 copyright Jean-Charles Regin 2004 7 66
Alternating cycle 1 x 1 2 x 2 3 x 3 4 x 4 5 x 5 6 x 6 copyright Jean-Charles Regin 2004 7 67
Alldiff constraint 1 x 1 2 x 2 3 x 3 4 x 4 5 x 5 6 x 6 copyright Jean-Charles Regin 2004 7 68
Arc consistency The value graph: D(x 1)={1, 2} D(x 2)={2, 3} D(x 3)={1, 3} D(x 4)={4} D(x 5)={5, 6} D(x 6)={5, 6, 7} 1 x 1 2 x 2 3 x 3 4 x 4 5 x 5 6 x 6 copyright Jean-Charles Regin 2004 7 69
Alldiff constraint o Compute a matching which covers X o Compute the strongly connected components o Remove every unmatched arc for which the ends belong to two different components o Consistency: O(n 1/2 m)=O(n 3/2 d) from scratch O(knd) incremental o Linear algorithm achieving arc consistency O(m)=O(nd) copyright Jean-Charles Regin 2004 70
Plan o CP o Graph Theory: Flows o Global cardinality constraints: based on flow o o algorithms Global cardinality with costs: based on minimum cost flow Alldiff constraint: matching Symmetric alldiff constraint: symmetric matching Conclusion copyright Jean-Charles Regin 2004 71
The symmetric alldiff o Goal: group entities by pair o Example: aircraft pilots, nurses … List of compatibility: bob can work with john and peter john can work with bob and mike can work with peter and john peter can work with bob and mike john bob copyright Jean-Charles Regin 2004 mike peter 72
Possible model o One variable person john values = variables D(Vjohn)={bob, mike} bob peter D(Vbob)={john, peter} o Constraints: All. Diff(Vjohn, Vbob, Vpeter, Vmike) + i, j: (Vi=j <=> Vj=i) If bob works with john then john works with bob copyright Jean-Charles Regin 2004 mike 73
Symmetric Alldiff o A Symmetric Alldiff Constraint takes into account SIMULTANEOUSLY: All. Diff(Vjohn, Vbob, Vpeter, Vmike) + i, j: (Vi=j <=> Vj=i) copyright Jean-Charles Regin 2004 74
Symmetric Alldiff o Why is it interesting? D(x)={y, z}, D(y)={x, z} D(z)={x, y} Nothing is deduced There is no solution! x y copyright Jean-Charles Regin 2004 z 75
Why is it important? c a b d copyright Jean-Charles Regin 2004 76
Why is it important? c c a a b b d d copyright Jean-Charles Regin 2004 77
Why is it important? c c a a b b d d copyright Jean-Charles Regin 2004 78
Non bipartite matching j i d e a b h c g f copyright Jean-Charles Regin 2004 79
Non bipartite matching j i d e a b h c g f e is mark even copyright Jean-Charles Regin 2004 80
Non bipartite matching j i d e a b h c g f e is mark odd copyright Jean-Charles Regin 2004 81
Non bipartite matching o In bipartite graph the edge can be oriented (from one set to another set) o In non bipartite graph this is impossible! o We loose the efficient algorithm for the alldiff constraint copyright Jean-Charles Regin 2004 82
Non bipartite matching o Idea: Edmond’s algorithm o Improvement by Tarjan and other o Complexity O(nm (n, m)) easy to implement O(nm) not to hard O(n 1/2 m) : 42 pages of non intuitive demonstration copyright Jean-Charles Regin 2004 83
Arc consistency o Pb: find all edges that do not belong to any matching which covers X o First solution: for each edge in turn: remove the two extremities, search for a matching which covers X-{e 1, e 2} Complexity : m. O(m)=O(m 2) (because incremental algorithm) copyright Jean-Charles Regin 2004 84
Arc consistency o We propose an algorithm in n. O(m)=O(nm) o Berge’s theorem: An edge belong to some but not all maximum matching, iff, for an arbitrary matching it belongs to either an even alternating path which begins at a free vertex, or an even alternating cycle. copyright Jean-Charles Regin 2004 85
Arc consistency o No free vertex. Thus only even alternating cycles have to be identified o Idea: alternating cycle = a matching edge {u, v} + alternating path from v to u o Algorithm: for each matching edge {u, v} in turn we identify the edge {w, u} that can form a cycle with an alternating path from v (idem from u) copyright Jean-Charles Regin 2004 86
a b c d e f g h i j copyright Jean-Charles Regin 2004 87
a b c d e The search starts from j f g h i j copyright Jean-Charles Regin 2004 88
a b c d This arc is not traversed e f g h i j copyright Jean-Charles Regin 2004 89
Arc consistency o Algorithm in O(nm)=O(n 2 d) o Problems: - non incremental algorithm - complexity too high for certain applications o Solution: a filtering algorithm with a lower complexity copyright Jean-Charles Regin 2004 90
Filtering algorithm o New Proposition: During the search for an alternating path: If one of the extremities of an edge is reached and if the edge is not traversed then the edge does not belong to any maximum matching copyright Jean-Charles Regin 2004 91
Filtering algorithm u v a b copyright Jean-Charles Regin 2004 92
Filtering algorithm We start from v u v a b This edge is removed copyright Jean-Charles Regin 2004 93
Filtering algorithm We start from u u v a b This edge is NOT removed copyright Jean-Charles Regin 2004 94
Filtering algorithm o 1) An edge is arbitrary chosen o 2) Search for an alternating path o 3) If no deletion occurs then stop Else goto 1) o Complexity O(m) per deletion o We can also use credit/debit copyright Jean-Charles Regin 2004 95
Improvements o Use the classical alldiff constraint o Search for 2 -connected components and cutpoints copyright Jean-Charles Regin 2004 96
Improvements o Use the classical alldiff constraint o Search for 2 -connected components and cutpoints 2 -connected component with an EVEN number of nodes copyright Jean-Charles Regin 2004 97
Improvements o Use the classical alldiff constraint o Search for 2 -connected components and cutpoints 2 -connected component with an ODD number of nodes copyright Jean-Charles Regin 2004 98
Results o Best compromise is: - maintain the consistency by maintaining a maximum matching in a non bipartite graph - use the filtering algorithm we propose - use the classical alldiff AC algorithm - use the improvements we proposed copyright Jean-Charles Regin 2004 99
Symmetric alldiff o Consistency for a symmetric alldiff constraint: O(nm), incremental algorithm (similar to alldiff) o Arc consistency for a symmetric alldiff constraint: O(nm) (alldiff O(m)) o Filtering algorithm: O(m) per deletion copyright Jean-Charles Regin 2004 100
References o Graph Theory: books of Tarjan, Lawler, Berge, Golumbic, Gondran & Minoux o Flows: books of Ahuja & Magnanti & Orlin, Ford & Fulkerson o Integration of OR in CP: book of Milano. copyright Jean-Charles Regin 2004 101
Conclusion o Filtering algorithms are quite important o Global constraints are quite important o Flows for integers and matchings are powerful o Integration of flow algorithms or matching algorithm in filtering algorithm dramatically improve CP o A lot of work can be done on this integration! copyright Jean-Charles Regin 2004 102
- Slides: 102