gtsam 4.2.2
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 DiscreteKey & key () const
 the variable key
const DiscreteKeys & parents () 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
Signature & operator, (const DiscreteKey &parent)
 Add a parent.
Signature & operator= (const std::string &spec)
 Add the CPT spec.
Signature & operator= (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< Row > Table

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:
  • /build/reproducible-path/gtsam-4.2.2+dfsg/gtsam/discrete/Signature.h
  • /build/reproducible-path/gtsam-4.2.2+dfsg/gtsam/discrete/Signature.cpp