Automated, Adaptive, and Optimized Search for CSPs via Cuckoo Search Ricardo Soto1,2,3 , Broderick Crawford1,4,5 , Javier Flores1 , Felipe Mella1 , Cristian Galleguillos1(B) , Franklin Johnson6 , and Fernando Paredes7 1
Pontificia Universidad Cat´ olica de Valpara´ıso, Valpara´ıso, Chile {ricardo.soto,broderick.crawford}@ucv.cl, {javier.flores.v,felipe.mella.l01,cristian.galleguillos.m}@mail.pucv.cl 2 Universidad Aut´ onoma de Chile, Santiago, Chile 3 Universidad Cientifica del Sur, Lima, Per´ u 4 Universidad Central de Chile, Santiago, Chile 5 Universidad San Sebasti´ an, Santiago, Chile 6 Universidad de Playa Ancha, Valpara´ıso, Chile
[email protected] 7 Escuela de Ingenier´ıa Industrial, Universidad Diego Portales, Santiago, Chile
[email protected]
Abstract. Constraint Programing is a programming paradigm devoted to the efficient solving of constraint satisfaction problems (CSPs). A CSP is a formal problem representation mainly composed of variables and constraints defining relations among those variables. The resolution process of CSPs is commonly carried out by building and exploring a search tree that holds the possibles solutions. Such a tree is dynamically created by interleaving two different phases: enumeration and propagation. During enumeration, the variables and values are chosen to build the possible solution, while propagation intend to delete the values having no chance to reach a feasible result. Autonomous Search is a new technique that gives the ability to the resolution process to be adaptive by re-configuring its enumeration strategy when poor performances are detected. This technique has exhibited impressive results during the last years. However, such a re-configuration is hard to achieve as parameters are problem-dependent and their best configuration is not stable along the search. In this paper, we introduce an Autonomous Search framework that incorporates a new optimizer based on Cuckoo Search able to efficiently support the re-configuration phase. Our goal is to provide an automated, adaptive, and optimized search system for CSPs. We report encouraging results where our approach clearly improves the performance of previously reported Autonomous Search approaches for CSPs. Keywords: Swarm-based optimization · Nature-inspired algorithms Cuckoo search · Constraint Programming · Autonomous search
1
·
Introduction
Constraint Programing (CP) is a programming paradigm focused on solving constraint satisfaction and optimization problems. A main idea behind this c Springer International Publishing Switzerland 2015 Y. Tan et al. (Eds.): ICSI-CCI 2015, Part I, LNCS 9140, pp. 436–447, 2015. DOI: 10.1007/978-3-319-20466-6 46
Automated, Adaptive, and Optimized Search for CSPs via Cuckoo Search
437
paradigm is to model the problems by using variables and constraints. The variables are the unknowns of the problem and each one has a non-empty domain of possible values that the variable can take. Constraints represent the relations among the variables and can be considered as rules that must be followed to find the solution. A problem is solved when each variable has taken a value from its domain and no constraint is violated. The resolution of the CSP requires the exploration of possible values for each variable. This process is usually carried out by using a search engine called solver, which attempts to find a proper solution by building and exploring a search tree. The construction of the tree can be divided in two main phases: enumeration and propagation. The first one selects the order in which variables and values are chosen, while propagation tries to eliminate the values having no chance to reach a solution. The enumeration is a key phase on the solving process as the performance is greatly influenced by the selection of an appropriate enumeration strategy. However, selecting the proper strategy is known to be hard as the performance of strategies are commonly unpredictable. Autonomous Search is a new technique that gives the ability to the search process to be adaptive by automatically re-configuring its enumeration strategy when poor performances are detected. The idea is to interleave a set of strategies during the search process, replacing underperforming strategies by more promising ones. However, such a strategy re-configuration is hard to achieve as parameters are problem-dependent and their best configuration is not stable along the search. In this paper, we introduce an Autonomous Search framework that incorporates a new optimizer based on Cuckoo Search able to efficiently support the re-configuration phase. Cuckoo Search is a modern metaheuristic based on the breeding behavior of certain Cuckoo species that has successfully been used to solve complex optimization problems [13]. Our goal is to provide an automated, adaptive, and optimized search system for CSPs. We report encouraging results where our approach clearly improves the performance of previously reported Autonomous Search approaches for CSPs. The rest of this work is organized as follows: Section 2 presents the related work. Section 3 and 4 present the problem and the proposed solution, respectively. Finally, the experimental evaluation is illustrated followed by conclusions and future work.
2
Related Work
A preliminary work in Autonomous Search (AS) for CP is the one presented in [2]. This framework proposed an interesting architecture composed of 4 elements. The idea is to support the dynamic replacement of enumeration strategies. The strategies are evaluated via performance indicators, and better ones replace worse ones during solving time. This preliminary framework was used as basis of different related works. For instance, a more recent framework based on this idea is reported in [5]. This approach uses two layers, where an hyper-heuristic placed on the top-layer manages the selection of strategies of the search engine placed on the lower-layer. An hyper-heuristic can be seen as a method to choose
438
R. Soto et al.
heuristics [8]. In this approach, two different top-layers have been proposed, one using a genetic algorithm [10,4] and another using a particle swarm optimizer [6]. Similar approaches have also been implemented for solving optimization problems instead of pure CSPs [9]. In Section 5 we contrast the proposed approach with the best AS optimizers reported in the literature.
3
Constraint Satisfaction Problems and Autonomous Search
A constraint satisfaction problem P is formally defined by a triple P = X , D, C where X is an n-tuple of variables X = x1 , x2 , . . . , xn . D is the corresponding n-tuple of domains D = d1 , d2 , . . . , dn such that xi ∈ di , and di is a set of values, for i = 1, . . . , n. C is an m-tuple of constraints C = c1 , c2 , . . . , cm , and a constraint cj is defined as a subset of the Cartesian product of domains dj1 × · · · × djnj , for j = 1, . . . , m. A solution to a CSP is an assignment {x1 → a1 , . . . , xn → an } such that ai ∈ di for i = 1, . . . , n and (aj1 , . . . , ajnj ) ∈ cj , for j = 1, . . . , m. As previously mentioned, the enumeration strategy controls which variable xi and which value from di is selected to build the potential solution. In this work, we aim at online controlling a set of enumeration strategies which are dynamically interleaved during solving time. Our purpose is to select the most promising one for each part of the search tree. In order to properly perform this selection, we employ a quality rank that is governed by a Choice Function (CF) [6]. The CF is composed of performance indicators and parameters that control the relevance of each indicator within the CF. Considering any enumeration strategy Sj , the CF f in step n for Sj is defined by equation 1. fn (Sj ) =
l
αi fin (Sj )
(1)
i=1
where l is the number of indicators and αi is the control parameter for indicator i. The idea is to assign a weight to each indicators in order to increase the relevance of a given indicator and decreasing another one. This allow the solver to adjust even more the process of selecting the best strategy. There are many indicators that can be used, but no one of them is the best to evaluate the strategies on every problem [6]. We employ the following CF for the experiments: α1 SB + α2 In1 + α3 In2, where SB is the number of shallow backtracks [1] (SB), In1=CurrentM aximumDepth − P reviousM aximumDepth, and In2=CurrentDepth − P reviousDepth, where Depth refers to the depth reached within the search tree. A main problem in this context, is that α parameters are problem-dependent and their best configuration is not stable along the search. To this end, we incorporate a Cuckoo Search algorithm, which allow the solver to optimize the relevance of each indicator during the resolution, thus giving a suitable configuration for each problem. This is done by carrying out a sampling phase
Automated, Adaptive, and Optimized Search for CSPs via Cuckoo Search
439
where the CSP is partially solved to a given cutoff. The performance information gathered in this phase via the indicators is used as input data of the optimizer, which attempt to determine the most successful α parameters for the CF. This tuning process is very important as the correct configuration of the CF may have essential effects on the ability of the solver to properly solve specific CSPs.
4
Cuckoo Search Algorithm
The Cuckoo Search Algorithm is a metaheuristic inspired in the aggressive reproduction strategy used by certain species. The problems are modeled by representing each possible solution as a nest/egg. The cuckoos deposit the eggs on the random nest and then leave, the best nests are the ones that will carry the next generation of cuckoos. Each new generation will try to find a better nest than the previous, but the best one found so far will always be remembered [13,3,11,12]. The algorithm can be described by three simple rules: – Each Cuckoo lays one single egg on a random nest – The better nest will carry the next generation – There is a change Pa that an egg will be discovered and discarded, in which case the mother will lay an egg on a different nest The algorithm can be separated in three different phases. 1. Initial Phase: During this phase the initial solutions are randomly generated and evaluated. 2. Improving Solutions Phase: A local search is done in an effort to improve the actual solutions, L´evy Flights are used to generate random walks and if a new solution found is better than the previous one, then it is replaced. 3. New Solutions Phase: During this phase a percentage defined by the parameter Pa of nests are discovered and destroyed, using random permutations new solutions are created to replace the ones discovered. 4. The second and the third phases are repeated until the best solution is found. Algorithm 1 depicts the Cuckoo Search procedure employed. We model the objective function f (x) according to the CF employed, where each unknown xi of the objective function represents an αi of indicator i. The population size n is the amount of cuckoos generated (every cuckoo represents a potential solution). The max generation needs to be defined as how many iterations the algorithm is going to execute. Finally the pa ∈ [0, 1] represents the chance for a nest to be discovered and replaced by a new random solution. The fitness of a potential solution given by Cuckoo Search is tested by using the indicator IN 3, which corresponds to the search space reduction achieved during last step of the CSP to be solved. A bigger reduction means a smaller amount of potential solutions to be explored, which in turn means improvement in search time.
440
R. Soto et al.
Algorithm 1. Cuckoo Search Algorithm 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15:
5
Objective f unction f (x), x = (x1 , ..., xd ) Generate the initial population of n nest/solutions xi (i = 1, 2, ..., n) Evaluate the f itness of solutions w.r.t IN 3 while (t < M axGeneration) or (Stop criterion) do Choose a cuckoo/nest/solution randomly amon n (say, j) Generate a new solution by Levy f lights (say, i) Evaluate its quiality/f itness Fi if (Fi > Fj ) then replace j with the new nest i; end if A f raction (pa ) of the worst nests are abandoned and new ones are built using random permutations. Evaluate the quality of the solutions and create a rank. end while Results visualization.
Experimental Evaluation
The proposed solution was tested on different problems and also compared to previous work. We test several instances of well-known CSPs, mentioned as follows: – – – – – –
N-Queens problem with n = {8, 10, 12, 20, 50, 75} Magic Square problem size n = {3, 4, 5, 6} Sudoku puzzle n = {2, 5, 7} Knights Tournament with n = {5, 6} Quasi Group with n = {3, 5, 6} Langford with size n = {2} and k = {12, 16, 20, 23}
The Autonomous search system has been implemented using Java and the Ecli pse constraint programming system. All tests were carried out on an Intel Core i3-2120 3.30 GHz with 4 GB RAM running Windows 7 32-bits. All problems are solved until a solution is found or until a maximum amount of step is reached (65535 steps). When the solver is not able to reach a solution before this bound it is set to t.o. (time-out). There are 8 variable selection heuristics and 3 value selection heuristics that combined form a portfolio of 24 enumeration strategies described in Table 1. Tables 2, 3, and 4 illustrate the performance in terms of runtime required to find a solution for each enumeration strategy individually (S1 to S24) and the proposed approach based on Cuckoo Search (CS). The results greatly validate our proposal, which is the only one in solving all instances of all problems, taking the best average runtime. Tables 5, 6, and 7 depict the results in terms of backtracks, which are similar to the previous ones. This demonstrates the ability of the proposed approach to correctly select the strategy to each segment of the solving process. We also contrast the proposed approach with the two previously
Automated, Adaptive, and Optimized Search for CSPs via Cuckoo Search
441
Table 1. Portfolio used Id S1 S2 S3 S4 S5 S6 S7
S8 S9 S10 S11 S12 S13 S14 S15
S16 S17 S18 S19 S20 S21 S22 S23
S24
Variable ordering First variable of the list The variable with the smallest domain The variable with the largest domain The variable with the smallest value of the domain The variable with the largest value of the domain The variable with the largest number of attached constraints The variable with the smallest domain. If are more than one, choose the variable with the bigger number of attached constraints. The variable with the biggest difference between the smallest value and the second more smallest of the domain First variable of the list The variable with the smallest domain The variable with the largest domain The variable with the smallest value of the domain The variable with the largest value of the domain The variable with the largest number of attached constraints The variable with the smallest domain. If are more than one, choose the variable with the bigger number of attached constraints. The variable with the biggest difference between the smallest value and the second more smallest of the domain First variable of the list The variable with the smallest domain The variable with the largest domain The variable with the smallest value of the domain The variable with the largest value of the domain The variable with the largest number of attached constraints The variable with the smallest domain. If are more than one, choose the variable with the bigger number of attached constraints The variable with the biggest difference between the smallest value and the second more smallest of the domain.
Value ordering min. value in domain min. value in domain min. value in domain min. value in domain min. value in domain min. value in domain min. value in domain
min. value in domain mid. mid. mid. mid. mid. mid. mid.
value value value value value value value
in in in in in in in
domain domain domain domain domain domain domain
mid. value in domain max. max. max. max. max. max. max.
value value value value value value value
in in in in in in in
domain domain domain domain domain domain domain
max. value in domain
reported AS systems for CP, one supported by a genetic algorithm (GA) [6] and the other one supported by a particle swarm optimizer (PSO) [7]. Table 8 depicts solving time and number of backtracks required by GA and PSO in contrast with our proposal. This comparison shows that CS and PSO outperforms GA, in terms of number of problems solved and backtracks needed to successfully reach a solution. Moreover, considering runtime, the CS algorithm based optimizer performs notably better than its competitors. A graphical comparison can be seen in Figures 1 and 2.
442
R. Soto et al.
Table 2. Runtime in ms for strategies S1 to S8 Problem Q-8 Q-10 Q-12 Q-20 Q-50 Q-75 MS-3 MS-4 MS-5 MS-6 S-2 S-5 S-7 K-5 K-6 QG-5 QG-6 QG-7 LF 2-12 LF 2-16 LF 2-20 LF 2-23 x
Strategies S1 S2 S3 S4 S5 5 5 5 4 2 5 8 3 4 4 12 11 11 11 13 20405 4867 20529 20529 1294 t.o. t.o. 532 t.o. t.o. t.o. t.o. 4280 t.o. t.o. 1 5 1 1 1 14 2340 6 21 21 1544 t.o. 296 6490 t.o. t.o. t.o. t.o. t.o. t.o. 35 30515 10 50 225 7453 t.o. 2181 8274 t.o. 26882 t.o. 2135 25486 t.o. 1825 t.o 2499 t.o t.o 90755 t.o 111200 89854 t.o t.o. t.o. 7510 t.o. t.o. 45 t.o. 15 45 t.o. 256 8020 10 307 943 20 242 4 29 43 70 70526 231 115 1217 191 t.o. 546 318 61944 79 t.o. 286 140 68254 8311 11653.9 7252 8922.3 11163.5
S6 4 5 14 26972 t.o. t.o. 4 1500 t.o. t.o. 1607 t.o. t.o. t.o t.o t.o. 3605 16896 32 489 11 19 3935.3
S7 S8 4 2 3 4 11 10 15 93 524 t.o. 4217 t.o. 1 1 6 11 203 1669 t.o. t.o. 10 10 2247 897 2187 31732 t.o t.o 39728 t.o 9465 t.o. 15 t.o. 10 16 4 22 237 7 553 240 285 19 2986.3 2315.6
Table 3. Runtime in ms for strategies S9 to S16 Problem Q-8 Q-10 Q-12 Q-20 Q-50 Q-75 MS-3 MS-4 MS-5 MS-6 S-2 S-5 S-7 K-5 K-6 QG-5 QG-6 QG-7 LF 2-12 LF 2-16 LF 2-20 LF 2-23 x
S9 5 5 11 20349 t.o. t.o. 1 13 1498 t.o. 35 7521 26621 1908 93762 t.o. 40 240 20 69 185 79 8464.6
Strategies S10 S11 S12 S13 5 4 5 2 8 7 5 5 11 11 11 13 4780 18 23860 1250 t.o. 532 t.o. t.o. t.o. 4336 t.o. t.o. 4 1 1 1 2366 6 21 21 t.o. 297 6053 t.o. t.o. t.o. t.o. t.o. 29797 10 50 225 t.o. 2394 9015 t.o. t.o. 2069 26573 t.o. t.o 2625 t.o t.o t.o 102387 109157 t.o t.o. 9219 t.o. t.o. t.o. 15 45 t.o. 13481 10 348 1097 270 4 29 44 55291 250 118 1273 t.o. 538 312 61345 t.o. 285 140 71209 10601.3 5953.3 10337.9 11373.8
S14 4 5 14 36034 t.o. t.o. 4 1495 t.o. t.o. 1732 t.o. t.o. t.o t.o t.o. 3565 18205 32 530 11 19 4742.4
S15 4 3 11 17 533 4195 1 6 216 t.o. 10 2310 2094 t.o 46673 10010 15 11 5 235 541 278 3358.4
S16 2 4 10 87 t.o. t.o. 1 11 1690 t.o. 10 972 30767 t.o t.o t.o. t.o. 15 21 8 237 19 2257
Automated, Adaptive, and Optimized Search for CSPs via Cuckoo Search
Table 4. Runtime in ms for strategies S17 to S24 and CS Problem Q-8 Q-10 Q-12 Q-20 Q-50 Q-75 MS-3 MS-4 MS-5 MS-6 S-2 S-5 S-7 K-5 K-6 QG-5 QG-6 QG-7 LF 2-12 LF 2-16 LF 2-20 LF 2-23 x
S17 5 4 11 22286 t.o. t.o. 1 88 t.o. t.o. 5 t.o. 3725 1827 96666 9743 7075 9 18 66 170 75 8339.7
S18 5 7 10 4547 t.o. t.o. 1 37 t.o. t.o. 18836 t.o. t.o. t.o t.o t.o. t.o. 1878 242 55687 t.o. t.o. 8125
S19 4 2 11 16 520 4334 1 99 t.o. t.o. 30 2590 338 2620 97388 20 125 12 4 245 562 272 5459.7
Strategies S20 S21 4 4 4 5 11 14 13135 26515 t.o. t.o. t.o. t.o. 1 1 42 147 165878 t.o. t.o. t.o. 5 100 t.o. t.o. 5350 t.o. t.o t.o 90938 t.o 10507 t.o. 6945 t.o. 9 1705 29 33 107 510 294 11 126 20 17258 2422.1
S22 2 4 13 1249 t.o. t.o. 1 37 153679 t.o. 1710 t.o. t.o. t.o t.o t.o. t.o. 9 43 1297 58732 73168 22303.4
S23 4 3 11 16 521 4187 1 102 t.o. t.o. 30 2670 378 t.o 40997 21 130 12 5 240 569 276 2640.7
S24 2 5 8 1528 t.o. t.o. 1 79 t.o. t.o. 40 t.o. 9168 t.o t.o t.o. t.o. 14 13 584 15437 10 2068.4
CS 290 310 380 685 3269 12981 340 485 590 1135 330 245 555 1429 7575 295 345 315 310 440 560 505 1516.8
Table 5. Backtracks requires for strategies S1 to S8 Problem Q-8 Q-10 Q-12 Q-20 Q-50 Q-75 MS-3 MS-4 MS-5 MS-6 S-2 S-5 S-7 K-5 K-6 QG-5 QG-6 QG-7 LF 2-12 LF 2-16 LF 2-20 LF 2-23 x
S1 10 6 15 10026 >121277 >118127 0 12 910 >177021 18 4229 10786 767 37695 >145662 30 349 16 39 77 26 3611.8
Strategies S2 S3 S4 S5 S6 S7 S8 11 10 10 3 9 10 3 12 4 6 6 6 4 5 11 16 15 17 16 16 12 2539 11 10026 862 15808 11 63 >160845 177 >121277 >173869 >143472 177 >117616 >152812 818 >118127 >186617 >137450 818 >133184 4 0 0 0 4 0 0 1191 3 10 22 992 3 13 >191240 185 5231 >153410 >204361 193 854 >247013 >173930 >187630 >178895 >250986 >202927 >190877 10439 4 18 155 764 4 2 >89125 871 4229 >112170 >83735 871 308 >59828 773 10786 >81994 >80786 773 10379 >179097 767 >97176 >228316 >178970 >73253 >190116 >177103 37695 35059 >239427 >176668 14988 >194116 >103603 8343 >145656 >92253 >114550 8343 >93315 >176613 0 30 >83087 965 0 >96367 3475 1 349 4417 4417 1 4 223 1 16 29 22 1 12 24310 97 39 599 210 97 0 >158157 172 77 26314 1 172 64 >157621 64 26 29805 3 64 7 4221.5 2381.6 3878.1 5185.8 1786 1327.3 781.8
443
444
R. Soto et al.
Table 6. Backtracks requires for strategies S9 to S16 Problem Q-8 Q-10 Q-12 Q-20 Q-50 Q-75 MS-3 MS-4 MS-5 MS-6 S-2 S-5 S-7 K-5 K-6 QG-5 QG-6 QG-7 LF 2-12 LF 2-16 LF 2-20 LF 2-23 x
S9 10 6 15 10026 >121277 >118127 0 12 910 >177174 18 4229 10786 767 37695 >145835 30 349 16 39 77 26 3611.8
Strategies S10 S11 S12 S13 S14 S15 S16 11 10 10 3 9 10 3 12 12 6 6 6 4 5 11 16 15 17 16 16 12 2539 11 10026 862 15808 11 63 >160845 177 >121277 >173869 >143472 177 >117616 >152812 818 >118127 >186617 >137450 818 >133184 4 0 0 0 4 0 0 1191 3 10 22 992 3 13 >191240 185 5231 >153410 >204361 193 854 >247013 >174068 >187777 >179026 >251193 >203089 >191042 10439 4 18 155 764 4 2 >89125 871 4229 >112174 >83735 871 308 >59828 773 10786 >81994 >80786 773 10379 >179126 767 >97176 >228316 >178970 >73253 >190116 >177129 37695 35059 >239427 >176668 14998 >194116 >103663 8343 >145830 >92355 >114550 8343 >93315 >176613 0 30 >83087 965 0 >93820 3475 1 349 583 4417 1 4 223 1 16 29 22 1 12 24310 97 39 599 210 97 0 >158157 172 77 26314 1 172 64 >157621 64 26 29805 3 64 7 4221.5 2382 3878.1 4866.3 1786 1327.8 781.8
Table 7. Backtracks requires for strategies S17 to S24 and CS Problem Q-8 Q-10 Q-12 Q-20 Q-50 Q-75 MS-3 MS-4 MS-5 MS-6 S-2 S-5 S-7 K-5 K-6 QG-5 QG-6 QG-7 LF 2-12 LF 2-16 LF 2-20 LF 2-23 x
S17 10 6 15 10026 >121277 >118127 1 51 >204089 >237428 2 >104148 1865 767 37695 7743 2009 3 16 39 77 26 3550.1
Strategies S18 S19 S20 S21 S22 S23 S24 CS 11 10 10 9 3 10 2 3 12 4 6 6 6 4 37 3 11 16 15 16 17 16 13 3 2539 11 10026 15808 862 11 1129 10 >160845 177 >121277 >173869 >143472 177 >117616 1 >152812 818 >118127 >186617 >137450 818 >133184 818 0 1 1 1 0 1 1 0 42 3 29 95 46 96 47 1 >176414 >197512 74063 >201698 74711 >190692 >183580 26 >176535 >231600 >190822 >239305 >204425 >204119 >214287 257 6541 9 2 89 887 9 12 4 >80203 963 >104148 >78774 >101058 963 >92557 308 >80295 187 1865 >93675 >91514 187 2626 93 >179126 767 >97178 >178970 >228316 >73253 >190116 4 >177129 37695 35059 >176668 >239427 14998 >160789 2196 >130635 0 7763 >96083 >94426 0 >95406 0 >75475 89 2009 >108987 >124523 89 >89888 1 845 1 3 773 1 1 1 0 223 1 16 22 29 1 6 0 24592 98 39 210 599 98 239 50 >158028 172 77 1 26314 172 4521 47 >157649 64 26 3 29805 64 0 19 3481.6 2054.3 7706.5 1419.5 10252.4 932.4 664.2 174.8
Automated, Adaptive, and Optimized Search for CSPs via Cuckoo Search
445
Table 8. Solving time in ms and Backtracks requires for optimizers CS, PSO and GA CS PSO GA Problem Runtime Backtracks Runtime Backtracks Runtime Backtracks Q-8 290 3 4982 3 645 1 Q-10 310 3 7735 1 735 4 Q-12 380 3 24369 1 875 40 Q-20 685 10 52827 11 7520 3879 Q-50 3269 1 1480195 0 6530 15 Q-75 12981 818 t.o. 818 16069 17 MS-3 340 0 2745 0 735 0 MS-4 485 1 15986 0 1162 42 MS-5 590 26 565155 14 1087 198 MS-6 1135 257 t.o. >47209 t.o. >176518 S-2 330 4 10967 2 15638 6541 S-5 245 308 2679975 13 8202 4229 S-7 555 93 967014 256 25748 10786 K-5 1429 4 4563751 106 21089 50571 K-6 7575 2196 t.o. 12952 170325 21651 QG-5 295 0 59158 0 11862 7763 QG-6 345 1 44565 0 947 0 QG-7 315 0 28612 0 795 4 LF 2-12 310 0 10430 1 1212 223 LF 2-16 440 50 20548 0 1502 97 LF 2-20 560 47 28466 1 1409 64 LF 2-23 505 19 30468 3 1287 0 x 1516.8 174.8 557786.8 675.4 14065.5 5053.6
Fig. 1. Comparing runtimes of adaptive approaches
446
R. Soto et al.
Fig. 2. Comparing backtracks of adaptive approaches
6
Conclusions
Autonomous search is a powerful approach to provide self-tuning capabilities to solvers in order to obtain faster resolution processes, but by maintaining the quality of solutions. In this paper, we have presented a new Autonomous Search system based on the modern Cuckoo Search metaheuristic. Cuckoo Search is a simple to implement algorithm for optimization problems with rapid convergence to optimal solutions. The experimental results have illustrated the efficiency of the proposed approach validating the adaptation capabilities to dynamic environments, which clearly improves performance of solvers during resolution. There exist different directions for future work, perhaps the most straightforward one is the integration of more recent metaheuristics to the framework. The incorporation of additional and more sophisticated strategies to the portfolio would be an interesting research direction to pursue as well. Acknowledgments. Cristian Galleguillos is supported by Postgraduate Grant Pontificia Universidad Cat´ olica de Valpara´ıso 2015. Ricardo Soto is supported by Grant CONICYT / FONDECYT / INICIACION / 11130459. Broderick Crawford is supported by Grant CONICYT / FONDECYT / REGULAR / 1140897. Fernando Paredes is supported by Grant CONICYT / FONDECYT / REGULAR / 1130455.
Automated, Adaptive, and Optimized Search for CSPs via Cuckoo Search
447
References 1. Bart´ ak, R., Rudov´ a, H.: Limited assignments: a new cutoff strategy for incomplete depth-first search. In: Proceedings of the 20th ACM Symposium on Applied Computing (SAC), pp. 388–392 (2005) 2. Castro, C., Monfroy, E., Figueroa, C., Meneses, R.: An approach for dynamic split strategies in constraint solving. In: Gelbukh, A., de Albornoz, A., Terashima-Mar´ın, H. (eds.) MICAI 2005. LNCS (LNAI), vol. 3789, pp. 162–174. Springer, Heidelberg (2005) 3. Civicioglu, P., Besdok, E.: A conceptual comparison of the cuckoo-search, particle swarm optimization, differential evolution and artificial bee colony. Artificial Intelligence Review 39(4), 315–346 (2013) 4. Crawford, B., Soto, R., Castro, C., Monfroy, E.: A hyperheuristic approach for dynamic enumeration strategy selection in constraint satisfaction. In: Ferr´ andez, J.M., S´ anchez, J.R.A., de la Paz, F., Toledo, F.J. (eds.) IWINAC 2011, Part II. LNCS, vol. 6687, pp. 295–304. Springer, Heidelberg (2011) 5. Crawford, B., Soto, R., Castro, C., Monfroy, E., Paredes, F.: An Extensible Autonomous Search Framework for Constraint Programming. Int. J. Phys. Sci. 6(14), 3369–3376 (2011) 6. Crawford, B., Soto, R., Monfroy, E., Palma, W., Castro, C., Paredes, F.: Parameter tuning of a choice-function based hyperheuristic using Particle Swarm Optimization. Expert Systems with Applications 40(5), 1690–1695 (2013) 7. Crawford, B., Soto, R., Monfroy, E., Palma, W., Castro, C., Paredes, F.: Parameter tuning of a choice-function based hyperheuristic using particle swarm optimization. Expert Syst. Appl. 40(5), 1690–1695 (2013) 8. Hamadi, Y., Monfroy, E., Saubion, F.: Autonomous Search. Springer (2012) 9. Monfroy, E., Castro, C., Crawford, B., Soto, R., Paredes, F., Figueroa, C.: A reactive and hybrid constraint solver. Journal of Experimental and Theoretical Artificial Intelligence 25(1), 1–22 (2013) 10. Soto, R., Crawford, B., Monfroy, E., Bustos, V.: Using autonomous search for generating good enumeration strategy blends in constraint programming. In: Murgante, B., Gervasi, O., Misra, S., Nedjah, N., Rocha, A.M.A.C., Taniar, D., Apduhan, B.O. (eds.) ICCSA 2012, Part III. LNCS, vol. 7335, pp. 607–617. Springer, Heidelberg (2012) 11. Soto, R., Crawford, B., Galleguillos, C., Monfroy, E., Paredes, F.: A pre-filtered cuckoo search algorithm with geometric operators for solving sudoku problems. The Scientific World Journal 2014(465359), 12 (2014) 12. Yang, X.-S.: Nature Inspired Meta-heuristic Algorithms. University of Cambridge. Luniver Press, UK (2010) 13. Yang, X-S., Deb, S.: Cuckoo search via l´evy flights. In: World Congress on Nature and Biologically Inspired Computing (NaBIC 2009), pp. 210–214 (2009)