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}