k0 pre-determined) of w given the distribution on w (step 4). We then run a heuristic planner multiple times to find an optimal (or good quality) solution for each trade-off value w (step 5).

We then collect the plans found and seed the subsequent runs when we incrementally update the initial plan set with plans that lower the overall ICP value (steps 6-8). The algorithm terminates and returns the latest plan set (step 9) if k plans are found or the time bound exceeds.

## 5.4. Making Lpg Search Sensitive To Icp

Since the LPG planner used in the previous section cannot handle numeric fluents, in particular the **totalcost** representing plan cost that we are interested in, we use a modified version of the Metric-LPG planner (Gerevini et al., 2008) in implementing our algorithms. Not only is MetricLPG equipped with a very flexible local-search framework that has been extended to handle various objective functions, but also it can be made to search for single or multiple solutions.

Specifically, for the sampling-based approach, we first sample the w values based on a given distribution. For each w value, we set the metric function in the domain file to: w×**makespan**+ (1 − w) × **totalcost**, and run the original LPG in the quality mode to heuristically find the best solution within the time limit for that metric function. The final solution set is filtered to remove any duplicate solutions, and returned to the user.

For the ICP-sequential and hybrid approach, we can not use the original LPG implementation as is and need to modify the neighborhood evaluation function in LPG to take into account the ICP measure and the current plan set P. For the rest of this section, we will explain this procedure in detail. Background: Metric-LPG uses local search to find plans within the space of *numerical action* graphs (NA-graph). This leveled graph consists of a sequence of interleaved proposition and action layers. The proposition layers consist of a set of propositional and numerical nodes, while each action layer consists of at most one action node, and a number of no-op links. An NA-graph G represents a valid plan if all actions' preconditions are supported by some actions appearing in the earlier level in G. The search neighborhood for each local-search step is defined by a set of graph modifications to fix some remaining inconsistencies (unsupported preconditions) p at a particular level l. This can be done by either inserting a new action a supporting p or removing from the graph the action a that p is a precondition of (which can introduce new inconsistencies).

Each local move creates a new NA-graph G′, which is evaluated as a weighted combination of two factors: **SearchCost**(G′) and **ExecCost**(G′). Here, **SearchCost**(G′) is the amount of search effort to resolve inconsistencies newly introduced by inserting or removing action a; it is measured by the number of actions in a relaxed plan R resolving all such inconsistencies. The total cost **ExecCost**(G′), which is a default function to measure plan quality, is measured by the total *action execution costs* of all actions in R. The two weight adjustment values α and β are used to steer the search toward either finding a solution quickly (higher α value) or better solution quality (higher β value). Metric-LPG then selects the local move leading to the smallest E(G′) value.

Adjusting the evaluation function E(G′) **for finding set of plans with low ICP measure:**
To guide Metric-LPG towards optimizing our ICP-sensitive objective function instead of the original minimizing cost objective function, we need to replace the default plan quality measure **ExecCost**(G′) with a new measure **ICP Est**(G′). Specifically, we adjust the function for evaluating each new NA-graph generated by local moves at each step to be a combination of **SearchCost**(G′) and **ICP Est**(G′). Given the set of found plans P = {p1, p2**, ..., p**n},