Struct dogs::tree_search::decorators::bounding::BoundingDecorator [−][src]
pub struct BoundingDecorator<Space, B, N> { /* fields omitted */ }
Expand description
Registers the global dual bound
- when a node is destructed: remove its bound of the pq and update the global bound
- TODO when a node bound is updated: update the global bound
Implementations
Trait Implementations
impl<N, G, Space, B> GuidedSpace<LifetimeEventNode<N, B, BoundSet<B>>, G> for BoundingDecorator<Space, B, N> where
Space: GuidedSpace<N, G>,
B: Display + Ord + Copy + Into<i64>,
impl<N, G, Space, B> GuidedSpace<LifetimeEventNode<N, B, BoundSet<B>>, G> for BoundingDecorator<Space, B, N> where
Space: GuidedSpace<N, G>,
B: Display + Ord + Copy + Into<i64>,
returns the guide value of the node
impl<N, B, Id, Space> Identifiable<LifetimeEventNode<N, B, BoundSet<B>>, Id> for BoundingDecorator<Space, B, N> where
Space: Identifiable<N, Id>,
B: Ord + Display + Copy + Into<i64>,
impl<N, B, Id, Space> Identifiable<LifetimeEventNode<N, B, BoundSet<B>>, Id> for BoundingDecorator<Space, B, N> where
Space: Identifiable<N, Id>,
B: Ord + Display + Copy + Into<i64>,
returns the ID of the node
impl<N, Space, B> ParetoDominanceSpace<N> for BoundingDecorator<Space, B, N> where
Space: ParetoDominanceSpace<N>,
impl<N, Space, B> ParetoDominanceSpace<N> for BoundingDecorator<Space, B, N> where
Space: ParetoDominanceSpace<N>,
impl<N, Space, B> PartialNeighborGeneration<LifetimeEventNode<N, B, BoundSet<B>>> for BoundingDecorator<Space, B, N> where
Space: PartialNeighborGeneration<N> + SearchSpace<N, B>,
B: Ord + Copy + Into<i64> + Display,
impl<N, Space, B> PartialNeighborGeneration<LifetimeEventNode<N, B, BoundSet<B>>> for BoundingDecorator<Space, B, N> where
Space: PartialNeighborGeneration<N> + SearchSpace<N, B>,
B: Ord + Copy + Into<i64> + Display,
fn next_neighbor(
&mut self,
node: &mut LifetimeEventNode<N, B, BoundSet<B>>
) -> Option<LifetimeEventNode<N, B, BoundSet<B>>>
fn next_neighbor(
&mut self,
node: &mut LifetimeEventNode<N, B, BoundSet<B>>
) -> Option<LifetimeEventNode<N, B, BoundSet<B>>>
returns the next neighbor if it exists, or None
impl<N, Space, B> SearchSpace<LifetimeEventNode<N, B, BoundSet<B>>, B> for BoundingDecorator<Space, B, N> where
N: Clone,
Space: SearchSpace<N, B>,
B: Display + Ord + Copy + Into<i64> + Serialize,
impl<N, Space, B> SearchSpace<LifetimeEventNode<N, B, BoundSet<B>>, B> for BoundingDecorator<Space, B, N> where
N: Clone,
Space: SearchSpace<N, B>,
B: Display + Ord + Copy + Into<i64> + Serialize,
returns the initial (or root) node
returns the bound value of the node (i.e. f-cost)
returns true if and only if the node is goal
returns the g-cost of the node the h-cost can be computed by substracting the f-cost (SearchSpace.bound) by the g-cost Read more
fn handle_new_best(
&mut self,
n: LifetimeEventNode<N, B, BoundSet<B>>
) -> LifetimeEventNode<N, B, BoundSet<B>>
fn handle_new_best(
&mut self,
n: LifetimeEventNode<N, B, BoundSet<B>>
) -> LifetimeEventNode<N, B, BoundSet<B>>
called when the algorithm finds a new-best-known solution
called when the algorithm finishes
displays various statistics about the search (nb nodes, etc.) TODO: use export_statistics to get the statistics in the JSON format, and display them Read more
registers information about the search statistics in a json file
called when the algorithm starts
requests log headers (does nothing if there is no logging decorator within the algorithm)
requests a logging to appear (does nothing if there is no logging decorator within the algorithm)
impl<N, Sol, B, Space> ToSolution<LifetimeEventNode<N, B, BoundSet<B>>, Sol> for BoundingDecorator<Space, B, N> where
Space: SearchSpace<N, B> + ToSolution<N, Sol>,
B: Ord + Display + Copy + Into<i64>,
impl<N, Sol, B, Space> ToSolution<LifetimeEventNode<N, B, BoundSet<B>>, Sol> for BoundingDecorator<Space, B, N> where
Space: SearchSpace<N, B> + ToSolution<N, Sol>,
B: Ord + Display + Copy + Into<i64>,
constructs a solution from a goal node panics if the node is not a goal Read more
impl<N, B, Space> TotalNeighborGeneration<LifetimeEventNode<N, B, BoundSet<B>>> for BoundingDecorator<Space, B, N> where
Space: TotalNeighborGeneration<N> + SearchSpace<N, B>,
B: Ord + Display + Copy + Into<i64>,
impl<N, B, Space> TotalNeighborGeneration<LifetimeEventNode<N, B, BoundSet<B>>> for BoundingDecorator<Space, B, N> where
Space: TotalNeighborGeneration<N> + SearchSpace<N, B>,
B: Ord + Display + Copy + Into<i64>,
fn neighbors(
&mut self,
n: &mut LifetimeEventNode<N, B, BoundSet<B>>
) -> Vec<LifetimeEventNode<N, B, BoundSet<B>>>
fn neighbors(
&mut self,
n: &mut LifetimeEventNode<N, B, BoundSet<B>>
) -> Vec<LifetimeEventNode<N, B, BoundSet<B>>>
returns all neighbors of a given node