A Fast Algorithm for Generalized Arc Consistency of the Alldifferent Constraint
Proceedings of the Twenty-Seventh International Joint Conference on Artificial Intelligence. Main track. Pages 1398-1403.
https://doi.org/10.24963/ijcai.2018/194
Keywords
- Constraints and SAT: Constraints: Solvers and Tools
- Constraints and SAT: Global Constraints
- Constraints and SAT: Constraint Satisfaction
Abstract
The alldifferent constraint is an essential ingredient of most Constraints Satisfaction Problems (CSPs). It has been known that the generalized arc consistency (GAC) of alldifferent constraints can be reduced to the maximum matching problem in a value graph. The redundant edges, which do not appear in any maximum matching of the value graph, can and should be removed from the graph. The existing methods attempt to identify these redundant edges by computing the strongly connected components after finding a maximum matching for the graph. Here, we present a novel theorem for identification of the redundant edges. We show that some of the redundant edges can be immediately detected after finding a maximum matching. Based on this theoretical result, we present an efficient algorithm for processing alldifferent constraints. Experimental results on real problems show that our new algorithm significantly outperforms the-state-of-art approaches.
- [Berge, 1973] Berge Claude. Graphs and hypergraphs, American Elsevier Publishing Company, New York, 1973.
- Bollobás, 2013]Béla Bollobás. Modern graph theory, Springer Science & Business Media, 2013.
- [Cormen et al., 2009] Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein. Introduc- tion to algorithms, MIT Press, Cambridge, Massachusetts, 2009.
- [Duong et al., 2017] Thi-Bich-Hanh Dao, Khanh-Chuong Duong, and Christel Vrain. Constrained clustering by con- straint programming. Artificial Intelligence 244:70-94, 2017.
- [Gent et al., 2006] Ian P. Gent, Christopher Jefferson, and Ian Miguel. MINION: A Fast, Scalable, Constraint Solver,(slides) in Proceedings of the 17th European Con- ference on Artificial Intelligence (ECAI), 2006.
- [Gent et al., 2008] Ian P. Gent, Ian Miguel, and Peter Night- ingale. Generalised arc consistency for the alldifferent constraint: An empirical survey. Artificial Intelligence 172(18): 1973-2000, 2008.
- [Gent et al., 1999] Ian P. Gent and Toby Walsh. CSPLib: a benchmark library for constraints. International Confer- ence on Principles and Practice of Constraint Program- ming, Springer, 1713:480-481, 1999.
- [Hopcroft et al., 1973] John E. Hopcroft and Richard M. Karp. An n^5/2 algorithm for maximum matchings in bipartite graphs. SIAM Journal on Computing 2(4): 225-231, 1973.
- [Kautz et al., 2001] Kautz Henry, Yongshao Ruan, Dimitris Achlioptas, Carla Gomes, Bart Selman, and Mark Stickel. Balance and filtering in structured satisfiable problems. Electronic Notes in Discrete Mathematics, 9:2-18, 2001. IJCAI
- [Kuhn, 1955] Harold W. Kuhn. The Hungarian method for the assignment problem. Naval Research Logistics (NRL) 2(1-2): 83-97, 1955.
- [Lauriere, 1978] Jena-Lonis Lauriere. A language and a pro- gram for stating and solving combinatorial problems. Ar- tificial intelligence 10(1): 29-127, 1978.
- [Leconte, 1996] M. Leconte. A bounds-based reduction scheme for constraints of difference. Proceedings of the Constraint-96 International Workshop on Constraint- Based Reasoning, 1996.
- [Puget, 1998] Jean-Francois Puget. A fast algorithm for the bound consistency of alldiff constraints. Fifteenth National Conference on Artificial Intelligence and Tenth Innovative Applications of Artificial Intelligence Conference, AAAI 98, Iaai 98, July 26-30, 1998, Madison, Wisconsin, Usa DBLP, pages 359-366, 1998.
- [Régin,1994] Jean-Charles Régin. A filtering algorithm for constraints of difference in CSPs. Twelfth National Con- ference on Artificial Intelligence American Association for Artificial Intelligence, pages 362-367, 1994.
- Schulte et al., 2004]Christian Schulte and Peter J. Stuckey. Speeding up constraint propagation. Principles and Prac- tice of Constraint Programming -CP 2004, International Conference, CP 2004, Toronto, Canada, September 27 - October 1, 2004, Proceedings DBLP, pages 619-633, 2004.
- [Shenorr et al., 2002] Shai S. Shen-Orr, Ron Milo, Shmoolik Mangan, and Uri Alon. Network motifs in the transcrip- tional regulation network of Escherichia coli. Nature ge- netics 31(1): 64, 2002.
- [Solnon, 2010] Christine Solnon. Alldifferent-based filtering for subgraph isomorphism. Artificial Intelligence 174(12- 13): 850-864, 2010.
- [Tarjan, 1972] Robert Tarjan. Depth-first search and linear graph algorithms. SIAM journal on computing 1(2): 146- 160, 1972.
- Hoeve, 2001]Willem-Jan van Hoeve. The alldifferent con- straint: A survey. Computer Science, 2001.
- [Wallace, 1996] Mark Wallace. Practical applications of con- straint programming. Constraints 1(1-2): 139-168, 1996.
- Zhang et al., 2017]Xizhe Zhang, Jianfei Han, and Weixiong Zhang. An efficient algorithm for finding all possible input nodes for controlling complex networks. Scientific Reports 7(1): 10677, 2017.
References were extracted automatically from the PDF and may contain errors.
Full text extracted automatically from the PDF; figures, tables and equations may differ. The PDF is the version of record.
1 Introduction
Constraint Programming is a powerful tool for problem solving and has been widely used in various real-world applications. Constraint Satisfaction Problem (CSP) defines a set of variables whose values must satisfy some specified constraints. One of the most useful and important constraints is the alldifferent constraint [Lauriere 1978], which requires that all variables of the constraint must have different values. The alldifferent constraint can be found in wide varieties of combinational problems [Wallace 1996], including various puzzles, graph coloring, and assignment problems.
A typical approach to solve a CSP is to search from all possible variable values. To accelerate this search process, various consistency techniques have been introduced to remove values from the domain of a variable which does not belong to any solution to the problem. A classic filtering algorithm for Generalized Arc Consistency (GAC) for alldifferent constraints is proposed by Régin [Régin 1994]. The algorithm utilizes a theorem of C. Berge [Berge and Minieka 1973] from graph theory and prunes redundant edges that do not appear in any maximum matching of the value graph of alldifferent constraints. For weaker forms of the consistency of alldifferent constraints, Leconte [Leconte 1996] provides an algorithm for the range consistency based on identifying Hall intervals. Puget [Puget 1998] proposes an algorithm for the bounds consistency, which is weaker than the range consistency. To our knowledge, Régin's algorithm is still the-state-of-art filtering method for GAC of the alldifferent constraint. Gent [Gent, Miguel et al. 2008] discuss several implementation details of Régin's algorithm, especially the computation of the Strongly Connected Components (SCC) of the residual graph. A survey for the alldifferent constraint can be found in [van Hoeve 2001]. Recently, as a powerful tool, alldifferent constraints are extensively used to solve difficult constraint optimization problems, such as subgraph isomorphism [Solnon 2010] and constraint clustering [Duong and Vrain 2017].
In this paper, we developed a simple and fast algorithm for the alldifferent constraint. Our new algorithm is based a novel theorem for identifying redundant edges of the value graph of alldifferent constraints. We classified the redundant edges into two types: one type of redundant edges can be obtained immediately by finding a maximum matching, and the second type of redundant edges can be found by computing SCCs in a small sub-graph. Based on this theorem, we designed an efficient algorithm for the alldifferent constraint. The major improvement of our algorithm comes from identification of type 1 redundant edges, which allow us to remove a substantial number of redundant edges without any additional computation. Compared with the-state-of-art approach, our new algorithm does not need to construct a residual graph, which has more edges than the original value graph. Therefore, the SCCs computation in our algorithm is also faster than the previous algorithm. We evaluated the performance of our new algorithm on many benchmark instances by using Minion 1.8 software [Gent, Jefferson et al.], and the result showed that our algorithm outperformed Régin's algorithm on all problem instances.
The paper is organized as follows. We present in Section 2 the definitions related to constraint satisfaction problems and graph theory. We present and prove in Section 3 the novel theorem for identifying the redundant edges of a value graph, and present a fast algorithm for the alldifferent constraint. We evaluate the performance of our algorithm on several real problems in Section 4, and conclude with discussions in Section 5.
2 Background and Preliminaries
Constraint programming. A constraint satisfaction problem (CSP) is a triple (X, D, C), where X is a set of variables, {x1, x2, ... , xn}, D is a set of domains {D1, D2, . . ., Dn}, where Di is the set of possible values for variable xi, and C is a set of constraints between variables. A constraint c∈C is defined as a subset of the Cartesian product of the domains of the variables that are in C. A solution to a CSP (X, D, C) is a set of values (d1,...,dn) ∈ D1×···×Dn, where for every constraint c∈C on the variables xi1,...,xim, we have (di1, ..., dim)∈c. A constraint is generalized arc consistent (GAC) iff every value of the variables can be extended to all the other variables of the constraint in such a way the constraint is satisfied.
An alldifferent constraint c(x1,...,xn) is a constraint that specifies that xi≠xj for any i < j. For an alldifferent constraint c, a bipartite graph B(c) = (Xc, Dc, E) is called a value graph of c, where (xi, d) ∈ E iff d ∈ Di. To achieve the GAC on an alldifferent constraint, we need to introduce some concepts from graph theory, especially about maximum matching.
Graph Theory. Consider a bipartite graph B(U,V,E), in which U, V are two disjoint sets of nodes and every edge in E connects a node in U to one in V. A matching is a set of edges that share no common node. A node is called a matched node if it is connected to an edge in the matching, or a free node, otherwise. A matching with the maximum number of edges is called a maximum matching. An alternating path is a path whose edges are alternate in and out of the matching. An augmenting path is an alternating path whose two end nodes are free nodes.
A bipartite graph may have more than one maximum matching, so that maximum matching is usually not unique. There may exist many maximum matchings with the same size for a graph. An allowed edge is an edge belonging to some, but not all, of maximum matchings. A redundant edge is an edge that does not appear in any maximum matchings. Similarly, an allowed node is a node covered by some, but not all, of maximum matchings.
Régin's filtering Algorithm. An alldifferent constraint is GAC iff every edge of its value graph belong to some matchings that cover Xc in B(c) [Régin 1994]. Therefore, to achieve GAC, we need to remove the redundant edges of its value graph. Régin [Régin 1994] present a filtering algorithm based on the following property:

