Adaptive Parallel Iterative Deepening Search

Many of the artificial intelligence techniques developed to date rely on heuristic search through large spaces. Unfortunately, the size of these spaces and the corresponding computational effort reduce the applicability of otherwise novel and effective algorithms. A number of parallel and distributed approaches to search have considerably improved the performance of the search process. Our goal is to develop an architecture that automatically selects parallel search strategies for optimal performance on a variety of search problems. In this paper we describe one such architecture realized in the Eureka system, which combines the benefits of many different approaches to parallel heuristic search. Through empirical and theoretical analyses we observe that features of the problem space directly affect the choice of optimal parallel search strategy. We then employ machine learning techniques to select the optimal parallel search strategy for a given problem space. When a new search task is input to the system, Eureka uses features describing the search space and the chosen architecture to automatically select the appropriate search strategy. Eureka has been tested on a MIMD parallel processor, a distributed network of workstations, and a single workstation using multithreading. Results generated from fifteen puzzle problems, robot arm motion problems, artificial search spaces, and planning problems indicate that Eureka outperforms any of the tested strategies used exclusively for all problem instances and is able to greatly reduce the search time for these applications.


Introduction
Because of the dependence AI techniques demonstrate upon heuristic search algorithms, researchers continually seek more e cient methods of searching through the large spaces created by these algorithms.Advances in parallel and distributed computing o er potentially large increases in performance to such compute-intensive tasks.In response, a number of parallel approaches have been developed to improve various search algorithms including depth-rst search (Kumar & Rao, 1990), branch-and-bound search (Agrawal, Janakiram, & Mehrotra, 1988), A* (Evett, Hendler, Mahanti, & Nau, 1995;Mahapatra & Dutt, 1995), IDA* (Mahanti & Daniels, 1993;Powley, Ferguson, & Korf, 1993;Powley & Korf, 1991), and game tree search (Feldmann, Mysliwietz, & Monien, 1994), as well as to improve the run time of speci c applications such as the fteen puzzle problem (Kumar & Rao, 1990) and robot arm path planning (Challou, Gini, & Kumar, 1993).In addition to MIMD

Parallel Search Approaches
A number of researchers have explored methods for improving the e ciency of search using parallel hardware.We will focus in this paper on parallel search techniques that can be applied to IDA* search.IDA* performs a series of incrementally-deepening depth-rst searches through the search space.In each iteration through the space, the depth of the search is controlled by an A* cost threshold.If a goal node is not found during a given iteration, search begins at the root node with a cost threshold set to the minimum f(n) value in the search space that exceeded the previous threshold.IDA* is an admissible search algorithm which requires an amount of memory linear in the depth of the solution.
In this section we will review existing methods for parallelizing IDA* search.In particular, we will consider alternative techniques for task distribution, for dynamically balancing work between processors, and for changing the left-to-right order of the search tree.

Task Distribution
A search algorithm implemented on a parallel system requires a balanced division of work between contributing processors to reduce idle time and minimize redundant or wasted e ort.One method of dividing up the work in IDA* search is with a parallel window search (PWS), introduced by Powley and Korf (1991).Using PWS, each processor is given a copy of the entire search tree and a unique cost threshold.The processors search the same tree to di erent thresholds simultaneously.If a processor completes an iteration without nding a solution, it is given a new unique threshold (deeper than any threshold yet searched) and begins a new search pass with the new threshold.When an optimal solution is desired, processors that nd a goal node must remain idle until all processors with lower cost thresholds have completed their current iteration.A typical division of work using PWS is illustrated in Figure 1.One advantage of parallel window search is that the redundant search inherent in IDA* is not performed serially.During each non-initial iteration of IDA*, all of the nodes expanded in the previous iteration are expanded again.Using multiple processors, this redundant work is performed concurrently.A second advantage of parallel window search is the improved time in nding a rst solution.If a search space holds many goal nodes, IDA* may nd a deep solution much more quickly than an optimal solution.Parallel window search can take advantage of this type of search space.Processors that are searching beyond the optimal threshold may nd a solution down the rst branch they explore, and can return that solution long before other processors nish their iteration.This may result in superlinear speedup because the serial algorithm conservatively increments the cost threshold and does not look beyond the current threshold.
On the other hand, parallel window search can face a decline in e ciency when the number of processors is signi cantly greater than the number of iterations required to nd an optimal (or a rst) solution, causing all remaining processors to sit idle.This situation will occur when many processors are available, yet few iterations are required because the heuristic estimate is fairly accurate.
An alternative parallel search approach relies on distributing the tree among the processors (Kumar & Rao, 1990;Rao, Kumar, & Ramesh, 1987).With this approach, the root node of the search space is given to the rst processor and other processors are assigned subtrees of that root node as they request work.As an alternative, the distributed tree search algorithm (DTS) employs breadth-rst expansion until there are at least as many expanded leaf nodes as available processors.Processors receive unique nodes from the expanding process and are responsible for the entire subtree rooted at the received node.Communication-free versions of this distribution scheme have also been reported (Mahapatra & Dutt, 1995;Reinefeld & Schnecke, 1994).In all of these tree distribution approaches, the processors perform IDA* on their unique subtrees simultaneously.All processors search to the same threshold.After all processors have nished a single iteration, they begin a new search pass through the same set of subtrees using a larger threshold.A sample distribution of the search space is shown in Figure 2. One advantage of this distribution scheme is that no processor is performing wasted work beyond the goal depth.Because the algorithm searches the space completely to one threshold before starting the search to a new threshold, none of the processors is ever searching at a level beyond the level of the optimal solution.It is possible, however, for DTS to perform wasted work at the goal depth.For example, in Figure 2 processor 3 searches nodes at the goal level that would not be searched in a serial search algorithm moving left-to-right through the tree.
A disadvantage of this approach is the fact that processors are often idle.To ensure optimality, a processor that quickly nishes one iteration must wait for all other processors to nish before starting the next iteration.This idle time can make the system very ine cient and reduce the performance of the search application.The e ciency of this approach can be improved by performing load balancing between neighboring processors working on the same iteration.
These described approaches o er unique bene ts.Parallel window search is e ective when many iterations of IDA* are required, when the tree is so imbalanced that DTS will require excessive load balancing, or when a deep, non-optimal solution is acceptable.On the other hand, dividing the search space among processors can be more e ective when the branching factor is very large and the number of IDA* iterations is relatively small.A compromise between these approaches divides the set of processors into clusters (Cook, 1997).Each cluster is given a unique cost threshold, and the search space is divided between processors within each cluster, as shown in Figure 3. Setting the number of clusters to one simulates distributed tree search, and setting the number of clusters to the number of available processors simulates parallel window search.

