Main Page | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class Members

plJointDistribution Class Reference

The {plJointDistribution} class is used to describe a probabilistic model by providing a decomposition of the joint distribution of the whole model variables as a product of elementary conditional and non conditional distributions. More...

#include <plJointDistribution.h>

Inheritance diagram for plJointDistribution:

Inheritance graph
[legend]
Collaboration diagram for plJointDistribution:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 plJointDistribution (const plVariablesConjunction &all_params, const plKernel &f)
 Creates a description with a single function.
 plJointDistribution (const plKernel &f)
 Creates a description with a single function.
 plJointDistribution (const plVariablesConjunction &all_params, const plComputableObjectList &decomposition)
 Creates a description with a multiple functions.
 plJointDistribution (const plComputableObjectList &decomposition)
 Creates a description with a multiple functions.
virtual ~plJointDistribution ()
 Destroys the description.
void ask (plCndKernel &CndExpr, const plVariablesConjunction &search_params, const plVariablesConjunction &known_params, plOptimizationCriterion optimization=PL_NO_OPTIMIZATION) const
 Creates an expression using exhaustive integration.
plCndKernel ask (const plVariablesConjunction &search_params, const plVariablesConjunction &known_params, plOptimizationCriterion optimization=PL_NO_OPTIMIZATION) const
 Creates an expression using exhaustive integration.
void ask (plCndKernel &CndExpr, const plVariablesConjunction &search_params, const plVariablesConjunction &known_params, unsigned int n) const
 Creates an expression using Monte Carlo integration using {n} points.
plCndKernel ask (const plVariablesConjunction &search_params, const plVariablesConjunction &known_params, unsigned int n) const
 Creates an expression using Monte Carlo integration using {n} points.
void ask (plCndKernel &CndExpr, const plVariablesConjunction &search_params, const plVariablesConjunction &known_params, int n) const
 Creates an expression using Monte Carlo integration using {n} points.
