gtsam
Loading...
Searching...
No Matches
gtsam::Constraint Class Referenceabstract

Detailed Description

Base class for constraint factors.

Derived classes include SingleValue, BinaryAllDiff, and AllDiff.

Inheritance diagram for gtsam::Constraint:

Public Member Functions

Standard Constructors
 Constraint ()
 Default constructor for I/O.
 ~Constraint () override
 Virtual destructor.
Standard Interface
virtual bool ensureArcConsistency (Key j, Domains *domains) const =0
 Ensure Arc-consistency by checking every possible value of domain j.
virtual shared_ptr partiallyApply (const DiscreteValues &) const =0
 Partially apply known values.
virtual shared_ptr partiallyApply (const Domains &) const =0
 Partially apply known values, domain version.
virtual DiscreteFactor::shared_ptr operator* (double s) const override
 Multiply by a scalar.
DecisionTreeFactor operator* (const DecisionTreeFactor &dtf) const override
 Multiply by a DecisionTreeFactor and return a DecisionTreeFactor.
DiscreteFactor::shared_ptr operator/ (const DiscreteFactor::shared_ptr &df) const override
 divide by DiscreteFactor::shared_ptr f (safely)
uint64_t nrValues () const override
 Get the number of non-zero values contained in this factor.
DiscreteFactor::shared_ptr sum (size_t nrFrontals) const override
 Create new factor by summing all values with the same separator values.
DiscreteFactor::shared_ptr sum (const Ordering &keys) const override
 Create new factor by summing all values with the same separator values.
double max () const override
 Find the max value.
DiscreteFactor::shared_ptr max (size_t nrFrontals) const override
 Create new factor by maximizing over all values with the same separator.
DiscreteFactor::shared_ptr max (const Ordering &keys) const override
 Create new factor by maximizing over all values with the same separator.
AlgebraicDecisionTree< Key > errorTree () const override
 Compute error for each assignment and return as a tree.
DiscreteFactor::shared_ptr restrict (const DiscreteValues &assignment) const override
 Compute error for each assignment and return as a tree.
Wrapper support
std::string markdown (const KeyFormatter &keyFormatter=DefaultKeyFormatter, const Names &names={}) const override
 Render as markdown table.
std::string html (const KeyFormatter &keyFormatter=DefaultKeyFormatter, const Names &names={}) const override
 Render as html table.
Public Member Functions inherited from gtsam::DiscreteFactor
 DiscreteFactor ()
 Default constructor creates empty factor.
template<typename CONTAINER>
 DiscreteFactor (const CONTAINER &keys, const std::map< Key, size_t > cardinalities={})
 Construct from container of keys and map of cardinalities.
virtual bool equals (const DiscreteFactor &lf, double tol=1e-9) const
 equals
void print (const std::string &s="DiscreteFactor\n", const KeyFormatter &formatter=DefaultKeyFormatter) const override
 print
DiscreteKeys discreteKeys () const
 Return all the discrete keys associated with this factor.
std::map< Key, size_t > cardinalities () const
size_t cardinality (Key j) const
virtual double evaluate (const Assignment< Key > &values) const =0
 Calculate probability for given values.
double operator() (const DiscreteValues &values) const
 Find value for given assignment of values to variables.
virtual double error (const DiscreteValues &values) const
 Error is just -log(value).
double error (const HybridValues &c) const override
 All factor types need to implement an error function.
virtual DiscreteFactor::shared_ptr multiply (const DiscreteFactor::shared_ptr &df) const
 Multiply in a DiscreteFactor and return the result as DiscreteFactor, both via shared pointers.
virtual DecisionTreeFactor toDecisionTreeFactor () const =0
virtual TableFactor toTableFactor () const
 Convert to a sparse table, falling back through a decision tree.
DiscreteFactor::shared_ptr scale () const
 Scale the factor values by the maximum to prevent underflow/overflow.
Public Member Functions inherited from gtsam::Factor
virtual ~Factor ()=default
 Default destructor.
bool empty () const
 Whether the factor is empty (involves zero variables).
Key front () const
 First key.
Key back () const
 Last key.
const_iterator find (Key key) const
 find
const KeyVector & keys () 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
virtual void printKeys (const std::string &s="Factor", const KeyFormatter &formatter=DefaultKeyFormatter) const
 print only keys
bool equals (const This &other, double tol=1e-9) const
 check equality
KeyVector & keys ()
iterator begin ()
 Iterator at beginning of involved variable keys.
iterator end ()
 Iterator at end of involved variable keys.

Public Types

typedef std::shared_ptr< Constraint > shared_ptr
Public Types inherited from gtsam::DiscreteFactor
typedef DiscreteFactor This
 This class.
typedef std::shared_ptr< DiscreteFactor > shared_ptr
 shared_ptr to this class
typedef Factor Base
 Our base class.
using Values = DiscreteValues
 backwards compatibility
using Unary = std::function<double(const double&)>
using UnaryAssignment
using Binary = std::function<double(const double, const double)>
using Names = DiscreteValues::Names
 Translation table from values to strings.
Public Types inherited from gtsam::Factor
typedef KeyVector::iterator iterator
 Iterator over keys.
typedef KeyVector::const_iterator const_iterator
 Const iterator over keys.

Protected Member Functions

 Constraint (Key j)
 Construct unary constraint factor.
 Constraint (Key j1, Key j2)
 Construct binary constraint factor.
 Constraint (const KeyVector &js)
 Construct n-way constraint factor.