Load Balancing
When a problem is broken into disjoint subtasks the workload will likely vary among processors.Because one processor may run out of work before others, load balancing is used to activate the idle processor.The rst phase of load balancing involves selecting a processor from which to request work.One example is the nearest neighbor approach (Mahapatra & Dutt, 1995); alternative approaches include selecting random processors or allowing a master processor to keep track of processor loads and send the ID of a heavily loaded processor to one that is idle.During the second phase of load balancing, the donating processor decides which work, if any, to give.A search algorithm typically stores nodes which have not been fully expanded on an Open list.When giving work to another processor, nodes can be given from the head of the list (deep in the tree), the tail (near the root), or from a sampling of all levels (Kumar & Rao, 1990).
A number of approaches have been introduced for reducing processor idle time using a load balancing operation.Using the quality equalizing strategy (Mahapatra & Dutt, 1995), processors anticipate idle time by sending out a work request when their load is almost empty, so that they can continue processing remaining nodes while waiting for a response.Alternative approaches are not receiver based, but allow an overly-loaded processor to initiate a load balance operation (Furuichi, Taki, & Ichyoshi, 1990;Rajpal & Kumar, 1993) or allow all processors to periodically shift work to keep the average load within acceptable bounds (Anderson & Chen, 1987;Saletore, 1990).

Tree Ordering
Problem solutions can exist anywhere in the search space.Using IDA* search, the children are expanded in a depth-rst manner from left to right, bounded in depth by the cost threshold.If the solution lies on the right side of the tree, a far greater number of nodes must be expanded than if the solution lies on the left side of the tree.If information can be found to re-order the operators in the tree from one search iteration to the next, the performance of IDA* can be greatly improved.
Powley and Korf suggest two methods of ordering the search space (1991).First, children of each node can be ordered and expanded by increasing heuristic distance to a goal node.Alternatively, the search algorithm can expand the tree a few levels and sort the frontier set (the set of nodes at that level in the tree) by increasing h value.Search begins each iteration from the frontier set and this frontier set is updated each iteration.In both of these cases, although the nodes may have the same f value, nodes with smaller h values generally re ect a more accurate estimated distance and are preferred.
Instead of ordering individual nodes, Cook et al. (1993) order the set of operators to guide the next IDA* iteration to the most promising node.The most promising node is the node from the cut-o set (a child node not expanded in the previous iteration) with the smallest h value.As an example, Figure 4 shows a search tree expanded using one iteration of IDA* with operator ordering 0, 1, 2, 3.The path to the most promising leaf node (indicated with a star) is 1 3 2 3 0.The new operator ordering is computed using the order of operators as they appear in this path after removing duplicates.Operators not appearing in the path are added to the end of the operator list, retaining their original relative ordering.Thus the ordering of operators for the example in Figure 4 changes from 0, 1, 2, 3 (try operator 0 rst, operator 1 next, operator 2 next, and operator 3 last for every node in the tree) to 1, 3, 2, 0. This section describes a number of alternative approaches to parallel search.Our theoretical empirical analyses in the following sections demonstrate that many of the reported approaches o er some bene t in certain conditions, but no single approach is always the most e ective at scaling AI algorithms.

