gtsam 4.2.0
gtsam
Loading...
Searching...
No Matches
gtsam::Signature Class Reference

Detailed Description

Signature for a discrete conditional density, used to construct conditionals.

The format is (Key % string) for nodes with no parents, and (Key | Key, Key = string) for nodes with parents.

The string specifies a conditional probability table in 00 01 10 11 order. For three-valued, it would be 00 01 02 10 11 12 20 21 22, etc...

For example, given the following keys

Key A("Asia"), S("Smoking"), T("Tuberculosis"), L("LungCancer"), B("Bronchitis"), E("Either"), X("XRay"), D("Dyspnoea");

These are all valid signatures (Asia network example):

A % "99/1" S % "50/50" T|A = "99/1 95/5" L|S = "99/1 90/10" B|S = "70/30 40/60" (E|T,L) = "F F F 1" X|E = "95/5 2/98" (D|E,B) = "9/1 2/8 3/7 1/9"

Public Member Functions

 Signature (const DiscreteKey &key, const DiscreteKeys &parents, const Table &table)
 Construct from key, parents, and a Signature::Table specifying the conditional probability table (CPT) in 00 01 10 11 order.
 
 Signature (const DiscreteKey &key, const DiscreteKeys &parents, const std::string &spec)
 Construct from key, parents, and a string specifying the conditional probability table (CPT) in 00 01 10 11 order.
 
 Signature (const DiscreteKey &key)
 Construct from a single DiscreteKey.
 
const DiscreteKeykey () const
 the variable key
 
const DiscreteKeysparents () const
 the parent keys
 
DiscreteKeys discreteKeys () const
 All keys, with variable key first.
 
KeyVector indices () const
 All key indices, with variable key first.
 
const boost::optional< Table > & table () const
 
std::vector< double > cpt () const
 
Signatureoperator, (const DiscreteKey &parent)
 Add a parent.
 
Signatureoperator= (const std::string &spec)
 Add the CPT spec.
 
Signatureoperator= (const Table &table)
 Add the CPT spec directly as a table.
 

Public Types

typedef std::vector< double > Row
 Data type for the CPT.
 
typedef std::vector< RowTable
 

Friends

GTSAM_EXPORT friend std::ostream & operator<< (std::ostream &os, const Signature &s)
 provide streaming
 

Constructor & Destructor Documentation

◆ Signature() [1/3]

gtsam::Signature::Signature ( const DiscreteKey key,
const DiscreteKeys parents,
const Table &  table 
)

Construct from key, parents, and a Signature::Table specifying the conditional probability table (CPT) in 00 01 10 11 order.

For three-valued, it would be 00 01 02 10 11 12 20 21 22, etc....

The first string is parsed to add a key and parents.

Example: Signature::Table table{{0.9, 0.1}, {0.2, 0.8}, {0.3, 0.7}, {0.1, 0.9}}; Signature sig(D, {E, B}, table);

◆ Signature() [2/3]

gtsam::Signature::Signature ( const DiscreteKey key,
const DiscreteKeys parents,
const std::string &  spec 
)

Construct from key, parents, and a string specifying the conditional probability table (CPT) in 00 01 10 11 order.

For three-valued, it would be 00 01 02 10 11 12 20 21 22, etc....

The first string is parsed to add a key and parents. The second string parses into a table.

Example (same CPT as above): Signature sig(D, {B,E}, "9/1 2/8 3/7 1/9");

◆ Signature() [3/3]

gtsam::Signature::Signature ( const DiscreteKey key)

Construct from a single DiscreteKey.

The resulting signature has no parents or CPT table. Typical use then either adds parents with | and , operators below, or assigns a table with operator=().


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