Multi-Objective Path-Based D* Lite
Abstract
Incremental graph search algorithms such as D* Lite reuse previous, and perhaps partial, searches to expedite subsequent path planning tasks. In this article, we are interested in developing incremental graph search algorithms for path finding problems to simultaneously optimize multiple objectives such as travel risk, arrival time, etc. This is challenging because in a multi-objective setting, the number of “Pareto-optimal” solutions can grow exponentially with respect to the size of the graph. This article presents a new multi-objective incremental search algorithm called Multi-Objective Path-Based D* Lite (MOPBD*) which leverages a path-based expansion strategy to prune dominated solutions. Additionally, we introduce a sub-optimal variant of MOPBD* to improve search efficiency while approximating the Pareto-optimal front. We numerically evaluate the performance of MOPBD* and its variants in various maps with two and three objectives. Results show that our approach is more efficient than search from scratch, and runs up to an order of magnitude faster than the existing incremental method for multi-objective path planning.
Index Terms:
Motion and Path Planning, Planning under UncertaintyI Introduction
The Shortest Path Problem (SPP), which aims of finding a minimum-cost path between two nodes in a graph, is a problem of fundamental importance with numerous applications in robotics and logistics [23, 24]. There are several algorithms [7, 3] that can solve SPP to optimality. Incremental search algorithms, such as LPA* [9], D* Lite [8] etc., generalize these planners to a dynamic setting that allows for cost changes in the edges of the graph. When edge costs change, incremental search algorithms aim to reuse previous searches to speed up subsequent planning tasks. Incremental search is very useful in robotic applications which include navigation in an unknown terrain [23].
One can envision applications such as hazardous material transportation [2], robot routing in urban waterways [18], where path planning may involve minimizing multiple (conflicting) objectives such as travel risk, fuel usage, arrival time, to name a few. It may not be possible to convert these objectives into a single, weighted objective because the choice of weights is difficult to obtain [17]. This has led researchers to address the multi-objective shortest path problem (MO-SPP) [10, 21]. MO-SPP generalizes the conventional SPP by associating each edge in the given graph with a cost vector where each component of the vector corresponds to an objective to be minimized.
In the presence of multiple conflicting objectives, in general, there may not be a single path that optimizes all the objectives. Therefore, the goal of MO-SPP is to find a Pareto-optimal set (of feasible paths), whose cost vectors form the so-called Pareto-optimal front. A path is Pareto-optimal (or non-dominated) if no objective can be improved without deteriorating at least one of the other objectives. MO-SPP is NP-hard, even with two objectives [6, 4], as the size of the Pareto-optimal front can grow exponentially with respect to the number of nodes in the graph. To solve MO-SPP, there are several A*-like planners [21, 11, 22, 5] which compute the exact or an approximated Pareto-optimal front.
In this work, we consider the dynamic version of the MO-SPP where the costs of the edges can change. After an event when some edge costs change, we aim to develop an incremental search algorithm that reuses previous searches to speed up similar planning tasks. Incremental search is important since a naive approach that computes Pareto-optimal front from scratch after every event can be computationally expensive for MO-SPP. To our knowledge, the only existing work that considers a similar problem is MOD* [12], which combines D* Lite and MOA* [21] to reuse previous searches. However, MOA* has been shown [11] to be inefficient due to its node-based expansion during the search and is outperformed by NAMOA* [11] which employs path-based expansion. (See Sec. IV for details).
This work aims to leverage both D* Lite and the path-based expansion in NAMOA* to create a novel incremental multi-objective planner to plan paths in dynamic environments. Fusing D* Lite and NAMOA* is challenging. D* Lite defines local consistency between adjacent nodes and keeps expanding nodes that are locally inconsistent until an optimal path is found; it’s non-trivial to fuse local consistency between nodes with a path-based expansion strategy in a straightforward way.
To achieve this goal, we propose a new type of local consistency in multi-objective settings that is suitable for path-based methods. We then develop a new algorithm named Multi-Objective Path-Based D* Lite (MOPBD*). We analyze and show that MOPBD* is able to compute all Pareto-optimal solutions in a dynamic graph. In addition, we also develop a sub-optimal variant of MOPBD* called MOPBD*-, which leverages -dominance [13] to efficiently approximate the Pareto-optimal front. To verify the proposed algorithms, we run extensive numerical simulations in several dynamic graphs with two and three objectives, which show MOPBD* and its variant are more efficient in comparison with running NAMOA* from scratch (baseline 1) and the existing node-based incremental method MOD* (baseline 2).
II Related Work
Incremental search algorithms such as D* [19], LPA* [9], D* Lite [8], etc [1], reuse previous searches (by storing partial solution paths in a search tree) to speed up the current search without losing optimality guarantees. However, all these algorithms optimize a single-objective: minimizing the sum of edge cost values along the planned path.
In the case of multiple objectives, developing efficient algorithms to compute the exact Pareto-optimal set or its approximation for MO-SPP has a long history [10] and remains an active research topic [21, 11, 22, 5]. Seminal works MOA* [21] and NAMOA* [11] both extend A* to handle multiple objectives but with different strategies. MOA* uses a node-based selection and expansion strategy while NAMOA* adopts a path-based one and outperforms MOA* in general [11].
This work focuses on incremental search algorithms for MO-SPP. To our limited knowledge, the only work in this area is MOD* [12], which is an incremental node-based multi-objective search algorithm combining the best of MOA* and D* Lite. Since it is known that NAMOA* outperforms MOA* in many instances [11], we expect an incremental search algorithm based on NAMOA* can also outperform search algorithms (such as MOD*) based on MOA*. Our contribution in this work is a novel algorithm named Multi-Objective Path-Based D* Lite (MOPBD*), which leverages both path-based expansion in NAMOA* and incremental search in D* Lite. We compared our MOPBD* with both MOD*, a node-based incremental method (baseline 1), and running NAMOA* to search from scratch each time (baseline 2). The numerical results show that MOPBD* outperforms both baselines.
III Problem Description
Let denote an un-directed graph representing the workspace of the robot, where the node set denotes the set of possible locations for the robot and the edge set denotes the set of actions that move the robot between any two nodes in . In addition, let denote the set of neighbors ( adjacent nodes) of a node . We use to denote the initial and destination node of the robot respectively, and let represent the current node of the robot during the navigation. Note that when the navigation starts, . For any two distinct nodes , the edge between and is denoted as . The cost of an edge is a non-negative cost vector , where denotes the set of non-negative real numbers and is a positive integer. Here, each component of the cost vector corresponds to an objective to be minimized.
In this work, let represent a path connecting via a sequence of nodes in , where and are connected by an edge , for . Let denote the cost vector corresponding to the path, which is the sum of cost vectors of all edges present in the path, . To compare any two paths, we compare the cost vector associated with them using the dominance relationship [4]:
Definition 1 (Dominance)
Given two vectors and of length , dominates (referred as ) if and only if , and there exists such that .
If does not dominate , this non-dominance is denoted as . Any two paths are non-dominated (to each other) if the corresponding cost vectors do not dominate each other. The set of all the non-dominated paths between and is called the Pareto-optimal set. A maximal subset of the Pareto-optimal set where any two paths in this subset do not have the same cost vector is called a cost-unique Pareto-optimal set. The set of all the cost vectors of the paths in a Pareto-optimal set is called the Pareto-optimal front ( a set of non-dominated cost vectors).
In this work, we aim to compute when the robot moves in a dynamic graph, the cost vectors of edges in can change. Note that is computed repetitively since (1) changes as robot moves and (2) the cost vectors of edges can change during the navigation.
IV Preliminaries
IV-A D* Lite
D* Lite [8] is an incremental version of A* [7] that searches backwards from to so that the constructed search tree, which stores partial solution paths, can be reused as changes. To make the presentation consistent, for the rest of the work, we present all the methods by searching backwards from to .
During the search, D* Lite maintains two types of cost-to-come at a node : the -value and -value .11 1 We follow the convention in [1], where - and -values are introduced. Value stores the cost of the best path found between and during its last expansion, while is computed from the -values of , and thus, is potentially better informed than . Formally,
| (1) |
Based on the - and -values, a node is consistent if , and inconsistent otherwise. An inconsistent node is either underconsistent () or over-consistent (). To initialize, the -values of all nodes but are set to and is set to zero, while the -values of all nodes are set to . Clearly, is the only inconsistent (and overconsistent as ) node at initialization.
Let denote the cost-to-go, which underestimates the cost of paths between and , and define . D* Lite defines the key of nodes as with and . Let OPEN denote a priority queue containing all inconsistent nodes to be expanded, where the nodes are prioritized by comparing their keys in the lexicographic order. In other words, if or both and . The OPEN in D* Lite always contains all inconsistent nodes, and in each search iteration, the node with the minimum key is selected for expansion.
To expand an inconsistent node , is made equal to , which makes consistent, and for every node , is updated based on Eqn. (1). Additionally, a parent pointer is maintained at node when is expanded so that a path between and can be easily reconstructed by iteratively following the parent pointers. D* Lite terminates when no node in OPEN has a smaller key than , which guarantees that has reached the minimum and an optimal solution path between and can be reconstructed.
When computing the initial solution path (note that ), D* Lite is equivalent to (backwards) A* search. After the generation of , if edge costs change, D* Lite recomputes the -values of nodes that are immediately affected by these edges. Among these nodes, inconsistent ones are inserted into OPEN with updated keys. Then, D* Lite runs in the same manner by expanding inconsistent nodes until all remaining nodes in OPEN have keys no less than .
IV-B MOA*
The basic difference between MO-SPP and SPP is that there are multiple non-dominated partial solution paths between any pair of nodes in the graph in general. Consequently, different from A* where -values are computed for each node, MOA* [21] introduces sets: is a set of non-dominated cost vectors, each of which represents a non-dominated path between and . Similarly, is a set of heuristic vectors, each of which underestimates the cost of a non-dominated path between and . The -set is defined as , where is an operator that takes a set of vectors (denoted as ) as input and computes its non-dominated subset (denoted as ), for any , and are non-dominated. To simplify the presentation without losing generality, we consider the case where of a node contains only a single heuristic vector that (component-wise) underestimates the cost vector of all paths between and .
At any stage of the search process, let denote the set of non-dominated cost vectors of the solutions found by the search thus far. Initially, is empty. The output of the search process is which is the true Pareto-optimal front for a given problem instance. In every search iteration, MOA* selects a node from OPEN so that there exists that is non-dominated by any vector for any other node OPEN, . MOA* then expands the selected node by extending all partial solutions represented by vectors in . For each node , a set of new partial solution paths represented by cost vectors is computed and , so that contains all non-dominated cost vectors at after expanding . In addition, is updated and node is added to OPEN for future expansion if there exists that is non-dominated by cost vectors in .
There are two features of MOA* (node-based) that distinguish it from NAMOA* (path-based, see Sec. IV-D):
- •
when a new non-dominated partial solution is found at node , node is (re-) inserted into OPEN;
- •
when a node is selected from OPEN for expansion, all non-dominated partial solutions at are extended.
These two features show that MOA* takes a node-based expansion strategy. As one can expect, MOA* can lead to a lot of re-expansion of nodes as there are multiple non-dominated partial solutions at each node for a MO-SPP. In addition, node expansion can be computationally demanding as all partial solutions at this node need to be extended.
IV-C MOD*
D* Lite and MOA* can be combined as MOD* algorithm55 5 The MOD* algorithm presented in this section simplifies the method in [12] to highlight the key idea. Readers can refer to [12] for more details. by introducing a -set at each node, which resembles the -value of a node in D* Lite, and stores the set of non-dominated cost vectors during its last expansion. Formally, it has the following relationship with the -sets of neighbors.
| (2) |
Correspondingly, a node is consistent if (two sets are exactly the same) and inconsistent otherwise. Similarly to D* Lite, the OPEN in MOD* contains inconsistent nodes. MOD* iteratively selects inconsistent node from OPEN for expansion until all vectors in of any inconsistent nodes in OPEN are dominated by some cost vector in .
When the cost vector of an edge changes, MOD* first recomputes the -set of each node that are immediately affected and inserts into OPEN if is inconsistent. Then MOD* searches in the same manner by expanding inconsistent nodes until all Pareto-optimal paths are found.
IV-D NAMOA*
While both MOA* and MOD* expand nodes, NAMOA* [11], employs a path-based expansion to mitigate the drawbacks of the node-based expansion.
Let denote a state, a tuple of a node and a cost vector , which identifies a partial solution path between and with cost . Additionally, is said to be at node . To simplify notations, let and denote the node and the cost vector contained in . For a state , the -vector of is defined as . In NAMOA*, states (rather than nodes) are stored in OPEN as candidates. In every search iteration, NAMOA* expands a non-dominated state in OPEN, i.e. is non-dominated by the -vector of any other states in OPEN. To expand , the partial solution path represented by is extended to each neighbor , where a new state with is generated. Cost vector is then compared with both the cost vectors of other partial solution paths at and the cost vectors in . If is non-dominated, is added to OPEN for future expansion.
As every state represents a partial solution path, expanding a state is essentially expanding a path. This path-based strategy employed by NAMOA* avoids the large number of re-expansion of nodes as in MOA*. In addition, expanding a path is computationally cheaper than expanding a node.
V MOPBD*
V-A Algorithm Overview
MOPBD* inherits (i) the notions of -sets from MOA* (Sec. IV-B), (ii) the -sets from MOD* (Sec. IV-C), and (iii) the concept of states from NAMOA* (Sec. IV-D). During the search, each vector represents a non-dominated path between and that has been found by the planner. “looks one step ahead” and is computed from . Each vector in identifies a Pareto-optimal solution path between and and we also refer to as (the set of solution cost vectors found by the planner) for presentation purposes. Finally, we introduce a new concept of inconsistent states, which identifies partial solution paths that need to be expanded.
Definition 2 (consistent state)
A state , with , is consistent if , and inconsistent if .
MOPBD* is described in Alg. 1 and is conceptually visualized in Fig. 2. MOPBD* is initialized (line 1-2) by inserting a zero vector into and creating an initial state . Since at initialization, state is an inconsistent state by Def. 2 and is inserted into OPEN for expansion. Then, MOPBD* plans paths via the ComputePath procedure (line 3 in Alg. 1). If the robot has not yet reached its destination, MOPBD* receives updating information about the cost vector of edges, finds all inconsistent states caused by the edge cost change (via the ProcessEdge procedure) and re-computes paths. If no change in edge costs, the robot navigates towards the destination along planned paths (denoted as FollowPath). Note that for each , a corresponding solution path can be readily reconstructed by following the parent pointers.
V-B Compute Pareto-optimal Paths
As shown in Alg. 2 (ComputePath), in each search iteration, an inconsistent state , with a non-dominated is popped.22 2 In practice, the OPEN list is often implemented by prioritizing states using the lexicographic order of their -vectors [14, 22]. The popped state has the lex. min. -vector in OPEN and is thus non-dominated within OPEN. We follow this practice in this work. Then, is first compared against every cost vector in ( ). As , if any is component-wise no larger than ( ), then can not lead to a cost-unique Pareto-optimal solution and is thus filtered by solutions: is inserted into another queue and the current iteration ends. Here, stores all states that are filtered by solutions and are reserved for expansion in the next planning task. This is necessary because: When the cost of an edge changes, a (previously found) solution may become no more Pareto-optimal and the states in may lead to a Pareto-optimal solution in the next planning task. To conceptually visualize, in Fig. 2 (d), the blue dashed line represents such a partial solution path, which leads to a Pareto-optimal solution after the green path is no more Pareto-optimal due to the cost change.
If not filtered by solutions, is compared against each vector (line 7-9 in Alg. 2). If ( component-wise no larger than), then cannot lead to a cost-unique Pareto-optimal solution and is thus discarded. The current iteration ends.
After these comparisons, state is made consistent by adding it to to update via the UpdateVset procedure, which is elaborated in the ensuing section. Note that this includes the case when , where ( ) is updated. It means a new solution path with cost vector is found between and .
After UpdateVset, is expanded (line 11-16 in Alg. 2): For each , a path that reaches from is generated and represented by state . Then is compared with each vector in : If there exists a vector in that is no larger than , is then discarded; Otherwise, state is added to OPEN for future expansion, and vector is added to . Additionally, the parent of is marked as , and is marked as a children of . MOPBD* keeps track of ancestors and descendants of each state during the search via these parent and children pointers of generated states, which are used in the Delete procedure (Sec. V-C).
The search process iterates until OPEN is empty. Then, is assigned to OPEN for the next planning task (line 17 in Alg. 2), and ( ) is returned, which is guaranteed to be equal to , the true Pareto-optimal front of the current planning task.
V-C Delete States and Update -sets
Before describing UpdateVset, we introduce the Delete procedure, which is invoked by UpdateVset. As its name suggests, the purpose of the Delete procedure is to remove all descendant states that have been generated during the search of a given state . First, the Delete procedure invokes itself recursively for each children state of (line 1-2 in Alg. 3). Then, vector is removed from . If contains , then is also removed from and node is added to set , which stores all the nodes whose -sets have been modified during the recursive deletion. Note that, set is passed from outside as an argument of Delete and is modified within Delete. Finally, the parent and children pointers related to are removed.
Now, we explain UpdateVset. As shown in Alg. 4, given a state , to update , UpdateVset loops over each existing vector in . If , then both the corresponding state and all descendants of are removed by invoking the Delete procedure.33 3 Note that both UpdateVset and Delete are necessary as edge costs can become smaller at line 5 in Alg. 1, and in the next planning task, some vectors in are no more non-dominated. Additionally, let denote a set of nodes, which is initialized as an empty set (line 1 in Alg. 4), and is passed to the Delete procedure to store all the nodes whose -sets are modified during Delete. The usage of is explained in the next paragraph. Then, is added to . By doing so (line 1-6 in Alg. 4), always contains the cost vectors of non-dominated paths between and (Invariant-1).
The second part of the UpdateVset procedure (line 7-12 in Alg. 4) seeks to find all new inconsistent states that should be generated and expanded after the modification of -sets: As aforementioned, for each has been modified during the Delete procedure, which means, some vector has been removed from . It’s possible that the vectors that are previously ( before the removal of ) dominated by becomes non-dominated after the removal of , and may lead to Pareto-optimal solutions. To find , UpdateVset loops over each node and computes the new -set of (after Delete) based on Eqn. (2), which is denoted as . Then, for each vector that is contained in but not contained in , a corresponding new state is generated and inserted to OPEN for future expansion. Also, is added to , and the parent and children pointers of are updated correspondingly. By doing so (line 7-12 in Alg. 4), all new inconsistent states at each node in are found and are added to OPEN.
V-D Process Edge Change
After ComputePath, Alg. 1 either follows the planned paths or finds changes in edge costs. As shown in Alg. 5 (ProcessEdge), when the cost vector of an edge changes, for each where , if the corresponding state and its parent state are at the both ends of edge (line 5 in Alg. 5), then represents a (partial solution) path that goes through . This path is thus affected by the change of the cost vector, and both and all descendant states of are deleted by invoking the Delete procedure (line 6). Line 1-6 in Alg. 5 ensures that when the edge cost changes, the -set of any node still contains the cost vectors of non-dominated paths between and ( Invariant-1).
In the meanwhile, similarly to the aforementioned UpdateVset, the set of all nodes, whose -sets are modified during the Delete procedure, are stored in set . Then, line 7-12 in Alg. 5 are the same as line 7-12 in Alg. 4, which finds all new inconsistent states that should be generated after the modification of -sets.
VI Analysis and Discussion
VI-A Pareto-optimality
ComputePath is invoked either at line 3 or line 9 in Alg. 1. At both places, before entering ComputePath, it’s ensured that all inconsistent states ( are in OPEN. After entering ComputePath, in each search iteration, an inconsistent state is popped from OPEN and must either be (i) inserted into ( line 4-6 in Alg. 2), (ii) discarded ( line 7-9 in Alg. 2), or (iii) expanded ( line 10-16 in Alg. 2). For (i) and (ii), it’s impossible for to be part of . For (iii), are updated to contain all non-dominated paths between and and all possible non-dominated children states of (which are inconsistent) are generated and inserted into OPEN when is expanded. ComputePath iterates until OPEN depletes, which guarantees that ( ) is the same as , which is summarized in the following theorem.
Theorem 1
When ComputePath terminates, .
VI-B Runtime Analysis
In MOPBD*, each planning task requires solving a MO-SPP, which is known to be NP-hard even with two objectives [6]. It is also known that multi-objective search requires exponential space and time with respect to the size of the graph in the worst case [6]. The runtime of Alg. 1 is determined by the number of states to be deleted (in ProcessEdge) and the number of expansions (in ComputePath). In the worst case, Alg. 1 needs to first recursively delete all previous search results via the Delete procedure and then start to search (from scratch). MOPBD* is thus less efficient in comparison with naively searching from scratch, when there are lots of states to be deleted after the edge cost changes.
VI-C MOPBD*-: Approximated Pareto-optimal Front
When there are more than two objectives, computing becomes computationally expensive due to the enormous size of . Correspondingly, how to fast approximate becomes an important problem and several approximation algorithms (such as [5, 13]) have been developed. In this work, we leverage -dominance [13] to enable MOPBD* to approximate .
Definition 3 (-dominance)
Given two vectors and of length and some , -dominates (referred as ) if , .
We propose MOPBD*- by replacing the comparison in MOPBD* with -dominance. It’s obvious that with a larger , more partial solutions are pruned at each node during the search and the - and -sets at each node have a smaller size. Consequently, both ProcessEdge and ComputePath runs faster as there are fewer paths to be deleted or expanded when edge costs change. As a result, MOPBD*- is able to trade off between the quality of the approximated solutions and the search efficiency, which is verified in the ensuing section.
VII Numerical Results
VII-A Simulation Settings
We selected (grid) maps of different categories (empty, maze, random, game) from an online data set [20] and generated a graph by making each grid four-connected. We assigned every edge in a random integer vector of length with components randomly sampled from , where varies in the following sections. To test a planning algorithm (referred to as “planner” hereafter), we implemented the following simulator (Fig. 1). For each test instance, the simulator does the following steps in order:
(Step-1) The planner computes the initial set of cost-unique Pareto-optimal paths .
(Step-2) The simulator randomly selects a path from for the robot to follow.
(Step-3) After every ( in our tests) moves of the robot, the simulator adds an obstacle node in front of the robot along the selected path. Adding an obstacle node means modifying the cost vector of each edge incident on that node to an infinite vector.
(Step-4) The simulator invokes the planner to re-compute cost-unique Pareto-optimal paths and goes to (Step-2).
The simulation terminates either when the robot arrives at (i.e. ), or when the planner returns no paths, which means the added obstacle in (Step-3) eliminates all feasible solutions. We call (Step-1) the initial planning task and (Step-3) the subsequent planning task. We set a time limit of one minute for each planning task. We implemented MOD*, NAMOA* and MOPBD* in Python. All algorithms use the same heuristic: , which is a unit vector scaled by the Manhattan distance between and . Both MOD* and NAMOA* serve as baselines.
VII-B Two Objectives Comparisons
| Grids | Algorithm | Exp. | R.T. | Sol. |
|---|---|---|---|---|
| NAMOA* | 111.8 | 0.03 | 3.0 | |
| MOD* | 39.1 | 0.35 | 3.0 | |
| (16x16) | MOPBD* | 3.9 | 0.06 | 3.0 |
| NAMOA* | 1556.6 | 0.55 | 10.5 | |
| MOD* | 92.1 | 3.15 | 10.5 | |
| (32x32) | MOPBD* | 19.7 | 0.17 | 10.5 |
| NAMOA* | 829.5 | 0.22 | 4.9 | |
| MOD* | 311.0 | 3.51 | 4.9 | |
| (32x32) | MOPBD* | 35.0 | 0.12 | 4.9 |
| NAMOA* | 5923.3 | 2.85 | 16.3 | |
| MOD* | 208.4 | 12.6 | 12.3 | |
| (65x81) | MOPBD* | 28.0 | 2.43 | 16.3 |
We begin our tests with . As shown in Table I, MOPBD* (path-based) runs faster than MOD* (node-based) by up to an order of magnitude. Note that, the number of expansions cannot be directly compared between MOPBD* and MOD* as they conduct path expansion and node expansion respectively. In the last map (a game map of size ), the average number of solutions found by MOD* is smaller than the other two algorithms since MOD* times out in some planning tasks.
Table I also shows a comparison between NAMOA* and MOPBD*, both of which conduct path-based expansion while NAMOA* computes from scratch and MOPBD* reuses previous searches. In terms of the number of expansions, MOPBD* outperforms NAMOA* over all maps. In terms of runtime, MOPBD* outperforms NAMOA* in general. However, as we observed in the empty map, MOPBD* runs slower than NAMOA* on average. The reason is that the ProcessEdge procedure in MOPBD* is expensive when cost vectors change, as it requires deleting all affected states, and recomputing the -sets of affected nodes, which is computationally demanding.
VII-C Three Objectives and MOPBD*-
Next, we test with (three objectives) using the same simulator described in Sec. VII-A to verify MOPBD*- in the aforementioned game map. As a baseline, the dominance in NAMOA* is replaced with -dominance to search from scratch for each planning task. This baseline is denoted as NAMOA*-. Here, varies among .
Given a test instance, let denote the average length of the Pareto-optimal paths computed in the -th planning task. When , denote the average length of the Pareto-optimal paths between the initial start and . The ratio estimates how far away the robot is to for the -th planning task. In Fig. 3, the horizontal axis represents within the range and the vertical axis represents the runtime of all subsequent planning tasks.
Here, green dots correspond to running NAMOA* from scratch for every planning task, and blue stars and red crosses correspond to MOPBD*. Red crosses mean that MOPBD* is slower than NAMOA*, while the blue stars mean MOPBD* is faster. First, both planners run faster when increases. When , there are only a few data points because many planning tasks time out. Second, as increases, there are fewer red crosses and more blue stars, which indicates that MOPBD*- gradually outperforms NAMOA*-. The reason is that when increases, only a few non-dominated partial solution paths are stored at each node, and the number of vectors in the -sets (as well as the -sets) at nodes become smaller, which makes the procedure ProcessEdge computationally less demanding when edge costs change.
VII-D Adding and Deleting Multiple Obstacles
Finally, we test MOPBD* by adding and deleting multiple obstacles around the robot by modifying (Step-3) of the aforementioned simulator: (Step-3) now alternates between adding and deleting two random obstacle nodes in the square area centered on the robot’s location. Note that by adding an obstacle node, we modify the cost vector of each edge incident on that node to an infinite vector. Similarly, deleting an obstacle node means assigning each edge incident on that node some finite random cost vector. In this test, each component of the edge cost vector is randomly sampled from integers within the range , and the runtime limit is set to five minutes. We select the “maze” map and test with and .
As shown in Table. II, MOPBD* outperforms running NAMOA* from scratch for each planning task in general, based on the median and the average over succeeded cases (the better results are highlighted in the bold text). The reason is that when randomly adding/deleting multiple obstacles around the robot, these random obstacles may affect only a few or even no paths, which allows MOPBD* to quickly fix the plan. However, as the number of objectives increases, the advantage of MOPBD* becomes less obvious and when , NAMOA* outperforms MOPBD*. The reason is that when increases, there are more non-dominated partial solution path between a pair of nodes in general, which makes ProcessEdge computationally expensive when edge costs change.
| Planner | Remove Obst. | Add Obst. | |
|---|---|---|---|
| 2 | MOPBD* (ours) | 0.0060 (0.070) | 0.018 (0.12) |
| NAMOA* | 0.042 (0.15) | 0.045 (0.19) | |
| 3 | MOPBD* (ours) | 0.037 (4.6) | 0.14 (14) |
| NAMOA* | 0.099 (4.4) | 0.17 (6.2) | |
| 4 | MOPBD* (ours) | 0.062 (1.44) | 0.24 (15) |
| NAMOA* | 0.12 (2.13) | 0.17 (5.0) |
VIII Conclusion and Future Work
A new incremental multi-objective path planning algorithm MOPBD* is presented, which computes all cost-unique Pareto-optimal solutions in a dynamic graph where edge costs can change. The numerical results verify the efficiency of MOPBD* and its variant MOPBD*- with two, three and four objectives in comparison with baseline methods. For future work, one can consider either incorporating other multi-objective techniques [22, 5] into the algorithm to further improve performance, or leverage other incremental search techniques [1] to further expedite the search. One can also leverage MOPBD* to improve multi-objective multi-agent planners [15, 16].
Acknowledgment
This material is based upon work supported by the National Science Foundation under Grant No. 2120219 and 2120529. Any opinions, findings, and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation.
References
- [1] Sandip Aine and Maxim Likhachev. Anytime truncated d*: Anytime replanning with truncation. In Sixth Annual Symposium on Combinatorial Search, 2013.
- [2] Andrés Bronfman, Vladimir Marianov, Germán Paredes-Belmar, and Armin Lüer-Villagra. The maximin hazmat routing problem. European Journal of Operational Research, 241(1):15–27, 2015.
- [3] Narsingh Deo and Chi-Yin Pang. Shortest-path algorithms: Taxonomy and annotation. Networks, 14(2):275–323, 1984.
- [4] Matthias Ehrgott. Multicriteria optimization, volume 491. Springer Science & Business Media, 2005.
- [5] Boris Goldin and Oren Salzman. Approximate bi-criteria search by efficient representation of subsets of the pareto-optimal frontier. In Proceedings of the International Conference on Automated Planning and Scheduling, volume 31, pages 149–158, 2021.
- [6] Pierre Hansen. Bicriterion path problems. In Multiple criteria decision making theory and application, pages 109–127. Springer, 1980.
- [7] P. E. Hart, N. J. Nilsson, and B. Raphael. A formal basis for the heuristic determination of minimum cost paths. IEEE Transactions on Systems Science and Cybernetics, 4(2):100–107, 1968.
- [8] Sven Koenig and Maxim Likhachev. Fast replanning for navigation in unknown terrain. IEEE Transactions on Robotics, 21(3):354–363, 2005.
- [9] Sven Koenig, Maxim Likhachev, and David Furcy. Lifelong planning a*. Artificial Intelligence, 155(1-2):93–146, 2004.
- [10] Ronald Prescott Loui. Optimal paths in graphs with stochastic or multidimensional weights. Communications of the ACM, 26(9):670–676, 1983.
- [11] Lawrence Mandow and José Luis Pérez De La Cruz. Multiobjective a* search with consistent heuristics. Journal of the ACM (JACM), 57(5):1–25, 2008.
- [12] Tugcem Oral and Faruk Polat. Mod* lite: an incremental path planning algorithm taking care of multiple objectives. IEEE Transactions on Cybernetics, 46(1):245–257, 2015.
- [13] Patrice Perny and Olivier Spanjaard. Near admissible algorithms for multiobjective search. In 18th European Conference on Artificial Intelligence ECAI-08, volume 178, pages 490–494. IOS Press, 2008.
- [14] Francisco-Javier Pulido, Lawrence Mandow, and José-Luis Pérez-de-la Cruz. Dimensionality reduction in multiobjective shortest path search. Computers & Operations Research, 64:60–70, 2015.
- [15] Zhongqiang Ren, Sivakumar Rathinam, and Howie Choset. Multi-objective conflict-based search for multi-agent path finding. In 2021 IEEE International Conference on Robotics and Automation (ICRA), pages 8786–8791, 2021.
- [16] Zhongqiang Ren, Sivakumar Rathinam, and Howie Choset. Subdimensional expansion for multi-objective multi-agent path finding. IEEE Robotics and Automation Letters, 6(4):7153–7160, 2021.
- [17] Diederik M Roijers, Peter Vamplew, Shimon Whiteson, and Richard Dazeley. A survey of multi-objective sequential decision-making. Journal of Artificial Intelligence Research, 48:67–113, 2013.
- [18] Tixiao Shan, Wei Wang, Brendan Englot, Carlo Ratti, and Daniela Rus. A receding horizon multi-objective planner for autonomous surface vehicles in urban waterways. In 2020 59th IEEE Conference on Decision and Control (CDC), pages 4085–4092. IEEE, 2020.
- [19] Anthony Stentz. The focussed d* algorithm for real-time replanning. In Proceedings of the 14th International Joint Conference on Artificial Intelligence, volume 95, pages 1652–1659, 1995.
- [20] Roni Stern, Nathan Sturtevant, Ariel Felner, Sven Koenig, Hang Ma, Thayne Walker, Jiaoyang Li, Dor Atzmon, Liron Cohen, TK Kumar, et al. Multi-agent pathfinding: Definitions, variants, and benchmarks. In Symposium on Combinatorial Search, page 151–158, 2019.
- [21] Bradley S. Stewart and Chelsea C. White. Multiobjective a*. Journal of the ACM (JACM), 38(4):775–814, October 1991.
- [22] Carlos Hernández Ulloa, William Yeoh, Jorge A Baier, Han Zhang, Luis Suazo, and Sven Koenig. A simple and fast bi-objective search algorithm. In Proceedings of the International Conference on Automated Planning and Scheduling, volume 30, pages 143–151, 2020.
- [23] Chris Urmson, Joshua Anhalt, Drew Bagnell, Christopher Baker, Robert Bittner, MN Clark, John Dolan, Dave Duggins, Tugrul Galatali, Chris Geyer, et al. Autonomous driving in urban environments: Boss and the urban challenge. Journal of Field Robotics, 25(8):425–466, 2008.
- [24] Peter R Wurman, Raffaello D’Andrea, and Mick Mountz. Coordinating hundreds of cooperative, autonomous vehicles in warehouses. AI magazine, 29(1):9–9, 2008.