Comparison of Alternative Approaches to Parallel Search
One method of determining the comparative bene ts of parallel search approaches is by determining the theoretical bounds on possible speedup obtained using each approach.A second method is to perform empirical comparisons between the approaches.In this section we will draw on theoretical analyses and empirical comparisons to determine where performance trends exist and to illustrate conditions under which alternative approaches can perform best.

Theoretical Analysis
In the literature we nd theoretical analyses for the alternative approaches to one aspect of parallel search, namely task distribution.Kumar and Rao (1990) provide an analysis of the speedup of distributed tree search, and Powley and Korf (1991) provide an analysis of parallel window search.In this section we summarize these analyses with a unifying representation, and empirically compare the performance of the techniques using the derived equations.
These analyses assume that the average branching factor b remains constant throughout the search space and that the least-cost goal is located at a depth d.We also let b represent the heuristic branching factor, or the ratio of nodes generated during one iteration of IDA* to the number of nodes generated during the previous iteration of IDA*.Forcing the heuristic branching factor to be equal to the average branching allows the analysis to be the same as for incremental-deepening depth-rst search.
For the distributed tree search analysis, we assume that a breadth-rst expansion is used to generate enough nodes, n, to distribute one node to each of P processors.Since n = b x and n P, we can assume that the tree is expanded to depth x where x log b P.
We will assume a time of 2b x 2P to perform the node distribution and to collect the solution results from each processor.The speedup of distributed tree search, measured as the run time of the serial algorithm divided by the run time of the parallel algorithm, can be computed here as the number of serial nodes generated (assuming a constant node expansion time) divided by the number of serial node expansions performed by the parallel algorithm.This is derived in the literature (Kumar & Rao, 1990;Varnell, 1997) as (1) As d increases, the leftmost fractional part of this equation approaches 1 and can be ignored.The 1=2b x term contributes a minimal amount to the nal value and can also be ignored.In this case, speedup approaches P, which represents linear speedup.
Figure 5 shows the performance of the distributed tree search algorithm based on these equations on a perfectly balanced tree and on a heavily imbalanced tree for P = 10, b = 3, and d = 10.In the imbalanced case, the size of the processors' search spaces varies as an exponential function where the rst processor is assigned a majority of the work and the load decreases as the processor number increases.In this graph, the goal position ranges from the far left side of the tree (position = 0) to the far right side of the tree (position = 1).Performance of the search algorithm always peaks when the goal is on the far left side of a processor's portion of the search space.For the case of an imbalanced tree, much of the search space is assigned to a single processor, which increases the resulting amount of serial e ort required.
We next consider the theoretical performance of the parallel window search algorithm.Recall that parallel window search operates by distributing the window sizes, or cost thresholds, to each available processor so each processor performs one iteration of IDA*.Since thresholds are not explored sequentially, the rst solution found may not represent an optimal path.To ensure an optimal solution, all processors with a lower threshold must complete their current iteration of IDA*.In the worst case, this can make the performance of parallel window search equal to that of a serial version of IDA*.
In this analysis the assumption is made that a su cient number of processors exists such that the goal iteration will start without delay.Speedup of parallel window search can be calculated as the ratio of the number of non-goal plus goal iteration nodes to the number of nodes generated by the processor performing the goal iteration.Powley and Korf generate this ratio using the notion of the left-to-right goal position a, de ned as the fraction of the total number of nodes in the goal iteration that must be expanded before reaching the rst goal node (1991).Speedup of parallel window search can thus be expressed as (2) Given this formula, we can empirically compare the performance of distributed tree search and parallel window search for P = 10, b = 6, and d = 10.From the graph in Figure 6 we can see that parallel window search will outperform distributed tree search only if the goal is located on the far left of the search space.We also observe that performance of distributed tree search peaks whenever the goal node is located on the far left of the subspace assigned to a particular processor.Similar analyses have been provided to compare node ordering techniques and to determine the optimal number of clusters (Cook et al., 1993;Powley & Korf, 1991;Varnell, 1997).These analyses do indicate trends in the performance of alternative strategies based on features of the problem space, and can also be used to determine the theoretical performance of a particular technique for a given problem.However, the terms used to predict the performance in many of these analyses are not always measurable and many assumptions made are too constraining for real-world problems.