Property 1 (Berge 1970) An edge is allowed, iff, for an arbitrary maximum matching M, it belongs to either an even alternating path begins at a free node or an even alternating cycle.
Therefore, to identify all of the redundant edges of the value graph, the algorithm first computes a maximum matching, and then finds all alternating paths beginning at free nodes and all even alternating cycle based on SCCs. The last two steps can be combined by finding SCCs in a directed residual graph. The residual graph is constructed by adding one virtual node and |Dc| edges to the original value graph. Therefore, the residual graph is always larger than value graph. The unmatched edges between independent SCCs of the residual graph are redundant edges. An example is shown in Figure.1.
3 Identify Redundant Edges
For an alldifferent constraint c, the variable-value pairs corresponding to the edges that never appear in any maximum matching should be pruned. Therefore, in the rest of the paper, we focus on how to efficiently identify all of the redundant edges of a value graph.
Consider an alldifferent constraint c(Xc, Dc) and its value graph B(c) = (Xc, Dc, E). Let A be the set of allowed nodes of B(c), and Γ(A) be the set of the neighbor nodes of A. It is obvious that if there exists a solution to the constraint, all nodes of Xc must be matched. Therefore, the allowed nodes can only be found in set Dc. The node set of the value graph can be divided into four sets: A, Γ(A), Dc-A, Xc-Γ(A). The allowed nodes can be easily identified by our previous work [Zhang, Han et al. 2017], which was originally used to identify the input node of a network.
Property 2 [Zhang, Han et al. 2017] A node is allowed, iff for an arbitrary maximum matching M, it can be reached by an even alternating path that begins at a free node.
Based on Property 2 and using our node set partition, we now present a new theorem for identifying redundant edges:
Theorem: For an arbitrary maximum matching, an unmatched edge emn is redundant, iff
- m∈Γ(A) and n∈Dc-A , or
- m∈Xc-Γ(A), n∈Dc-A and emn does not belong to any alternating cycle.
Proof: Based on the definitions of A, Γ(A), Dc-A and XcΓ(A), the edges of a value graph can be divided into three sets: E(Γ(A),A), E(Γ(A),Dc-A) and E(Xc-Γ(A),Dc-A) (Figure.2). Note that based on the definition of Γ(A), all neighbor nodes of A should be in Γ(A). Therefore, there is no edge between A and Xc-Γ(A).
We first prove that all edges of E(Γ(A), A) are allowed edges. Consider an unmatched edge eba∉M, where a∈A and b∈Γ(A). Because a is an allowed node, based on property 2, there must exist an even alternating path P connecting node a and a free node. Consider the path P+eba, if we swap the matched and unmatched edges of the path, we have a new maximum matching M', where eba∈M. Therefore, all edges of E(Γ(A), A) are allowed edges and can be in the new maximum matching M'.
Next, we prove that all edges of E(Γ(A), Dc-A) are redundant. Because Γ(A) is part of the set of variables, any node of Γ(A) should be matched. Otherwise, there is no solution to the constraint. Suppose emn is an allowed edge, where m∈Γ(A) and n∈Dc-A. Because Γ(A) is the neighbor set of A and any node of A is allowed, there must exist an alternating path P starting at a free node connected to node m. Therefore, the path P+emn is an alternating path. Based on Property 2, node n is an allowed node. That contradicts with the definition of node n. Therefore, all edges of E(Γ(A), DcA) are redundant edges.
Finally, we prove the edges of E(Xc-Γ(A), Dc-A) are redundant edges iff they are not matched and do not belong to any alternating cycle. Note that it is a corollary of Property 1. Therefore, the proof is completed.