template<class KeyIterator>
 Constraint (KeyIterator beginKey, KeyIterator endKey)
 Construct from a key iterator range.
 Factor ()
 Default constructor for I/O.
template<typename CONTAINER>
 Factor (const CONTAINER &keys)
 Construct factor from container of keys.
template<typename ITERATOR>
 Factor (ITERATOR first, ITERATOR last)
 Construct factor from iterator keys.

Additional Inherited Members

template<typename CONTAINER>
static Factor FromKeys (const CONTAINER &keys)
 Construct factor from container of keys.
template<typename ITERATOR>
static Factor FromIterators (ITERATOR first, ITERATOR last)
 Construct factor from iterator keys.
Protected Attributes inherited from gtsam::DiscreteFactor
std::map< Key, size_t > cardinalities_
 Map of Keys and their cardinalities.
Protected Attributes inherited from gtsam::Factor
KeyVector keys_
 The keys involved in this factor.

Member Function Documentation

◆ ensureArcConsistency()

virtual bool gtsam::Constraint::ensureArcConsistency ( Key j,
Domains * domains ) const
pure virtual

Ensure Arc-consistency by checking every possible value of domain j.

Parameters
jdomain to be checked
(in/out)domains all domains, but only domains->at(j) will be checked.
Returns
true if domains->at(j) was changed, false otherwise.

Implemented in gtsam::AllDiff, gtsam::BinaryAllDiff, gtsam::Domain, and gtsam::SingleValue.

◆ errorTree()

AlgebraicDecisionTree< Key > gtsam::Constraint::errorTree ( ) const
inlineoverridevirtual

Compute error for each assignment and return as a tree.

Reimplemented from gtsam::DiscreteFactor.

◆ html()

std::string gtsam::Constraint::html ( const KeyFormatter & keyFormatter = DefaultKeyFormatter,
const Names & names = {} ) const
inlineoverridevirtual

Render as html table.

Implements gtsam::DiscreteFactor.

◆ markdown()

std::string gtsam::Constraint::markdown ( const KeyFormatter & keyFormatter = DefaultKeyFormatter,
const Names & names = {} ) const
inlineoverridevirtual

Render as markdown table.

Implements gtsam::DiscreteFactor.

◆ max() [1/3]

double gtsam::Constraint::max ( ) const
inlineoverridevirtual

Find the max value.

Implements gtsam::DiscreteFactor.

◆ max() [2/3]

DiscreteFactor::shared_ptr gtsam::Constraint::max ( const Ordering & keys) const
inlineoverridevirtual

Create new factor by maximizing over all values with the same separator.

Implements gtsam::DiscreteFactor.

◆ max() [3/3]

DiscreteFactor::shared_ptr gtsam::Constraint::max ( size_t nrFrontals) const
inlineoverridevirtual

Create new factor by maximizing over all values with the same separator.

Implements gtsam::DiscreteFactor.

◆ nrValues()

uint64_t gtsam::Constraint::nrValues ( ) const
inlineoverridevirtual

Get the number of non-zero values contained in this factor.

Implements gtsam::DiscreteFactor.

Reimplemented in gtsam::Domain.

◆ operator*() [1/2]

DecisionTreeFactor gtsam::Constraint::operator* ( const DecisionTreeFactor & dtf) const
inlineoverridevirtual

Multiply by a DecisionTreeFactor and return a DecisionTreeFactor.

Implements gtsam::DiscreteFactor.

Reimplemented in gtsam::Domain, and gtsam::SingleValue.

◆ operator*() [2/2]

virtual DiscreteFactor::shared_ptr gtsam::Constraint::operator* ( double s) const
inlineoverridevirtual

Multiply by a scalar.

Implements gtsam::DiscreteFactor.

◆ operator/()

DiscreteFactor::shared_ptr gtsam::Constraint::operator/ ( const DiscreteFactor::shared_ptr & df) const
inlineoverridevirtual

divide by DiscreteFactor::shared_ptr f (safely)

Implements gtsam::DiscreteFactor.

◆ partiallyApply() [1/2]

virtual shared_ptr gtsam::Constraint::partiallyApply ( const DiscreteValues & ) const
pure virtual

Partially apply known values.

Implemented in gtsam::AllDiff, gtsam::BinaryAllDiff, gtsam::Domain, and gtsam::SingleValue.

◆ partiallyApply() [2/2]

virtual shared_ptr gtsam::Constraint::partiallyApply ( const Domains & ) const
pure virtual

Partially apply known values, domain version.

Implemented in gtsam::AllDiff, gtsam::BinaryAllDiff, gtsam::Domain, and gtsam::SingleValue.

◆ restrict()

DiscreteFactor::shared_ptr gtsam::Constraint::restrict ( const DiscreteValues & assignment) const
inlineoverridevirtual

Compute error for each assignment and return as a tree.

Implements gtsam::DiscreteFactor.

◆ sum() [1/2]

DiscreteFactor::shared_ptr gtsam::Constraint::sum ( const Ordering & keys) const
inlineoverridevirtual

Create new factor by summing all values with the same separator values.

Implements gtsam::DiscreteFactor.

◆ sum() [2/2]

DiscreteFactor::shared_ptr gtsam::Constraint::sum ( size_t nrFrontals) const
inlineoverridevirtual

Create new factor by summing all values with the same separator values.

Implements gtsam::DiscreteFactor.


The documentation for this class was generated from the following file:
  • /tmp/gtsam-4.3.0-doxygen.rsXPUS/source/gtsam/discrete/Constraint.h