Empirical Analysis
A second method of determining the comparative bene ts of parallel search approaches is via empirical analyses.We have implemented a number of the approaches to parallel search described earlier in this paper in the Eureka system.We have also constructed an arti cial search space generator to provide a testbed for these experiments.Search space parameters can be established by the user, including: the cost of the optimal solution, the left-to-right position of the goal node in the space, the branching factor, the tree imbalance, the solution density (fraction of nodes at or beyond the optimal solution cost that represent goal nodes), and the heuristic error (the di erence between the estimated and true distances to the nearest goal node).All of the experiments described here were run on an nCUBE II message-passing multiprocessor using 32 processors.
In our rst experiment we consider how the optimal number of clusters may be a ected by features of the problem space including branching factor, tree imbalance, and solution position.Figures 7, 8, and 9 demonstrate that the optimal number of clusters increases as the branching factor decreases (with a balanced tree, an optimal cost of 16, and the goal on the far right side of the tree), as the imbalance increases (with a branching factor of 3, an optimal cost of 15, and the goal in the middle of the tree), or as the goal node moves to the right side of the tree (with a balanced tree, a branching factor of 3, and an optimal cost of 15).In no case did one single number of clusters always perform best.
In the next experiment we focus on the e ects of operator ordering.Figure 10a demonstrates that employing operator ordering causes an increase in the optimal number of clusters, and Figure 10b shows that operator ordering (using perfect ordering information) results in a more signi cant improvement over no ordering as the solution node is positioned farther to the right in the tree.In this experiment the search trees are balanced with a branching factor of 4 and an optimal cost of 12.The dip in the plot occurs when the goal is positioned on the far left of a particular processor's subspace.

The EUREKA System
The empirical and theoretical comparisons presented in the previous section indicate that alternative parallel search strategies perform well under di erent conditions, and that performance trends do exist which can be used to automatically select strategies and parameter settings for new problems.However, the results of these studies are not su cient for automatically determining the appropriate set of strategies.One limitation is that information used to generate the formulas and to control the experiments, such as goal position, is not known in advance.Another limitation is that some of the assumptions, such as a constant branching factor, are not realistic for many applications.As a result, we need a method to automatically select optimal strategies for real-world problems given information that is available.
In response to this need, we add a machine learning component to the Eureka system.Eureka merges many of the approaches to parallel search discussed the previous section.Parameters can be set that control the task distribution strategy, the load balancing strategies, and the ordering techniques.In particular, the strategies that can be selected include: The user is allowed to determine the types of strategies to be used for a given problem.However, because such a decision is di cult to make without signi cant information about the search space, Eureka also has the capability of making all necessary strategy selections.Based on the characteristics of a search space, Eureka automatically con gures itself to optimize performance on a particular application.Sample problems are fed as training examples to a machine learning system, which in turn learns the optimal strategies to apply to particular classes of search spaces.Applying machine learning to optimize software applications has been pursued in other areas of research.For example, Minton (1996) has applied a similar technique to automatically synthesize problem-speci c versions of constraint-satisfaction algorithms.Research in other areas of computer science has yielded similar ideas of customizable environments applied to computer networks (Bhattacharjee, Calvert, & Zegura, 1997;Steenkiste, Fisher, & Zhang, 1997) and to interactive humancomputer interfaces (Frank, Sukavirija, & Foley, 1995;Lieberman, 1998).This work is unique in allowing both problem-speci c and architecture-speci c features to in uence the choice of strategies and in applying adaptive software techniques to parallel search.Eureka also o ers a framework that can potentially automate both static and dynamic software customization.
To perform parallel search, Eureka executes the following steps: 1. Timings from sample problem instances are captured, varying each strategy parameter independently.In order to acquire an e ective sample set, problems are selected from a variety of domains and parallel architectures.2. For each problem instance, Eureka captures features of the problem space that are known to a ect the optimal choice of strategy.These features include: Branching Factor (b): The average branching factor of the search tree.Heuristic Error (herror): The di erence, on average, between the estimated distance to a goal node and the true distance to the closest goal node.This is estimated from the shallow search by computing the di erence between the estimated distance to the goal at the beginning of the search and the smallest estimated distance to the goal for all leaf nodes of the shallow search, minus the actual distance from the root node to the leaf node.
Imbalance (imb): The degree to which nodes are unevenly distributed among subtrees in the search space.
Goal Location (loc): The left-to-right position of the rst optimal solution node.
This is estimated from the shallow search by determining which subtree contains nodes with the lowest estimated distances to the goal.

