gtsam  4.0.0 gtsam
gtsam::DecisionTreeFactor Class Reference

## Detailed Description

A discrete probabilistic factor.

Inheritance diagram for gtsam::DecisionTreeFactor:

## Public Member Functions

Standard Constructors
DecisionTreeFactor ()
Default constructor for I/O.

DecisionTreeFactor (const DiscreteKeys &keys, const ADT &potentials)
Constructor from Indices, Ordering, and AlgebraicDecisionDiagram.

template<class SOURCE >
DecisionTreeFactor (const DiscreteKeys &keys, SOURCE table)
Constructor from Indices and (string or doubles)

DecisionTreeFactor (const DiscreteConditional &c)
Construct from a DiscreteConditional type.

Testable
bool equals (const DiscreteFactor &other, double tol=1e-9) const
equality

virtual void print (const std::string &s="DecisionTreeFactor:\n", const KeyFormatter &formatter=DefaultKeyFormatter) const

Standard Interface
virtual double operator() (const Values &values) const
Value is just look up in AlgebraicDecisonTree.

DecisionTreeFactor operator * (const DecisionTreeFactor &f) const
multiply two factors

DecisionTreeFactor operator/ (const DecisionTreeFactor &f) const
divide by factor f (safely)

virtual DecisionTreeFactor toDecisionTreeFactor () const
Convert into a decisiontree.

shared_ptr sum (size_t nrFrontals) const
Create new factor by summing all values with the same separator values.

shared_ptr sum (const Ordering &keys) const
Create new factor by summing all values with the same separator values.

shared_ptr max (size_t nrFrontals) const
Create new factor by maximizing over all values with the same separator values.

DecisionTreeFactor apply (const DecisionTreeFactor &f, ADT::Binary op) const
Apply binary operator (*this) "op" f. More...

shared_ptr combine (size_t nrFrontals, ADT::Binary op) const
Combine frontal variables using binary operator "op". More...

shared_ptr combine (const Ordering &keys, ADT::Binary op) const
Combine frontal variables in an Ordering using binary operator "op". More...

Public Member Functions inherited from gtsam::DiscreteFactor
DiscreteFactor ()
Default constructor creates empty factor.

template<typename CONTAINER >
DiscreteFactor (const CONTAINER &keys)
Construct from container of keys. More...

virtual ~DiscreteFactor ()
Virtual destructor.

virtual bool empty () const
Test whether the factor is empty.

Public Member Functions inherited from gtsam::Factor
KeyVectorkeys ()

iterator begin ()
Iterator at beginning of involved variable keys.

iterator end ()
Iterator at end of involved variable keys.

void print (const std::string &s="Factor", const KeyFormatter &formatter=DefaultKeyFormatter) const
print

void printKeys (const std::string &s="Factor", const KeyFormatter &formatter=DefaultKeyFormatter) const
print only keys

Key front () const
First key.

Key back () const
Last key.

const_iterator find (Key key) const
find

const KeyVectorkeys () const
Access the factor's involved variable keys.

const_iterator begin () const
Iterator at beginning of involved variable keys.

const_iterator end () const
Iterator at end of involved variable keys.

size_t size () const

Public Member Functions inherited from gtsam::Potentials
GTSAM_EXPORT Potentials ()
Default constructor for I/O.

GTSAM_EXPORT Potentials (const DiscreteKeys &keys, const ADT &decisionTree)
Constructor from Indices and ADT.

template<class SOURCE >
Potentials (const DiscreteKeys &keys, SOURCE table)
Constructor from Indices and (string or doubles)

GTSAM_EXPORT bool equals (const Potentials &other, double tol=1e-9) const

GTSAM_EXPORT void print (const std::string &s="Potentials: ", const KeyFormatter &formatter=DefaultKeyFormatter) const

size_t cardinality (Key j) const

Public Member Functions inherited from gtsam::AlgebraicDecisionTree< Key >
AlgebraicDecisionTree (const Super &add)

