|
|
| RegionGraph () |
| Default constructor. More...
|
|
| RegionGraph (const FactorGraph &fg, const std::vector< VarSet > &ors, const std::vector< Region > &irs, const std::vector< std::pair< size_t, size_t > > &edges) |
| Constructs a region graph from a factor graph, a vector of outer regions, a vector of inner regions and a vector of edges. More...
|
|
| RegionGraph (const FactorGraph &fg, const std::vector< VarSet > &cl) |
| Constructs a region graph from a factor graph and a vector of outer clusters (CVM style) More...
|
|
virtual RegionGraph * | clone () const |
| Clone *this (virtual copy constructor) More...
|
|
|
size_t | nrORs () const |
| Returns number of outer regions. More...
|
|
size_t | nrIRs () const |
| Returns number of inner regions. More...
|
|
const FRegion & | OR (size_t alpha) const |
| Returns constant reference to outer region alpha. More...
|
|
FRegion & | OR (size_t alpha) |
| Returns reference to outer region alpha. More...
|
|
const Region & | IR (size_t beta) const |
| Returns constant reference to inner region beta. More...
|
|
Region & | IR (size_t beta) |
| Returns reference to inner region beta. More...
|
|
size_t | fac2OR (size_t I) const |
| Returns the index of the outer region to which the I 'th factor corresponds. More...
|
|
const Neighbors & | nbOR (size_t alpha) const |
| Returns constant reference to the neighbors of outer region alpha. More...
|
|
const Neighbors & | nbIR (size_t beta) const |
| Returns constant reference to the neighbors of inner region beta. More...
|
|
const BipartiteGraph & | DAG () const |
| Returns DAG structure of the region graph. More...
|
|
|
bool | checkCountingNumbers () const |
| Check whether the counting numbers are valid. More...
|
|
|
virtual void | setFactor (size_t I, const Factor &newFactor, bool backup=false) |
| Set the content of the I 'th factor and make a backup of its old content if backup == true . More...
|
|
virtual void | setFactors (const std::map< size_t, Factor > &facs, bool backup=false) |
| Set the contents of all factors as specified by facs and make a backup of the old contents if backup == true . More...
|
|
| FactorGraph () |
| Default constructor. More...
|
|
| FactorGraph (const std::vector< Factor > &P) |
| Constructs a factor graph from a vector of factors. More...
|
|
template<typename FactorInputIterator , typename VarInputIterator > |
| FactorGraph (FactorInputIterator facBegin, FactorInputIterator facEnd, VarInputIterator varBegin, VarInputIterator varEnd, size_t nrFacHint=0, size_t nrVarHint=0) |
| Constructs a factor graph from given factor and variable iterators. More...
|
|
virtual | ~FactorGraph () |
| Destructor. More...
|
|
const Var & | var (size_t i) const |
| Returns constant reference the i 'th variable. More...
|
|
const std::vector< Var > & | vars () const |
| Returns constant reference to all variables. More...
|
|
const Factor & | factor (size_t I) const |
| Returns constant reference to I 'th factor. More...
|
|
const std::vector< Factor > & | factors () const |
| Returns constant reference to all factors. More...
|
|
const Neighbors & | nbV (size_t i) const |
| Returns constant reference to neighbors of the i 'th variable. More...
|
|
const Neighbors & | nbF (size_t I) const |
| Returns constant reference to neighbors of the I 'th factor. More...
|
|
const Neighbor & | nbV (size_t i, size_t _I) const |
| Returns constant reference to the _I 'th neighbor of the i 'th variable. More...
|
|
const Neighbor & | nbF (size_t I, size_t _i) const |
| Returns constant reference to the _i 'th neighbor of the I 'th factor. More...
|
|
const BipartiteGraph & | bipGraph () const |
| Returns neighborhood structure. More...
|
|
size_t | nrVars () const |
| Returns number of variables. More...
|
|
size_t | nrFactors () const |
| Returns number of factors. More...
|
|
size_t | nrEdges () const |
| Calculates number of edges. More...
|
|
size_t | findVar (const Var &n) const |
| Returns the index of a particular variable. More...
|
|
SmallSet< size_t > | findVars (const VarSet &ns) const |
| Returns a set of indexes corresponding to a set of variables. More...
|
|
size_t | findFactor (const VarSet &ns) const |
| Returns index of the first factor that depends on the variables. More...
|
|
VarSet | inds2vars (const std::vector< size_t > &inds) const |
| Returns the VarSet corresponding to a vector of variable indices. More...
|
|
VarSet | Delta (size_t i) const |
| Return all variables that occur in a factor involving the i 'th variable, itself included. More...
|
|
VarSet | Delta (const VarSet &vs) const |
| Return all variables that occur in a factor involving some variable in vs, vs itself included. More...
|
|
VarSet | delta (size_t i) const |
| Return all variables that occur in a factor involving the i 'th variable, itself excluded. More...
|
|
VarSet | delta (const VarSet &vs) const |
| Return all variables that occur in a factor involving some variable in vs, vs itself excluded. More...
|
|
SmallSet< size_t > | Deltai (size_t i) const |
| Return all the indices of variables that occur in a factor involving the i 'th variable, itself included. More...
|
|
SmallSet< size_t > | deltai (size_t i) const |
| Return all the indices of variables that occur in a factor involving the i 'th variable, itself excluded. More...
|
|
bool | isConnected () const |
| Returns true if the factor graph is connected. More...
|
|
bool | isTree () const |
| Returns true if the factor graph is a tree (i.e., has no cycles and is connected) More...
|
|
bool | isPairwise () const |
| Returns true if each factor depends on at most two variables. More...
|
|
bool | isBinary () const |
| Returns true if each variable has only two possible values. More...
|
|
GraphAL | MarkovGraph () const |
| Constructs the corresponding Markov graph. More...
|
|
bool | isMaximal (size_t I) const |
| Returns whether the I 'th factor is maximal. More...
|
|
size_t | maximalFactor (size_t I) const |
| Returns the index of a maximal factor that contains the I 'th factor. More...
|
|
std::vector< VarSet > | maximalFactorDomains () const |
| Returns the maximal factor domains in this factorgraph. More...
|
|
Real | logScore (const std::vector< size_t > &statevec) const |
| Evaluates the log score (i.e., minus the energy) of the joint configuration statevec. More...
|
|
void | backupFactor (size_t I) |
| Makes a backup of the I 'th factor. More...
|
|
void | restoreFactor (size_t I) |
| Restores the I 'th factor from the backup (it should be backed up first) More...
|
|
virtual void | backupFactors (const std::set< size_t > &facs) |
| Backup the factors specified by indices in facs. More...
|
|
virtual void | restoreFactors () |
| Restore all factors to the backup copies. More...
|
|
void | backupFactors (const VarSet &ns) |
| Makes a backup of all factors connected to a set of variables. More...
|
|
void | restoreFactors (const VarSet &ns) |
| Restores all factors connected to a set of variables from their backups. More...
|
|
FactorGraph | maximalFactors () const |
| Returns a copy of *this , where all factors that are subsumed by some larger factor are merged with the larger factors. More...
|
|
FactorGraph | clamped (size_t i, size_t x) const |
| Returns a copy of *this , where the i 'th variable has been clamped to value x. More...
|
|
virtual void | clamp (size_t i, size_t x, bool backup=false) |
| Clamp the i 'th variable to value x (i.e. multiply with a Kronecker delta ) More...
|
|
void | clampVar (size_t i, const std::vector< size_t > &xis, bool backup=false) |
| Clamp a variable in a factor graph to have one out of a list of values. More...
|
|
void | clampFactor (size_t I, const std::vector< size_t > &xIs, bool backup=false) |
| Clamp a factor in a factor graph to have one out of a list of values. More...
|
|
virtual void | makeCavity (size_t i, bool backup=false) |
| Set all factors interacting with the i 'th variable to 1. More...
|
|
virtual void | makeRegionCavity (std::vector< size_t > facInds, bool backup) |
| Set all factors indexed by facInds to 1. More...
|
|
std::string | toString () const |
| Formats a factor graph as a string. More...
|
|
void | fromString (const std::string &s) |
| Reads a factor graph from a string. More...
|
|
A RegionGraph combines a bipartite graph consisting of outer regions (type FRegion) and inner regions (type Region) with a FactorGraph.
A RegionGraph inherits from a FactorGraph and adds additional structure in the form of a "region graph". Our definition of region graph is inspired by [HAK03], which is less general than the definition given in [YFW05].
The extra structure described by a RegionGraph compared with that described by a FactorGraph is:
- a set of outer regions (indexed by ), where each outer region consists of
- a factor defined on a subset of variables
- a counting number
- a set of inner regions (indexed by ), where each inner region consists of
- a subset of variables
- a counting number
- edges between inner and outer regions
Each factor in the factor graph belongs to an outer region; normally, the factor contents of an outer region would be the product of all the factors that belong to that region.
- Idea:
Generalize the definition of region graphs to the one given in [YFW05], i.e., replace the current implementation which uses a BipartiteGraph with one that uses a DAG.
The outer regions are products of factors; right now, this product is constantly cached: changing one factor results in an update of all relevant outer regions. This may not be the most efficient approach; an alternative would be to only precompute the factor products at the start of an inference algorithm - e.g., in init(). This has the additional advantage that FactorGraph e can offer write access to its factors.