Heuristic Branching Factor (hbf):
The ratio of nodes expanded between the current and previous IDA* iterations.
Features from the non-goal iterations represent attributes for the test case, and the strategy that results in the best performance (shortest run time) represents the correct classi cation of the problem instance for a given strategy choice.
3. Problem attributes are combined with the corresponding classes and are fed as training examples to a machine learning system.We use C4.5 (Quinlan, 1993) to induce a decision tree from the pre-classi ed cases.A rule base is generated for each concept to be learned, corresponding to each of the strategy decisions listed above that need to be made.
4. To solve a new problem, Eureka performs a shallow search through the space until roughly 200,000 nodes are expanded.If a goal is not found during the shallow search, the features of the tree are calculated at this point and used to index appropriate rules from the C4.5 database.
5. The learned rules recommend strategy choices given the features of the new problem space.Eureka then initiates a parallel search from the root of the space, employing the selected strategies.For many applications, the initial expansion takes only a few seconds and does not greatly a ect the runtime of the search algorithm.
The described set of features and the amount of time to spend on the initial Eureka iteration are chosen based on our experimental data to yield the most helpful information in the shortest time.Searching enough iterations of the problem space until 200,000 nodes are generated takes less than 10 seconds on the problem domains we tested.Spending less time than this may yield erroneous information because features of the tree do not stabilize until several levels down in the tree.Searching additional iterations in general does not signi cantly improve the quality of information and the time requirements grow exponentially.Improved approaches may include performing the initial search until the stability of the space reaches a prescribed level, or periodically updating the C4.5 choices and adjusting the parallel search approaches dynamically during execution.Performing an initial shallow search has also been shown to be e ective in other parallel search research.For example, Suttner (1997) performs parallel search of the rst few IDA* iterations twice during parallel search in order to determine the number of individual tasks that should be distributed to each processor.Cook et al. (1993) also perform an initial shallow search in order to obtain more accurate operator ordering information to use in reordering the search space.In each case, the amount of time required to perform the extra initial search is minimal yet greatly improves the performance of the overall search task.
The selected features each demonstrate a signi cant in uence on the optimal search strategy.Although feature values can change dramatically from one problem to the next, each feature remains fairly stable between levels of the same tree.As a result, computing the values of these features at a low level in the tree provides a good indication of the structure of the entire tree.The \Deviation Within Problems" entries in Table 1 show the standard deviation of each feature value over all search tree levels.The results are averaged over 98 problem instances in the fteen puzzle domain 1 and 20 problem instances in the robot arm motion planning domain.Both of these test domains are described in the next section.The low values in these columns indicate that the features provide a good indicator of the structure of the problem space at all levels in the tree.In contrast, the \Deviation Between Problems" table entries show the standard deviation of the average feature value (averaged over all levels in each tree) over all problem spaces.The larger values in these columns indicate that the features can e ectively distinguish between di erent problem spaces.
Eureka is written in C and is currently implemented on an nCUBE 2, on Linux workstations using the Parallel Virtual Machine (PVM) communication software, on a DEC Alpha using an implementation of Posix threads, on Windows NT running Java threads and Cilk threads, and as a distributed Java system using RMI.We are also currently investigating means of dynamically switching between strategies during execution as the problem structure or environment changes.
1.The two largest fteen puzzle problem instances were not included due to the amount of time required to generate this data for these problems.

Experimental Results
In this section we will present experimental results that compare the performance of our adaptive parallel search strategy with each xed strategy used exclusively for all problem instances.In particular, we will verify the following hypotheses in this section:

Test Domains
One of our test domains is the well-known fteen puzzle problem.This problem consists of a 4 4 grid containing tiles numbered one to fteen, and a single empty tile position called the blank tile.A tile can be moved into the blank position from an adjacent position, resulting in the four operators up, down, left, and right.Given the initial and goal con gurations, the problem is to nd a sequence of moves to reach the goal.A sample goal con guration is shown in Figure 11.The Manhattan Distance Function provides an admissible heuristic for this problem, and we use the 100 problem instances provided in Korf's test data (1991). 2 Our second application domain is the robot arm motion planning problem.Traditional motion planning methods are very costly when applied to a robot arm, because each joint has an in nite number of angles to which it can move from a given con guration, and because collision checking must be performed for each arm segment.Craig provides a detailed description of the calculations necessary to determine the position of the end e ector in the 3D workspace given the current joint angles (1989).For our experiments, we use the parameters de ned for the Puma 560 robot arm with six degrees of freedom shown in Figure 12.The size and layout of the room is the same for each of our test problems, but we vary the initial and goal arm con gurations to generate 20 problem instances.The 2. Because of time constraints, we estimated the serial run time for the two largest fteen puzzle problem instances using the number of required node expansions for these problems published in Korf's paper and the mean node expansion time averaged over the next ve largest problem instances.robot arm path planning problem is particularly di cult because considering every possible arm movement results in a search space with an in nite branching factor.We encode one possible move size for each joint, resulting in a branching factor of 6.The resolution of the moves can be determined by the user, and for these experiments we choose a resolution of 1 degree.Our third test domain uses the arti cial search space in which parameters including branching factor, tree imbalance, solution cost, heuristic error, and left-to-right goal position can be speci ed by the user.We generate 20 problem instances for use in the experiments.
For our fourth test domain, we integrate our own C-based version of the SNLP nonlinear planner (Barrett & Weld, 1992) into Eureka.To conform with the Eureka architecture, the integrated planner utilizes IDA* search instead of the Best-First search method employed by SNLP.Each plan repair step ( lling an open condition or handling a threat) is treated as a separate node in the search space to be explored.We compute the cost of a plan solution as the number of operations and constraints in the plan, and the distance to the goal is estimated using the number of remaining aws.We select 20 problem instances for our experiments from the blocks-world, Towers of Hanoi, and monkey-and-bananas planning domains.
To create test cases, we run each problem instance multiple times, once for each parallel search strategy in isolation.The search strategy that produces the best speedup is considered to be the \correct" classi cation of the corresponding search tree for C4.5 to learn.Test cases are run on 64 processors of an nCUBE 2 and on 8 distributed workstations using  We compare the results of C4.5-selected strategies to each strategy used exclusively for all problem instances.Speedup results for various strategy decisions averaged over all problem instances are shown in the following sections.The best average speedup is highlighted in each case.The C4.5 results are captured by performing a ten-fold cross validation on the fteen puzzle data and a three-fold cross validation on the robot arm motion planning, arti cial, and nonlinear planning data sets.Speci cally, a decision tree is created from the training cases and used to select the strategy for the test cases.C4.5 speedup is averaged over all test cases for one iteration of this process, and the nal values are averaged over cross-validation iterations.