Figure 2 gives a simple example of above theorem. After finding a maximum matching (red edges) of the value graph, node 5 is the only free node. The set of allowed nodes are A={3,4,5} because the nodes 3 and 4 can be reached by alternating path start from node 5. The neighbor set of A is Γ(A)={x3,x4}. Based on our theorem, the edges between set Γ(A) and Dc-A can be removed from the value graph. Therefore, we only need to find the unmatched edges between sets {x1, x2} and {1,2} and not in any alternating cycle, which is the edge e(x2,1).
This theorem offers us an efficient way to find redundant edges in a bipartite graph. Based on this theorem, the edges between node sets Γ(A) and Dc-A are denoted by type 1 redundant edges, and the other redundant edges by type 2 redundant edges. The type 1 redundant edges can be easily obtained after finding the set of allowed nodes. The allowed nodes can be found by finding a maximum matching based on Property 2. The basic idea of a maximum matching algorithm, such as Hopcroft-Karp algorithm [Hopcroft and Karp 1973] or Hungarian Algorithm [Kuhn 1955], is to iteratively find all augmenting paths corresponding to the matching M at hand, and then to derive a larger matching M'. A maximum matching is obtained when no augmenting path can be found. The last step of the algorithm is exactly to find all alternating paths starting at the free nodes of the maximum matching. Therefore, all allowed nodes and their neighbors can be obtained in the last step of a maximum matching algorithm, which provides the first part of redundant edges. For the rest of redundant edges, we only need to find SCCs in a smaller sub-graph B'(Xc-Γ(A), Dc-A, E'), where E'⊂E is the edge\ set connecting Xc-Γ(A) and Dc-A.
The above idea and steps are formulated in Algorithm 1 for filtering value graph B of alldifferent constraints.
ALGORITHM1: Fast filtering alldifferent constraint
- Input: Value graph B(c) = (Xc, Dc, E), initial matching M;
- Repeat
- Find all alternating paths AP from all free node based on current matching M;
- Put the nodes in Dc of AP into set A, and their neighbor nodes in Xc into set Γ(A);
- If AP contains the augmenting paths then
- expand the augmenting paths and obtain a new matching M';
- Let M=M'; clear set A and Γ(A);
- If size(M)=size(Xc) then
- prune all edges between set Γ(A) and set Dc-A;
- Until no augmenting path is found;
- If size(M)<size(Xc) return false;
- // Above is the first parts of the redundant edges of value graph
- Find all strong connected component (SCC) of bipartite graph B'(Xc-Γ(A), Dc-A, E');
13. Prune all edges that are unmatched and connect nodes between two SCCs;
The first part of our algorithm is to find a maximum matching, and this can be done in O(|Xc| 0.5 |E|) by the Hopcroft-Karp algorithm. The second part is to find SCC of the bipartite graph B'(Xc-Γ(A),Dc-A,E'), and this can be accomplished in O(|Xc-Γ(A)|+|Dc-A|+|E'|) by the Tarjan algorithm [Tarjan 1972]. Although our algorithm has the same worst-case complexity as the previous works, it has a better performance in practice. This is because many redundant edges can be immediately removed after finding a maximum matching and we only need to find SCCs in a smaller graph B'(Xc-Γ(A), Dc-A, E') rather than the original value graph.
The first part of Algorithm 1 (steps 1-10) is basically to find a maximum matching. Therefore, it can be integrated with many maximum matching algorithms, such as the Hopcroft-Karp algorithm or the Hungarian Algorithm. Furthermore, the improvement of our algorithm is the identification of type 1 redundant edges in the matching process, therefore, it can be combined with many optimization technics for alldifferent constraints, such as incremental matching, domain counting, priority queue, staged propagation or computing SCCs independently [Gent, Miguel et al. 2008].
4 Experimental Results
We evaluated the performance of our new algorithm. We first analyzed the fraction of type 1 redundant edges among all redundant edges. We then compared the performance of our algorithm with the-state-of-art approaches on a large collection of benchmark instances for alldifferent constraints. Our algorithm was implemented based on Minion constraint solver 1.8 [Gent, Jefferson et al.]. All experiments were run on a Windows 7 workstation with a quad-core Intel i7-3770 processor of 3.9 GHz and 32GB DDR3 1600MHz RAM.
In our experiment, we first generated a series of synthetic bipartite graphs by using the scale-free network model of [Shen-Orr, Milo et al. 2002] and the ER random network model of [Bollobás 2013], where we set |Xc|=|Dc|=1000. Type 1 redundant edges can be obtained right after maximum matching. Therefore, our algorithm will be more efficient if there are more type 1 edges. When the average node degree increases, most of the redundant edges are type 1 and the size of B'(Xc-Γ(A), Dc-A, E') is relatively small (Figure 3). This means that after finding a maximum matching, most of the redundant edges can be found, and the remaining redundant edges can be obtained in a small value graph B'(Xc-Γ(A), DcA, E'). It will greatly increase the efficiency of our algorithm in practice. We also assessed the fraction of type 1 redundant edges in some real problems (Figure 4). We counted the total number of redundant edges during the searching process and computed the fraction of type 1 and type 2 redundant edges. It is evident that many problems also have a large portion of type 1 redundant edges.
Next, we implemented our new algorithm by using the Minion software, Version 1.8 [Gent, Jefferson et al.]. This software already has an implementation of Régin's [Régin 1994] Filtering algorithm, and other optimization techniques, such as incremental matching [Régin 1994], BFS matching [Cormen 2009] and staged propagation [Schulte and Stuckey 2004]. For the implementation of our algorithm, we use Hopcroft-Karp algorithm to obtain maximum matching and Tarjan algorithm to compute SCCs. We also use incremental matching technique, which is same as [Régin 1994]. We compared our algorithm with the following implementations: 1) Régin's Filtering algorithm with incremental matching (IncMatch); 2) IncMatch using the FF-BFS matching algorithm instead of Hopcroft-Karp algorithm (IncMatchBFS); 3) IncMatch-BFS with staged propagation (IncMatchBFS-Staged). The searching strategy we used to solve the problems is the depth-first chronological backtracking. The benchmark instances were chosen from [Gent, Miguel et al. 2008], including Langford's number problem (prob024 in CSPLib [Gent and Walsh 1999]), golomb ruler problem (prob006 in CSPLib), balanced quasigroup with holes (QWH) [Kautz, Ruan et al. 2001], quasigroup existence (prob003 in CSPLib), social golfers (prob010 in CSPLib), graceful graphs (prob053 in CSPLib), N-Queens (prob054 in CSPLib) and sports scheduling.


We compared our algorithm with the three existing methods mentioned above on these instances of constraint satisfaction problems. In the experiments, we limited time to 4 hours and nodes to 10 6 . For those problems which the solution can be found within the time limit, we compared the raw runtime (Figure 5 and Table 1). For those problems which exceed the time limit, we counted the number of nodes searched per second (Figure 6). As shown in Table 1 and Figure 5-6, our algorithm is never slower than the other algorithm compared and can typically run 1-6 times faster than these methods. To reiterate, the gain on efficiency for our algorithm comes from the identifying and removing type 1 constraints with little computation. On those problems that do not have type 1 redundant edges, our algorithm also has a better performance because it finds SCCs in the value graphs rather than the residual graphs, which have more edges than the original value graphs.

5 Conclusion
We developed a fast filtering algorithm for realization of generalized arc consistency for the alldifferent constraint. We presented a novel theorem for identifying redundant edges in a constraint graph which need to be removed. We showed that our algorithm significantly outperformed the best GAC algorithms on all of benchmark problems that we tested, significantly reduced computation time on these real problems. Our algorithm can be used to improve the performance of solving constraint satisfaction problems that contain alldifferent constraints.

| Problem | Our | IncMatc h | IncMatc h-BFS | IncMat ch- BFS- staged |
|---|---|---|---|---|
| golomb-10-200 | 0.047 | 0.063 | 0.063 | 0.063 |
| golomb-11-200 | 0.078 | 0.109 | 0.125 | 0.109 |
| golomb-12-200 | 0.125 | 0.203 | 0.203 | 0.203 |
| langford10 | 5.016 | 10.094 | 10.078 | 10.188 |
| langford19 | 46.203 | 174.047 | 171.656 | 175.953 |
| langford20 | 41.188 | 160.906 | 161.734 | 166.281 |
| qg3nonidempotent9 | 1.875 | 2.281 | 2.344 | 2.297 |
| qg4idempotent9 | 6.516 | 8.469 | 8.734 | 8.563 |
| qg4nonidempotent8 | 1.313 | 1.563 | 1.609 | 1.609 |
| qg4nonidempotent9 | 0.422 | 0.516 | 0.547 | 0.531 |
| queens-16 | 0.172 | 0.359 | 0.359 | 0.359 |
| queens-24 | 6.313 | 15.391 | 15.703 | 15.438 |
| QWH-25-1 | 18.281 | 68.781 | 69.188 | 70.078 |
| QWH-25-9 | 79.109 | 299.969 | 301.547 | 306.109 |
| QWH-30-2 | 30.563 | 140.125 | 140.828 | 142.500 |
| QWH-30-5 | 389.594 | 1723.09 | 1722.92 | 1743.61 |
| socialgolfers547 | 31.641 | 62.266 | 62.125 | 61.547 |
| socialgolfers647 | 276.141 | 1171.92 | 1166.84 | 1172 |
| sportsScheduling8 | 0.063 | 0.125 | 0.109 | 0.125 |
| sportsScheduling10 | 27.078 | 70.344 | 69.922 | 71.891 |
| graceful graphs K5×P2 | 5.359 | 9.484 | 9.453 | 9.547 |
| graceful graphs K6×P2 | 1178.39 | 2230.48 | 2221.98 | 2248.06 |
Acknowledgments
This research was supported by the Natural Science Foundation of China under grant number 91546110, and China Scholarship Council under grant number 201606085011.
@inproceedings{ijcai2018p194,
title = {A Fast Algorithm for Generalized Arc Consistency of the Alldifferent Constraint},
author = {Zhang, Xizhe and Li, Qian and Zhang, Weixiong},
booktitle = {Proceedings of the Twenty-Seventh International Joint Conference on
Artificial Intelligence, {IJCAI-18}},
publisher = {International Joint Conferences on Artificial Intelligence Organization},
editor = {Jérôme Lang},
pages = {1398--1403},
year = {2018},
month = {7},
note = {Main track},
doi = {10.24963/ijcai.2018/194},
url = {https://doi.org/10.24963/ijcai.2018/194},
}
TY - CPAPER TI - A Fast Algorithm for Generalized Arc Consistency of the Alldifferent Constraint AU - Zhang, Xizhe AU - Li, Qian AU - Zhang, Weixiong T2 - Proceedings of the Twenty-Seventh International Joint Conference on Artificial Intelligence, IJCAI-18 PB - International Joint Conferences on Artificial Intelligence Organization PY - 2018 SP - 1398 EP - 1403 DO - 10.24963/ijcai.2018/194 UR - https://doi.org/10.24963/ijcai.2018/194 ER -Copied
Machine-readable versions of this paper, for tools and AI agents: