pub struct VariableElimination {
pub elimination_order: Option<Vec<String>>,
}Expand description
Variable elimination algorithm for exact inference.
Computes marginal probabilities by eliminating variables in a specific order.
Fields§
§elimination_order: Option<Vec<String>>Elimination order (if None, uses min-degree heuristic)
Implementations§
Source§impl VariableElimination
impl VariableElimination
Sourcepub fn with_order(order: Vec<String>) -> Self
pub fn with_order(order: Vec<String>) -> Self
Create with a specific elimination order.
Sourcepub fn marginalize(
&self,
graph: &FactorGraph,
query_var: &str,
) -> Result<ArrayD<f64>>
pub fn marginalize( &self, graph: &FactorGraph, query_var: &str, ) -> Result<ArrayD<f64>>
Compute marginal for a single query variable.
Sourcepub fn marginalize_all(
&self,
graph: &FactorGraph,
) -> Result<HashMap<String, ArrayD<f64>>>
pub fn marginalize_all( &self, graph: &FactorGraph, ) -> Result<HashMap<String, ArrayD<f64>>>
Compute marginals for all variables.
Sourcepub fn joint_probability(
&self,
graph: &FactorGraph,
assignment: &HashMap<String, usize>,
) -> Result<f64>
pub fn joint_probability( &self, graph: &FactorGraph, assignment: &HashMap<String, usize>, ) -> Result<f64>
Compute joint probability for a specific assignment.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for VariableElimination
impl RefUnwindSafe for VariableElimination
impl Send for VariableElimination
impl Sync for VariableElimination
impl Unpin for VariableElimination
impl UnwindSafe for VariableElimination
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.