Distribution Results
Test results are obtained for the two alternative distribution approaches.The fteen puzzle, the robot arm motion planning problem, and the arti cial search space serve as problem domains.Experimental results are shown in Table 2.For each domain, the control variable is indicated under the \Approach" column.
The breadth-rst distribution performs slightly better than C4.5 for the fteen puzzle data set; however, the C4.5 recommendations outperform the breadth-rst approach for the robot motion problem domain.The row labeled Combined-C4.5 is the result of merging the fteen puzzle results with the robot motion planning results and running the combined data set through C4.5.The performance is better than for the fteen puzzle but slightly worse than for the robot motion planning domain.
Note that using the ltered 15 puzzle data, Eureka achieves a speedup of 79.17 although the number of processors used is only 64.These parallel search algorithms can produce superlinear speedup (speedup greater than the number of processors) because the parallel algorithms do not completely imitate the serial algorithm.For example, using distributed tree search individual subtrees are assigned to separate processors.If a goal node is located on the far left side of the rightmost subtree in the search space, the processor searching this subtree will quickly nd the goal node, thus terminating search after only a few node expansions.In contrast, the serial algorithm in a left-to-right search will completely search all other subtrees to the cost threshold before searching and nding the goal node in the rightmost subtree.Thus the serial algorithm will perform disproportionately more search than all processors combined using the parallel algorithm.Each type of parallel search approach described in this paper can yield superlinear speedup under certain conditions.Some algorithms more closely imitate serial search, but at a potential loss of overall performance (Kale & Saletore, 1990).
Eureka's selection of strategies in the fteen puzzle domain does not perform consistently better than using some of the strategies in isolation.One reason for this disappointing performance is the nature of the training data.Although we use the strategy that achieves the best run time as the correct \classi cation" for a given problem instance, there does not always exist a clear winner for each problem instance.On some problem instances one strategy dramatically outperforms the others.On other problem instances two or more strategy selections perform almost equally well.
This problem is exacerbated by the fact that there is some noise inherent in the collected run times.To demonstrate the amount of error that can be present in the timings we select twelve instances of the fteen puzzle problem (four small, four medium, and four large instances), and time ve runs of each instance with identical strategy parameters on an nCUBE 2. We compute the standard deviation of the speedups for ve runs of the same problem instance, and then divide the result by the sample mean to ensure the result is not a ected by the magnitude of the speedup values.This coe cient of variation averaged over all problem instances in the category is listed in Table 3 along with the average speedup for the instances in the problem category.As shown, the amount of error present in the timings can be quite large, and when two strategies perform almost equally well, the winner for any given run can be almost arbitrary.
To account for such misleading data, we sort all problem instances in the fteen puzzle domain by the amount of variance of the strategy timing results.Those problem instances We perform a similar ltering step to the robot arm motion planning domain data.This approach can be used in each domain in which problem instances do not always yield a clear strategy winner.For example, problem instances drawn from the planning domain and arti cial domain all demonstrate high variance of strategy timings, thus all problem instances are utilized.For any given domain, the number and type of test cases to use as training data can be selected based on the amount of variance of strategy results.The disadvantage of the ltered-data method is that cases in which two strategies yield similar timings may be discarded, even when the two strategies perform much better than other possible strategies.
The results in Table 3 verify that Eureka can automatically select parallel search strategies that yield greater speedup than using any single strategy for all problem instances pulled from the ltered data sets.However, this table does not indicate how well the machine learning component is performing at the classi cation task.One danger in listing only speedup results is that the numbers may be biased by the magnitude of several large problem instances in which Eureka correctly picks the best strategy.
In Table 4 we measure how well the system classi es each new test problem.Once again we perform ten-fold cross validation and show mean classi cation error for each approach.The xed strategies (Kumar and Rao, Breadth-rst) always pick the correct classi cation of a problem instance as their own, and C4.5 uses its decision tree to pick the classi cation of the problem instance.Signi cance values are gathered using a paired student t-test and are shown in parentheses following the mean error.In each of the ltered data sets, C4.5 signi cantly outperforms either xed approach (p 0.03) when predicting the correct classi cation of unseen problem instances.

Clustering Results
In this experiment Eureka selects the optimal number of clusters to use for each problem instance.By combining the features of distributed tree search and parallel window search, it is possible to achieve better performance than when each approach is used in isolation.
The clustering algorithm is tested using 1, 2, and 4 clusters on 64 processors of an nCUBE 2 for the fteen puzzle, robot motion planning, and SNLP domains, and using 1 and 2 clusters for the fteen puzzle domain on a distributed network of 8 PCs.Test results for the clustering algorithm are presented in Table 5.Table 5 demonstrates that Eureka's automatic strategy selection using C4.5 outperforms any xed strategy in almost all domains, and always performs best when the ltered data sets are used.The table also indicates that the optimal number of clusters on average varies from one domain to another, thus reinforcing the need for automatic selection of this parameter.In the PVM experiments, because only eight processors are available we experimented with 1 or 2 clusters for each problem instance.The combined results are again collected from the test cases for the fteen puzzle and robot arm motion planning domains.
The classi cation results for choice of number of clusters are shown in Table 6.On the ltered data set, C4.5 outperforms all xed strategies at a signi cance level of p 0.02.

Ordering Results
In this experiment we demonstrate Eureka's ability to pick a method of ordering the tree for expansion.Table 7 shows the results of this experiment.For the fteen puzzle, the two tested xed orderings are (Up, Left, Right, Down) and (Down, Left, Right, Up).For the robot arm motion planning domain, two xed orderings are tested corresponding to ordering joint moves from the base of the arm to the end e ector, and ordering joint moves from the end e ector rst down to the base of the arm last.Only one ordering is used for the arti cial domain.
In this experiment, C4.5 yields the best speedup results for all databases, ltered or un ltered.In the arti cial domain, because perfect ordering information is available the TOIDA strategy also yields the best possible speedup results.The combined results are generated using the fteen puzzle and robot arm motion planning problem instances.
Table 8 shows the results of classifying ordering problems on the ltered and un ltered data sets.While C4.5 always yields the best average speedup, the learning system does not yield the best classi cation accuracy on un ltered data, though it does achieve the best results on the ltered data sets.On the ltered data sets, C4.5 outperforms xed strategies at a signi cance value of p 0.02 or better.

