Enum nice_smile::network::InfluenceDiagramAlgorithm

source ·
pub enum InfluenceDiagramAlgorithm {
    PolicyEvaluation,
    BestPolicySearch,
}
Expand description

Influence Diagram algorithms

Variants§

§

PolicyEvaluation

The policy evaluation algorithm solves an influence diagram by first transforming it into a super::Network and then finding the expected utilities of each of the decision alternatives by performing repeated inference in this network. The algorithm will result in a full set of expected utilities for all possible policies in the network.

The policy evaluation algorithm uses the default BayesianNetworkAlgorithm or one specified by super::Network::set_bayesian_network_algorithm. This may have an impact on both the computational performance and the accuracy of the computation.

This may be a computationally intensive process for large influence diagrams. If you are not interested in the values of expected utilities, but would just like to know the optimal decision at the highest level, consider using the InfluenceDiagramAlgorithm::BestPolicySearch algorithm for finding the best policy.

For more information, refer to https://support.bayesfusion.com/docs/GeNIe/algorithms_cooper.html.

§

BestPolicySearch

The best policy search algorithm solves an influence diagram by finding just the best policy in the network.

The algorithm instantiates the first decision node to the optimal decision alternative but does not produce the numerical expected utility of this or any other decision option.

In order for this algorithm to be run, all informational predecessors of the first decision node have to be instantiated.

For more information, refer to https://support.bayesfusion.com/docs/GeNIe/algorithms_shachterpeot.html.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.