Skip to main content

Module search

Module search 

Source
Expand description

Search algorithms for automated planning.

This module provides a collection of search algorithms (planners) for solving PDDL planning tasks. It includes unidirectional planners like BFS and A*, as well as bidirectional planners like BiDij, NBS, and BAE*.

§Entry points

§Using the registry

use miniplan::search::Registry;

let registry = Registry::with_builtins();
let planners: Vec<&str> = registry.planners().map(|r| r.name).collect();
assert!(planners.contains(&"bfs"));
assert!(planners.contains(&"astar"));

§Planner traits

The Planner trait defines the interface all planners implement. Each planner reports its PlannerCapabilities and can solve a Task. within given SearchLimits, returning a SearchOutcome.

Re-exports§

pub use crate::task::OpId;

Structs§

Astar
A* search with a pluggable heuristic.
Bae
Bidirectional A* with Error (BAE*, Sadhukhan 2013).
Bfs
Breadth-first search planner.
BiDij
Bidirectional Dijkstra’s algorithm (cost-aware).
BibfsUc
Bidirectional breadth-first search (uniform-cost).
Gbfs
Greedy best-first search with a pluggable heuristic.
HValue
A heuristic value returned by Heuristic::estimate.
Nbs
Near-Optimal Bidirectional Search (NBS, Chen et al. 2017).
PlannerCapabilities
Capability flags describing what features a planner supports.
PlannerChoice
Selects which planner and heuristic to use for a solve operation.
PlannerConfig
Configuration options passed to planner/heuristic factories.
RegisteredHeuristic
A heuristic registered in the Registry.
RegisteredPlanner
A planner registered in the Registry.
Registry
A registry of planners and heuristics.
SearchLimits
Limits that control search termination.
SearchStats
Statistics collected during a search.
Solver
High-level solver that combines a Registry with SearchLimits.

Enums§

PlannerKind
Built-in planner types.
SearchOutcome
The result of a search operation.

Traits§

Heuristic
A heuristic function for estimating the cost to reach the goal.
Planner
A search algorithm that can solve a planning task.

Type Aliases§

HeuristicFactory
A factory function type for constructing a Heuristic.
PlannerFactory
A factory function type for constructing a Planner.