Load Balancing Results
Load balancing signi cantly a ects the performance of a majority of parallel algorithms.
When work is divided evenly among processors, no load balancing is necessary.Heuristic search frequently creates highly irregular search spaces, which results in load imbalance between processors.Eureka permits load balancing operations during iterations of IDA*.
A processor with nodes available on its open list may donate some or all of the nodes to a requesting processor.Decisions that a ect system performance include deciding when to balance the load, identifying a processor from which to request work, and deciding how much work to donate.
In the rst load balancing experiment we test Eureka's ability to select the appropriate processor polling strategy.We have implemented the asynchronous round robin and the random polling approaches.On the nCUBE 2, a processor's D neighbors are polled for work (using the nCUBE's hypercube topology, D corresponds to log 2 P) whereas in the PVM environment, a processor's right and left neighbors are polled (D = 2 because the workstations are connected with a ring topology).The results of this experiment are listed in Table 9.
Table 9 shows that once again C4.5 yields the best speedup in most cases and always yields the best speedup on ltered data sets.Among the xed results, no single approach outperforms the others on all data sets.Table 10 summarizes the classi cation results of the xed strategies in comparison to the C4.5 classi cations.For each of the ltered data sets, C4.5 outperforms any xed strategy with a signi cance of p 0.04 or better.
The second load balancing experiment demonstrates Eureka's ability to determine the optimal amount of work to donate upon request.If too little work is donated, the requesting processor will soon return for more work.If too much work is donated, the granting processor will soon be in danger of becoming idle.Table 11 lists the results of this experiment, demonstrating once again that the learning system is capable of e ectively selecting load balancing strategies, except when the un ltered test cases from the fteen puzzle are used (on the nCUBE and on the distributed network of workstations).The combined results are generated using training cases from the fteen puzzle and robot arm motion planning nCUBE examples.
Table 12 lists the classi cation accuracy results.C4.5 does not perform signi cantly better than the xed strategies for the un ltered data, but does perform signi cantly better (p 0.04) than the xed strategies for the ltered data.In this experiment we allow Eureka to select all strategy choices at once for a given problem and execute the parallel search with the recommended strategies.We then compare the results to each xed strategy (the xed strategy choice is averaged over all problem instances and all possible choices of other strategy decisions).A random set of 50 problems from the fteen puzzle domain is selected and run on 64 processors of the nCUBE 2. Table 13 summarizes the speedup for each approach.
These results indicate that Eureka can e ectively make all strategy choices at once.The learned rules achieve better performance than that obtained by any one of these strategy choices.These rules also outperform any single xed strategy choice averaged over all other parameter options.

Machine Learning Comparison
In the current version of the Eureka system, we use C4.5 to induce a decision tree based on the training data.C4.5 has proven to be e ective in predicting the strategy choices for these test domains.In addition, the output of the system is available as a symbolic rule base, which may allow the system developer to determine the factors that a ect strategy selection for a given application domain.
Other machine learning approaches can also be used to perform strategy selection in the Eureka system.To test the results of various existing approaches, we supplied the data from all of the 15 Puzzle classi cation experiments described in the previous section as input to versions of C4.5, the ID3 decision tree induction algorithm (Quinlan, 1986), the CN2 sequential covering algorithm (Clark & Niblett, 1989), a backpropagation neural net (Rumelhart & McClelland, 1986), a Bayesian classi er (Cestnik, 1990), and a majority-wins classi er.As with the other experiments, results are based on ten-fold cross-validation.
Table 14 shows that the decision tree algorithms performed best on this particular data set.Ultimately, the best machine learning algorithm in this context is the algorithm that consistently yields the best speedup.If we consider normalized problem speedups, the algorithm that produces the best classi cation on average will also produce the greatest speedup.We will continue to explore various machine learning methods to determine the approach that will work best for this type of application.

Conclusions and Future Work
This paper reports on work performed to combine the bene ts of parallel search approaches in the Eureka system.Experimentation reveals that strategies developed over the last few years o er distinct bene ts to improving the performance of AI applications.However, while any particular algorithm can provide signi cant speedup for one type of problem, on other problems these algorithms can actually produce worse results than using a serial version of the search algorithm.As a result, these strategies need to be carefully chosen based on the characteristics of a particular problem.
In this paper we demonstrate the ability of Eureka to automatically select parallel search strategies and set appropriate parameters.Eureka employs the C4.5 machine learning system to make an intelligent choice of strategies for each new problem instance.Experiments from the domains of the fteen puzzle problem, robot arm motion planning, an arti cial search space, and planning problems indicate that Eureka yields both improved speedup results and signi cantly improved classi cation accuracies over any strategy used in isolation when high-variance training cases are used.These experiments also demonstrate Eureka's ability to select all parameters at once and to outperform any xed strategy over a set of problem instances.In addition, we demonstrate that Eureka can bene t by utilizing training cases drawn from a variety of test domains, thus we would expect the performance of the system to improve even more as we incorporate data from new problem domains and architectures.
Two of the challenges introduced by our research are the ability to determine discriminating features and the ability to provide clear classi cations for training examples.In our experiments we veri ed that the features we chose could be measured early during the search process and still be representative of the problem space later on during execution.As we apply our approach to a greater variety of problems we will need to develop a more formal methodology for selecting representative and discriminating features.In addition, we observed dramatic performance improvements when test cases were drawn from problem instances with clear classi cations.We would like to pursue methods of learning from instances that exhibit low variation in performance of alternative strategies and high variation in problem size.
The current implementation of Eureka focuses on an IDA* approach to search.One reason for this choice of search method is the linear memory requirements of the algorithm.A second advantage of this search method is that an iterative deepening search method provides feedback in each iteration that can be used to adjust parameters for the next search iteration.As a result, Eureka can potentially adjust the strategy choices from one iteration of the search algorithm to the next as features of the space vary.However, in some problem domains non-iterative search algorithms may be preferred.A future challenge for our research is to re ne the adaptive parallel search algorithm for use in a greater variety of iterative and non-iterative search algorithms.

Figure 1 :
Figure 1: Division of work in parallel window search

Figure 2 :
Figure 2: Division of work in distributed tree search

Figure 3 :
Figure 3: Space searched by two clusters, each with 3 processors

Figure 5 :
Figure 5: Distributed Tree Search Contrasting Tree Balance

Figure 6 :
Figure 6: Distributed Tree Search vs. Parallel Window Search

Figure 11 :
Figure 11: Fifteen puzzle problem instance PVM.In the rst set of experiments we x all strategy choices but one and vary the strategy choice under consideration.The default parameter choices are:

Table 1 :
Problem Feature Value Deviations

Table 2 :
Distributed Tree Search Speedup Results

Table 3 :
Average Speedup Standard Deviation

Table 4 :
Distributed Tree Search Classi cation Results that yield a clear strategy winner are placed at the top of the list.We then lter the data set to keep only the top third of the sorted problem instances.The instances in the top third of this ltered data set are duplicated in the training set.The results of Eureka's performance on this ltered training set is shown for each experiment in the Fil-15P column.

Table 6 :
Clustering Classi cation Results

Table 8 :
Ordering Classi cation Results

Table 10 :
Load Balancing Classi cation Results

Table 14 :
Machine Learning Comparison