void ask (plCndKernel &CndExpr, const plVariablesConjunction &search_params, const plVariablesConjunction &known_params, plIntegrationModeType integration_mode, plFloat convergence_threshold) const
 Creates an expression using Monte Carlo integration using a number of points that allows convergence of the estimation according to the threshold value {convergence_threshold} (i.e.
plCndKernel ask (const plVariablesConjunction &search_params, const plVariablesConjunction &known_params, plIntegrationModeType integration_mode, plFloat convergence_threshold) const
 Creates an expression using Monte Carlo integration using a number of points that allows convergence of the estimation according to the threshold value {convergence_threshold} (i.e.
void ask (plCndKernel &CndExpr, const plVariablesConjunction &search_params, const plVariablesConjunction &known_params, bool do_not_build_normalization_expression, plOptimizationCriterion optimization=PL_NO_OPTIMIZATION) const
 Creates an expression using exhaustive integration.
void ask (plCndKernel &CndExpr, const plVariablesConjunction &search_params, const plVariablesConjunction &known_params, bool do_not_build_normalization_expression, unsigned int n) const
 Creates an expression using Monte Carlo integration using {n} points.
void ask (plCndKernel &CndExpr, const plVariablesConjunction &search_params, const plVariablesConjunction &known_params, bool do_not_build_normalization_expression, plIntegrationModeType integration_mode, plFloat convergence_threshold) const
 Creates an expression using Monte Carlo integration using a number of points that allows convergence of the estimation according to the threshold value {convergence_threshold} (i.e.
void ask (plKernel &Expr, const plVariablesConjunction &search_params) const
 Creates an expression using exhaustive integration.
plKernel ask (const plVariablesConjunction &search_params) const
 Creates an expression using exhaustive integration.
void ask (plKernel &Expr, const plVariablesConjunction &search_params, unsigned int n) const
 Creates an expression using Monte Carlo integration using {n} points.
plKernel ask (const plVariablesConjunction &search_params, unsigned int n) const
 Creates an expression using Monte Carlo integration using {n} points.
void ask (plKernel &Expr, const plVariablesConjunction &search_params, int n) const
 Creates an expression using Monte Carlo integration using {n} points.
void ask (plKernel &Expr, const plVariablesConjunction &search_paramss, plIntegrationModeType integration_mode, plFloat convergence_threshold) const
 Creates an expression using Monte Carlo integration using a number of points that allows convergence of the estimation according to the threshold value {convergence_threshold} (i.e.
plKernel ask (const plVariablesConjunction &search_params, plIntegrationModeType integration_mode, plFloat convergence_threshold) const
 Creates an expression using Monte Carlo integration using a number of points that allows convergence of the estimation according to the threshold value {convergence_threshold} (i.e.

Detailed Description

The {plJointDistribution} class is used to describe a probabilistic model by providing a decomposition of the joint distribution of the whole model variables as a product of elementary conditional and non conditional distributions.

Defining this decomposition is equivalent to the graph construction part in standard Bayesian Networks (BN) creation tools, while defining the parametric forms of the elementary distributions corresponds to the probability assessment part in standard BN creation tools.

So, a {plJointDistribution} object contains both the structural information (i.e dependencies between variables) and information on the parametric forms of the used elementary distributions (already constructed and passed as parameters to the constructor).

Given a {plJointDistribution} object, one can infer any target (query) distribution using the {ask} methods to construct the corresponding {exact} or {approximate} (Monte Carlo) expression (see the {ask} methods and their parameters) using Bayes rule and some other symbolic simplifications.

Definition at line 60 of file plJointDistribution.h.


Member Function Documentation

plKernel plJointDistribution::ask const plVariablesConjunction search_params,
plIntegrationModeType  integration_mode,
plFloat  convergence_threshold
const
 

Creates an expression using Monte Carlo integration using a number of points that allows convergence of the estimation according to the threshold value {convergence_threshold} (i.e.

{ abs(Estim(t+1) - Estim(t))/ Estim(t)} < convergence_threshold) Note that this method returns a freshly created object. If you are calling it in a loop, consider using the version that modifies an existing object instead.

void plJointDistribution::ask plKernel Expr,
const plVariablesConjunction search_paramss,
plIntegrationModeType  integration_mode,
plFloat  convergence_threshold
const
 

Creates an expression using Monte Carlo integration using a number of points that allows convergence of the estimation according to the threshold value {convergence_threshold} (i.e.

{ abs(Estim(t+1) - Estim(t))/ Estim(t)} < convergence_threshold)

plKernel plJointDistribution::ask const plVariablesConjunction search_params,
unsigned int  n
const
 

Creates an expression using Monte Carlo integration using {n} points.

Note that this method returns a freshly created object. If you are calling it in a loop, consider using the version that modifies an existing object instead.

plKernel plJointDistribution::ask const plVariablesConjunction search_params  )  const
 

Creates an expression using exhaustive integration.

Note that this method returns a freshly created object. If you are calling it in a loop, consider using the version that modifies an existing object instead.

void plJointDistribution::ask plCndKernel CndExpr,
const plVariablesConjunction search_params,
const plVariablesConjunction known_params,
bool  do_not_build_normalization_expression,
plIntegrationModeType  integration_mode,
plFloat  convergence_threshold
const
 

Creates an expression using Monte Carlo integration using a number of points that allows convergence of the estimation according to the threshold value {convergence_threshold} (i.e.

{ abs(Estim(t+1) - Estim(t))/ Estim(t)} < convergence_threshold)

void plJointDistribution::ask plCndKernel CndExpr,
const plVariablesConjunction search_params,
const plVariablesConjunction known_params,
bool  do_not_build_normalization_expression,
plOptimizationCriterion  optimization = PL_NO_OPTIMIZATION
const
 

Creates an expression using exhaustive integration.

The parameter "optimization" defines the optimality criterion when constructing the evaluation tree. If "optimization = PL_OPTIMIZE_COMPILATION_TIME", the built tree will optimize the number of arithmetic operations required by the first compilation of P(search_params | known_params) (i.e for the first "instantiate", "compile" sequence). If "optimization = PL_OPTIMIZE_UPDATE_TIME", this tree will optimize the number of arithmetic operations required to update P(search_params | known_params) given a new value for "known_params" (i.e. for the nth (n >= 2) "instantiate", "compile" sequences). if "optimization = PL_OPTIMIZE_MEMORY_USE", the built tree will optimize the used memory size. PL_NO_OPTIMIZATION is the default value.

plCndKernel plJointDistribution::ask const plVariablesConjunction search_params,
const plVariablesConjunction known_params,
plIntegrationModeType  integration_mode,
plFloat  convergence_threshold
const
 

Creates an expression using Monte Carlo integration using a number of points that allows convergence of the estimation according to the threshold value {convergence_threshold} (i.e.

{ abs(Estim(t+1) - Estim(t))/ Estim(t)} < convergence_threshold) Note that this method returns a freshly created object. If you are calling it in a loop, consider using the version that modifies an existing object instead.

void plJointDistribution::ask plCndKernel CndExpr,
const plVariablesConjunction search_params,
const plVariablesConjunction known_params,
plIntegrationModeType  integration_mode,
plFloat  convergence_threshold
const
 

Creates an expression using Monte Carlo integration using a number of points that allows convergence of the estimation according to the threshold value {convergence_threshold} (i.e.

{ abs(Estim(t+1) - Estim(t))/ Estim(t)} < convergence_threshold)

plCndKernel plJointDistribution::ask const plVariablesConjunction search_params,
const plVariablesConjunction known_params,
unsigned int  n
const
 

Creates an expression using Monte Carlo integration using {n} points.

Note that this method returns a freshly created object. If you are calling it in a loop, consider using the version that modifies an existing object instead.

plCndKernel plJointDistribution::ask const plVariablesConjunction search_params,
const plVariablesConjunction known_params,
plOptimizationCriterion  optimization = PL_NO_OPTIMIZATION
const
 

Creates an expression using exhaustive integration.

The parameter "optimization" defines the optimality criterion when constructing the evaluation tree. If "optimization = PL_OPTIMIZE_COMPILATION_TIME", the built tree will optimize the number of arithmetic operations required by the first compilation of P(search_params | known_params) (i.e for the first "instantiate", "compile" sequence). If "optimization = PL_OPTIMIZE_UPDATE_TIME", this tree will optimize the number of arithmetic operations required to update P(search_params | known_params) given a new value for "known_params" (i.e. for the nth (n >= 2) "instantiate", "compile" sequences). if "optimization = PL_OPTIMIZE_MEMORY_USE", the built tree will optimize the used memory size. PL_NO_OPTIMIZATION is the default value. Note that this method returns a freshly created object. If you are calling it in a loop, consider using the version that modifies an existing object instead.

void plJointDistribution::ask plCndKernel CndExpr,
const plVariablesConjunction search_params,
const plVariablesConjunction known_params,
plOptimizationCriterion  optimization = PL_NO_OPTIMIZATION
const
 

Creates an expression using exhaustive integration.

The parameter "optimization" defines the optimality criterion when constructing the evaluation tree. If "optimization = PL_OPTIMIZE_COMPILATION_TIME", the built tree will optimize the number of arithmetic operations required by the first compilation of P(search_params | known_params) (i.e for the first "instantiate", "compile" sequence). If "optimization = PL_OPTIMIZE_UPDATE_TIME", this tree will optimize the number of arithmetic operations required to update P(search_params | known_params) given a new value for "known_params" (i.e. for the nth (n >= 2) "instantiate", "compile" sequences). if "optimization = PL_OPTIMIZE_MEMORY_USE", the built tree will optimize the used memory size. PL_NO_OPTIMIZATION is the default value.

Referenced by ask().


The documentation for this class was generated from the following file:
Generated on Fri Apr 1 10:59:00 2005 for ProBT by  doxygen 1.4.1