/** * Returns true iff this potential is over the given variable */ public boolean containsVar (Variable var) { return vars.contains (var); }
/** * Returns true iff this potential is over the given variable */ public boolean containsVar (Variable var) { return vars.contains (var); }
/** * Returns true iff this potential is over the given variable */ public boolean containsVar (Variable var) { return vars.contains (var); }
protected Factor marginalizeInternal (VarSet varsToKeep) { if (varsToKeep.contains (var)) { return duplicate (); } else { return new ConstantFactor (val * (max - min)); } }
protected Factor marginalizeInternal (VarSet varsToKeep) { if (varsToKeep.contains (var)) { return duplicate (); } else { return new ConstantFactor (1.0); } }
protected Factor marginalizeInternal (VarSet varsToKeep) { if (varsToKeep.contains (var)) { return duplicate (); } else { return new ConstantFactor (1.0); } }
protected Factor marginalizeInternal (VarSet varsToKeep) { if (varsToKeep.contains (var)) { return duplicate (); } else { return new ConstantFactor (1.0); } }
protected Factor marginalizeInternal (VarSet varsToKeep) { if (varsToKeep.contains (var)) { return duplicate (); } else { return new ConstantFactor (1.0); } }
protected Factor marginalizeInternal (VarSet varsToKeep) { if (varsToKeep.contains (var)) { return duplicate (); } else { return new ConstantFactor (val * (max - min)); } }
public Factor marginalize (Variable var) { assert varSet ().contains (var); // Perhaps throw exception instead return marginalizeInternal (createBlankSubset (new Variable[]{var})); }
public void testVarSet () { Variable var = new Variable (Variable.CONTINUOUS); Factor f = new BetaFactor (var, 0.5, 0.5); assertEquals (1, f.varSet ().size ()); assertTrue (f.varSet().contains (var)); }
public void testVarSet () { Variable var = new Variable (Variable.CONTINUOUS); Factor f = new UniNormalFactor (var, -1.0, 1.5); assertEquals (1, f.varSet ().size ()); assertTrue (f.varSet().contains (var)); }
public void sendMessage (FactorGraph mdl, Variable from, Factor to) { // System.err.println ("...max-prod message"); int fromIdx = messages.getIndex (from); int toIdx = messages.getIndex (to); Factor msg = msgProduct (null, fromIdx, toIdx); msg.normalize (); assert msg.varSet ().size () == 1; assert msg.varSet ().contains (from); messages.put (fromIdx, toIdx, msg); }
public void sendMessage (FactorGraph mdl, Variable from, Factor to) { // System.err.println ("...max-prod message"); int fromIdx = messages.getIndex (from); int toIdx = messages.getIndex (to); Factor msg = msgProduct (null, fromIdx, toIdx); msg.normalize (); assert msg.varSet ().size () == 1; assert msg.varSet ().contains (from); messages.put (fromIdx, toIdx, msg); }
public void sendMessage (FactorGraph mdl, Variable from, Factor to) { // System.err.println ("...sum-prod message"); int fromIdx = messages.getIndex (from); int toIdx = messages.getIndex (to); Factor msg = msgProduct (null, fromIdx, toIdx); msg.normalize (); assert msg.varSet ().size () == 1; assert msg.varSet ().contains (from); messages.put (fromIdx, toIdx, msg); }
public void sendMessage (FactorGraph mdl, Variable from, Factor to) { // System.err.println ("...sum-prod message"); int fromIdx = messages.getIndex (from); int toIdx = messages.getIndex (to); Factor msg = msgProduct (null, fromIdx, toIdx); msg.normalize (); assert msg.varSet ().size () == 1; assert msg.varSet ().contains (from); messages.put (fromIdx, toIdx, msg); }
public void testMarginalizeOut () { Variable[] vars = new Variable[] { new Variable (2), new Variable (2) }; TableFactor ptl = new TableFactor (vars, new double[] { 1, 2, 3, 4}); TableFactor ptl2 = (TableFactor) ptl.marginalizeOut (vars[0]); assertEquals ("FAILURE: Potential has too many vars.\n "+ptl2, 1, ptl2.varSet ().size ()); assertTrue ("FAILURE: Potential does not contain "+vars[1]+":\n "+ptl2, ptl2.varSet ().contains (vars[1])); double[] expected = new double[] { 4, 6 }; assertTrue ("FAILURE: Potential has incorrect values. Expected "+ArrayUtils.toString (expected)+"was "+ptl2, Maths.almostEquals (ptl2.toValueArray (), expected, 1e-5)); }
public void testMarginalizeOut () { Variable[] vars = new Variable[] { new Variable (2), new Variable (2) }; TableFactor ptl = new TableFactor (vars, new double[] { 1, 2, 3, 4}); TableFactor ptl2 = (TableFactor) ptl.marginalizeOut (vars[0]); assertEquals ("FAILURE: Potential has too many vars.\n "+ptl2, 1, ptl2.varSet ().size ()); assertTrue ("FAILURE: Potential does not contain "+vars[1]+":\n "+ptl2, ptl2.varSet ().contains (vars[1])); double[] expected = new double[] { 4, 6 }; assertTrue ("FAILURE: Potential has incorrect values. Expected "+ArrayUtils.toString (expected)+"was "+ptl2, Maths.almostEquals (ptl2.toValueArray (), expected, 1e-5)); }
public void testExtractMaxLogSpace () { Variable[] vars = new Variable[] { new Variable (2), new Variable (2) }; LogTableFactor ptl = LogTableFactor.makeFromValues (vars, new double[]{1, 2, 3, 4}); LogTableFactor ptl2 = (LogTableFactor) ptl.extractMax (vars[1]); assertEquals ("FAILURE: Potential has too many vars.\n "+ptl2, 1, ptl2.varSet ().size ()); assertTrue ("FAILURE: Potential does not contain "+vars[1]+":\n "+ptl2, ptl2.varSet ().contains (vars[1])); double[] expected = new double[] { 3, 4 }; assertTrue ("FAILURE: Potential has incorrect values. Expected "+ArrayUtils.toString (expected)+"was "+ptl2, Maths.almostEquals (ptl2.toValueArray (), expected, 1e-5)); }
public void testExtractMaxLogSpace () { Variable[] vars = new Variable[] { new Variable (2), new Variable (2) }; LogTableFactor ptl = LogTableFactor.makeFromValues (vars, new double[]{1, 2, 3, 4}); LogTableFactor ptl2 = (LogTableFactor) ptl.extractMax (vars[1]); assertEquals ("FAILURE: Potential has too many vars.\n "+ptl2, 1, ptl2.varSet ().size ()); assertTrue ("FAILURE: Potential does not contain "+vars[1]+":\n "+ptl2, ptl2.varSet ().contains (vars[1])); double[] expected = new double[] { 3, 4 }; assertTrue ("FAILURE: Potential has incorrect values. Expected "+ArrayUtils.toString (expected)+"was "+ptl2, Maths.almostEquals (ptl2.toValueArray (), expected, 1e-5)); }