|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectcc.mallet.grmm.types.FactorGraph
public class FactorGraph
Class for undirected graphical models. Created: Mon Sep 15 15:18:30 2003
| Constructor Summary | |
|---|---|
FactorGraph()
|
|
FactorGraph(java.util.Collection factors)
|
|
FactorGraph(Factor[] factors)
|
|
FactorGraph(int capacity)
Create a model with the given capacity (i.e., capacityin terms of number of variable nodes). |
|
FactorGraph(Variable[] vars)
Create a model with the variables given. |
|
| Method Summary | |
|---|---|
void |
addFactor(Factor factor)
Adds a factor to the model. |
void |
addFactor(Variable var1,
Variable var2,
double[] probs)
|
protected void |
afterFactorAdd(Factor factor)
Performs operations on a factor after it has been added to the model, such as caching. |
java.util.Collection |
allFactorsContaining(java.util.Collection vars)
Returns a collection of all factors that involve only the given variables. |
java.util.List |
allFactorsContaining(Variable var)
|
java.util.List |
allFactorsOf(java.util.Collection c)
Returns a list of all factors in the graph whose domain is exactly the specified Collection of Variables. |
java.util.List |
allFactorsOf(Variable var)
Returns a list of all factors in the graph whose domain is exactly the specified var. |
boolean |
almostEquals(Factor p)
Returns whether this is almost equal to another potential. |
boolean |
almostEquals(Factor p,
double epsilon)
|
int |
argmax()
Returns the assignment that maximizes this potential. |
AssignmentIterator |
assignmentIterator()
Returns an iterator over all assignments to all variables of this graphical model. |
AbstractTableFactor |
asTable()
|
protected void |
beforeFactorAdd(Factor factor)
Performs checking of a factor before it is added to the model. |
void |
clear()
Removes all potentias from this model. |
boolean |
containsVar(Variable v1)
Returns whether this variable is part of the model. |
void |
divideBy(Factor pot)
Computes this /= pot |
void |
dump()
Dumps all the variables and factors of the model to System.out in human-readable text. |
void |
dump(java.io.PrintWriter out)
|
java.lang.String |
dumpToString()
|
Factor |
duplicate()
Returns a copy of this model. |
double |
entropy()
Returns the expected log factor value, i.e., sum_x factor.value(x) * Math.log (factor.value (x)) where the summation is taken over all passible assignments. |
void |
exponentiate(double power)
|
Factor |
extractMax(java.util.Collection vars)
Returns a potential phi over the given variables obtained by taking phi (x) = max_[all v that contain x] this.prob (x) |
Factor |
extractMax(Variable var)
Returns a potential phi over the given variables obtained by taking phi (x) = max_[all v that contain x] this.prob (x) |
Factor |
extractMax(Variable[] vars)
Returns a potential phi over the given variables obtained by taking phi (x) = max_[all v that contain x] this.prob (x) |
Factor |
factorOf(java.util.Collection c)
Searches the graphical model for a factor over the given collection of variables. |
Factor |
factorOf(Variable var)
Returns the factor for a given node. |
Factor |
factorOf(Variable var1,
Variable var2)
Returns the factor defined over a given pair of variables. |
Factor |
factorOf(VarSet varSet)
Returns the factor in this graph, if any, whose domain is a given clique. |
double |
factorProduct(Assignment assn)
Returns the unnormalized probability for an assignment to the model. |
java.util.Collection |
factors()
Returns collection that contains factors in this model. |
java.util.Iterator |
factorsIterator()
Returns an iterator of all the factors in the graph. |
Variable |
findVariable(java.lang.String name)
Searches this model for a variable with a given name. |
Variable |
get(int index)
Returns a variable from this model with a given index. |
VarSet |
getAdjacentVertices(Variable var)
Returns all variables that are adjacent to a given variable in this graph---that is, the set of all variables that share a factor with this one. |
int |
getDegree(Variable var)
Returns the degree of a given variable in this factor graph, that is, the number of factors in which the variable is an argument. |
Factor |
getFactor(int i)
|
int |
getIndex(Factor factor)
|
int |
getIndex(Variable var)
Returns a unique numeric index for a variable in this model. |
java.lang.Object |
getInferenceCache(java.lang.Class inferencer)
Caches some information about this graph that is specific to a given type of inferencer (e.g., a junction tree). |
Variable |
getVariable(int i)
|
boolean |
isAdjacent(Variable v1,
Variable v2)
Returns whether two variables are adjacent in the model's graph. |
boolean |
isNaN()
|
void |
logify()
|
double |
logValue(Assignment assn)
|
double |
logValue(AssignmentIterator it)
|
double |
logValue(int loc)
|
Factor |
marginalize(java.util.Collection vars)
Returns the marginal of this distribution over the given variables. |
Factor |
marginalize(Variable var)
Returns the marginal of this distribution over one variable. |
Factor |
marginalize(Variable[] vars)
Returns the marginal of this distribution over the given variables. |
Factor |
marginalizeOut(Variable var)
Returns the marginal distribution attained by summing out the given variable. |
Factor |
marginalizeOut(VarSet varset)
Returns the marginal distribution attained by summing out the given set of variables. |
Factor |
multiply(Factor dist)
Returns the elementwise product of this factor with another. |
void |
multiplyBy(Factor pot)
Does this *= pot. |
Factor |
normalize()
Multiplies this potential by a constant such that it sums to 1. |
int |
numVariables()
Returns the number of variable nodes in the graph. |
java.lang.String |
prettyOutputString()
|
void |
printAsDot(java.io.PrintWriter out)
|
void |
printAsDot(java.io.PrintWriter out,
Assignment assn)
|
void |
remove(java.util.Collection vars)
Removes a Collection of variables from this model, along with all of its factors. |
void |
remove(Variable var)
Removes a variable from this model, along with all of its factors. |
Assignment |
sample(Randoms r)
Return an assignment sampled from this factor, interpreting it as an unnormalized probability distribution. |
Assignment |
sampleContinuousVars(Randoms r)
Samples the continuous variables in this factor graph. |
void |
setInferenceCache(java.lang.Class inferencer,
java.lang.Object info)
Caches some information about this graph that is specific to a given type of inferencer (e.g., a junction tree). |
Factor |
slice(Assignment assn)
|
Factor |
slice(Assignment assn,
java.util.Map toSlicedMap)
|
double |
sum()
Returns the sum of this potential over all cases. |
java.lang.String |
toString()
|
double |
value(Assignment assn)
FACTOR IMPLEMENTATION |
double |
value(AssignmentIterator it)
Returns the probability of an assignment to these variables. |
java.util.Iterator |
variablesIterator()
|
java.util.Set |
variablesSet()
|
VarSet |
varSet()
Returns set of variables in this potential. |
java.util.Iterator |
varSetIterator()
Returns an iterator of all the VarSets in the graph over which factors are defined. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Constructor Detail |
|---|
public FactorGraph()
public FactorGraph(Variable[] vars)
public FactorGraph(Factor[] factors)
public FactorGraph(java.util.Collection factors)
public FactorGraph(int capacity)
| Method Detail |
|---|
public int numVariables()
public java.util.Set variablesSet()
public java.util.Iterator variablesIterator()
public VarSet getAdjacentVertices(Variable var)
public java.util.Collection factors()
public java.util.Iterator factorsIterator()
public AssignmentIterator assignmentIterator()
assignmentIterator in interface FactorAssignmentpublic java.util.Iterator varSetIterator()
public int getIndex(Variable var)
getIndex and get are inverses. That is, if idx == getIndex (var), then get(idx) will return var.
var - A variable contained in this graphical model
get(int)public int getIndex(Factor factor)
public Variable get(int index)
getIndex and get are inverses. That is, if idx == getIndex (var), then get(idx) will return var.
getIndex(Variable)public Factor getFactor(int i)
public int getDegree(Variable var)
public Variable findVariable(java.lang.String name)
name - Name to find.
public Factor factorOf(VarSet varSet)
addFactor(Factor),
factorOf(Variable,Variable),
factorOf(Variable)
public Factor factorOf(Variable var1,
Variable var2)
This method is equivalent to calling factorOf(cc.mallet.grmm.types.VarSet)
with a VarSet that contains only v1 and v2.
var1 - One variable of the pair.var2 - The other variable of the pair.
public java.util.Collection allFactorsContaining(java.util.Collection vars)
public java.util.List allFactorsContaining(Variable var)
public java.util.List allFactorsOf(Variable var)
public java.util.List allFactorsOf(java.util.Collection c)
public void remove(Variable var)
public void remove(java.util.Collection vars)
public boolean isAdjacent(Variable v1,
Variable v2)
v1 - A variable in this modelv2 - Another variable in this model
public boolean containsVar(Variable v1)
containsVar in interface Factorv1 - Any Variable object
public void addFactor(Variable var1,
Variable var2,
double[] probs)
public void addFactor(Factor factor)
If a factor has already been added for the variables in the given clique, the effects of this method are (currently) undefined.
All convenience methods for adding factors eventually call through to this one, so this is the method for subclasses to override if they wish to perform additional actions when a factor is added to the graph.
factor - A factor over the variables in clique.protected void beforeFactorAdd(Factor factor)
factor - Factor that is about to be addedprotected void afterFactorAdd(Factor factor)
factor - Factor that has just been addedpublic void clear()
public double factorProduct(Assignment assn)
\prod_C \phi_C (assn)where C ranges over all cliques for which factors have been defined.
assn - An assignment for all variables in this model.
public Factor factorOf(Variable var)
This method is equivalent to calling factorOf(cc.mallet.grmm.types.VarSet)
with a clique object that contains only v.
var - which the factor is over.
addFactor(Factor)). Returns null if
no such factor exists.
java.lang.RuntimeException - If the model contains more than one factor over the given variable. Use allFactorsOf in this case.public Factor factorOf(java.util.Collection c)
java.lang.RuntimeException - If multiple factors exist over the given collection.allFactorsOf(java.util.Collection),
addFactor(Factor),
factorOf(VarSet)public Factor duplicate()
duplicate in interface Factorpublic void dump()
public void dump(java.io.PrintWriter out)
public java.lang.String dumpToString()
dumpToString in interface Factorpublic double value(Assignment assn)
value in interface Factorpublic double value(AssignmentIterator it)
FactorThis can be used to do things like
DiscretePotential phi = createMyPtl ();
for (AssignmentIterator it = phi.assignmentIterator; it.hasNext(); it.advance()) {
double val = ptl.phi (it);
// do something with val
}
This is equivalent to creating an assignment object explicitly using (Assignment) it.next(), but can be much faster.
value in interface Factorpublic Factor normalize()
Factor
normalize in interface Factorpublic Factor marginalize(Variable[] vars)
Factor
marginalize in interface Factorpublic Factor marginalize(java.util.Collection vars)
Factor
marginalize in interface Factorpublic Factor marginalize(Variable var)
Factor
marginalize in interface Factorpublic Factor marginalizeOut(Variable var)
Factor
marginalizeOut in interface Factorpublic Factor marginalizeOut(VarSet varset)
Factor
marginalizeOut in interface Factorpublic Factor extractMax(java.util.Collection vars)
Factor
extractMax in interface Factorpublic Factor extractMax(Variable var)
Factor
extractMax in interface Factorpublic Factor extractMax(Variable[] vars)
Factor
extractMax in interface Factorpublic int argmax()
Factor
argmax in interface Factorpublic Assignment sample(Randoms r)
Factor
sample in interface Factorpublic Assignment sampleContinuousVars(Randoms r)
public double sum()
Factor
sum in interface Factorpublic double entropy()
Factor
entropy in interface Factorpublic Factor multiply(Factor dist)
Factor
multiply in interface Factorpublic void multiplyBy(Factor pot)
FactorIf both potentials are currently in log space, then does addition instead.
multiplyBy in interface Factorpublic void exponentiate(double power)
exponentiate in interface Factorpublic void divideBy(Factor pot)
FactorIf both potentials are currently in log space, then does subtraction instead.
divideBy in interface Factorpublic VarSet varSet()
Factor
varSet in interface Factorpublic boolean almostEquals(Factor p)
Factor
almostEquals in interface Factor
public boolean almostEquals(Factor p,
double epsilon)
almostEquals in interface Factorpublic boolean isNaN()
isNaN in interface Factorpublic double logValue(AssignmentIterator it)
logValue in interface Factorpublic double logValue(int loc)
logValue in interface Factorpublic Variable getVariable(int i)
getVariable in interface Factorpublic Factor slice(Assignment assn)
slice in interface Factor
public Factor slice(Assignment assn,
java.util.Map toSlicedMap)
public void setInferenceCache(java.lang.Class inferencer,
java.lang.Object info)
inferencer - Class of inferencer that can use this
informationinfo - The information to cache.getInferenceCache(java.lang.Class)public java.lang.Object getInferenceCache(java.lang.Class inferencer)
inferencer - Class of inferencer which wants the information
setInferenceCache(java.lang.Class, java.lang.Object)public void logify()
public double logValue(Assignment assn)
logValue in interface Factorpublic AbstractTableFactor asTable()
asTable in interface Factorpublic java.lang.String prettyOutputString()
prettyOutputString in interface Factorpublic java.lang.String toString()
toString in class java.lang.Objectpublic void printAsDot(java.io.PrintWriter out)
public void printAsDot(java.io.PrintWriter out,
Assignment assn)
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||