AlgebraicDecisionTree (const Key &label, double y1, double y2)
Create a new leaf function splitting on a variable.

AlgebraicDecisionTree (const typename Super::LabelC &labelC, double y1, double y2)
Create a new leaf function splitting on a variable.

AlgebraicDecisionTree (const std::vector< typename Super::LabelC > &labelCs, const std::vector< double > &ys)
Create from keys and vector table.

AlgebraicDecisionTree (const std::vector< typename Super::LabelC > &labelCs, const std::string &table)
Create from keys and string table.

AlgebraicDecisionTree (Iterator begin, Iterator end, const Key &label)
Create a new function splitting on a variable.

AlgebraicDecisionTree (const AlgebraicDecisionTree< M > &other, const std::map< M, Key > &map)
Convert.

AlgebraicDecisionTree operator+ (const AlgebraicDecisionTree &g) const
sum

AlgebraicDecisionTree operator * (const AlgebraicDecisionTree &g) const
product

AlgebraicDecisionTree operator/ (const AlgebraicDecisionTree &g) const
division

AlgebraicDecisionTree sum (const Key &label, size_t cardinality) const
sum out variable

AlgebraicDecisionTree sum (const typename Super::LabelC &labelC) const
sum out variable

Public Member Functions inherited from gtsam::DecisionTree< Key, double >
DecisionTree (const double &y)
Create a constant.

DecisionTree (const Key &label, const double &y1, const double &y2)
Create a new leaf function splitting on a variable.

DecisionTree (const LabelC &label, const double &y1, const double &y2)
Allow Label+Cardinality for convenience.

DecisionTree (const std::vector< LabelC > &labelCs, const std::vector< double > &ys)
Create from keys and a corresponding vector of values.

DecisionTree (const std::vector< LabelC > &labelCs, const std::string &table)
Create from keys and string table.

DecisionTree (Iterator begin, Iterator end, const Key &label)
Create DecisionTree from others.

DecisionTree (const Key &label, const DecisionTree &f0, const DecisionTree &f1)
Create DecisionTree from two others.

DecisionTree (const DecisionTree< M, X > &other, const std::map< M, Key > &map, boost::function< double(const X &)> op)
Convert from a different type.

DecisionTree (const NodePtr &root)

NodePtr compose (Iterator begin, Iterator end, const Key &label) const

void print (const std::string &s="DecisionTree") const
GTSAM-style print.

bool equals (const DecisionTree &other, double tol=1e-9) const

virtual ~DecisionTree ()
Make virtual.

bool operator== (const DecisionTree &q) const
equality

const double & operator() (const Assignment< Key > &x) const
evaluate

DecisionTree apply (const Unary &op) const
apply Unary operation "op" to f

DecisionTree apply (const DecisionTree &g, const Binary &op) const
apply binary operation "op" to f and g

DecisionTree choose (const Key &label, size_t index) const
create a new function where value(label)==index It's like "restrict" in Darwiche09book pg329, 330?

DecisionTree combine (const Key &label, size_t cardinality, const Binary &op) const
combine subtrees on key with binary operation "op"

DecisionTree combine (const LabelC &labelC, const Binary &op) const
combine with LabelC for convenience

void dot (std::ostream &os, bool showZero=true) const
output to graphviz format, stream version

void dot (const std::string &name, bool showZero=true) const
output to graphviz format, open a file

## Public Types

typedef DecisionTreeFactor This

typedef DiscreteFactor Base
Typedef to base class.

typedef boost::shared_ptr< DecisionTreeFactorshared_ptr

Public Types inherited from gtsam::DiscreteFactor
typedef DiscreteFactor This
This class.

typedef boost::shared_ptr< DiscreteFactorshared_ptr
shared_ptr to this class

typedef Factor Base
Our base class.

