Skip to main content

miniplan/heuristic/
zero.rs

1use crate::search::HValue;
2use crate::search::Heuristic;
3use crate::task::{State, Task};
4
5/// The h^0 (zero) heuristic — always returns 0.
6///
7/// This reduces A* to uniform-cost search (Dijkstra's algorithm).
8/// Admissible but provides no guidance.
9///
10/// # Examples
11///
12/// ```
13/// use miniplan::heuristic::HZero;
14/// use miniplan::search::Heuristic;
15///
16/// assert_eq!(HZero.name(), "zero");
17/// ```
18pub struct HZero;
19
20impl Heuristic for HZero {
21    fn name(&self) -> &str {
22        "zero"
23    }
24
25    fn estimate(&self, _task: &Task, _state: &State) -> HValue {
26        HValue(0.0)
27    }
28}