typedef Assignment< KeyValues
A map from keys to values TODO: Do we need this? Should we just use gtsam::Values? We just need another special DiscreteValue to represent labels, However, all other Lie's operators are undefined in this class. More...

typedef boost::shared_ptr< ValuessharedValues

Public Types inherited from gtsam::Factor
typedef KeyVector::iterator iterator
Iterator over keys.

typedef KeyVector::const_iterator const_iterator
Const iterator over keys.

Public Types inherited from gtsam::Potentials

Public Types inherited from gtsam::AlgebraicDecisionTree< Key >
typedef DecisionTree< Key, double > Super

Public Types inherited from gtsam::DecisionTree< Key, double >
typedef boost::function< double(const double &)> Unary
Handy typedefs for unary and binary function types.

typedef boost::function< double(const double &, const double &)> Binary

typedef std::pair< Key, size_t > LabelC
A label annotated with cardinality.

typedef Node::Ptr NodePtr
---------------------— Node base class ------------------------— More...

## Additional Inherited Members

Public Attributes inherited from gtsam::DecisionTree< Key, double >
NodePtr root_

Protected Member Functions inherited from gtsam::Factor
Factor ()
Default constructor for I/O.

template<typename CONTAINER >
Factor (const CONTAINER &keys)
Construct factor from container of keys. More...

template<typename ITERATOR >
Factor (ITERATOR first, ITERATOR last)
Construct factor from iterator keys. More...

bool equals (const This &other, double tol=1e-9) const
check equality

Protected Member Functions inherited from gtsam::Potentials
Potentials (const ADT &potentials)
Constructor from ColumnIndex, and ADT.

Protected Member Functions inherited from gtsam::DecisionTree< Key, double >
NodePtr create (It begin, It end, ValueIt beginY, ValueIt endY) const
Internal recursive function to create from keys, cardinalities, and Y values.

NodePtr convert (const typename DecisionTree< M, X >::NodePtr &f, const std::map< M, Key > &map, boost::function< double(const X &)> op)
Convert to a different type.

DecisionTree ()
Default constructor.

Static Protected Member Functions inherited from gtsam::Factor
template<typename CONTAINER >
static Factor FromKeys (const CONTAINER &keys)
Construct factor from container of keys. More...

template<typename ITERATOR >
static Factor FromIterators (ITERATOR first, ITERATOR last)
Construct factor from iterator keys. More...

Static Protected Member Functions inherited from gtsam::Potentials
static GTSAM_EXPORT double safe_div (const double &a, const double &b)

Protected Attributes inherited from gtsam::Factor
KeyVector keys_
The keys involved in this factor.

Protected Attributes inherited from gtsam::Potentials
std::map< Key, size_t > cardinalities_
Cardinality for each key, used in combine.

## ◆ apply()

 DecisionTreeFactor gtsam::DecisionTreeFactor::apply ( const DecisionTreeFactor & f, ADT::Binary op ) const

Apply binary operator (*this) "op" f.

Parameters
 f the second argument for op op a binary operator that operates on AlgebraicDecisionDiagram potentials

## ◆ combine() [1/2]

 DecisionTreeFactor::shared_ptr gtsam::DecisionTreeFactor::combine ( size_t nrFrontals, ADT::Binary op ) const

Combine frontal variables using binary operator "op".

Parameters
 nrFrontals nr. of frontal to combine variables in this factor op a binary operator that operates on AlgebraicDecisionDiagram potentials
Returns
shared pointer to newly created DecisionTreeFactor

## ◆ combine() [2/2]

 DecisionTreeFactor::shared_ptr gtsam::DecisionTreeFactor::combine ( const Ordering & keys, ADT::Binary op ) const

Combine frontal variables in an Ordering using binary operator "op".

Parameters
 nrFrontals nr. of frontal to combine variables in this factor op a binary operator that operates on AlgebraicDecisionDiagram potentials
Returns
shared pointer to newly created DecisionTreeFactor

The documentation for this class was generated from the following files: