public Factor slice (Assignment assn) { return slice (assn, null); }
public Factor slice (Assignment assn) { return slice (assn, null); }
public Factor slice (Assignment assn) { return slice (assn, null); }
public void testJtConstant () throws IOException { FactorGraph masterFg = new ModelReader ().readModel (new BufferedReader (new StringReader (gridStr))); JunctionTreeInferencer jt = new JunctionTreeInferencer (); Assignment assn = masterFg.sampleContinuousVars (new cc.mallet.util.Randoms (3214)); FactorGraph fg = (FactorGraph) masterFg.slice (assn); jt.computeMarginals (fg); }
public void testJtConstant () throws IOException { FactorGraph masterFg = new ModelReader ().readModel (new BufferedReader (new StringReader (gridStr))); JunctionTreeInferencer jt = new JunctionTreeInferencer (); Assignment assn = masterFg.sampleContinuousVars (new cc.mallet.util.Randoms (3214)); FactorGraph fg = (FactorGraph) masterFg.slice (assn); jt.computeMarginals (fg); }
public void testSliceInFg () throws IOException { ModelReader reader = new ModelReader (); FactorGraph fg = reader.readModel (new BufferedReader (new StringReader (TestBetaFactor.mdlstr))); Variable u1 = fg.findVariable ("u1"); Variable u2 = fg.findVariable ("u2"); Assignment assn = new Assignment (new Variable[] { u1, u2 }, new double[] { 0.25, 0.85 }); FactorGraph fg2 = (FactorGraph) fg.slice (assn); assertEquals (2, fg2.factors ().size ()); assertEquals (0.59261 * 1.13202, fg2.value (new Assignment ()), 1e-5); }
public void testSliceInFg () throws IOException { ModelReader reader = new ModelReader (); FactorGraph fg = reader.readModel (new BufferedReader (new StringReader (TestBetaFactor.mdlstr))); Variable u1 = fg.findVariable ("u1"); Variable u2 = fg.findVariable ("u2"); Assignment assn = new Assignment (new Variable[] { u1, u2 }, new double[] { 0.25, 0.85 }); FactorGraph fg2 = (FactorGraph) fg.slice (assn); assertEquals (2, fg2.factors ().size ()); assertEquals (0.59261 * 1.13202, fg2.value (new Assignment ()), 1e-5); }
public Assignment sample (Randoms r) { Variable[] contVars = Factors.continuousVarsOf (this); if ((contVars.length == 0) || (contVars.length == numVariables ())) { return sampleInternal (r); } else { Assignment paramAssn = sampleContinuousVars (contVars, r); FactorGraph discreteSliceFg = (FactorGraph) this.slice (paramAssn); Assignment discreteAssn = discreteSliceFg.sampleInternal (r); return Assignment.union (paramAssn, discreteAssn); } }
public Assignment sample (Randoms r) { Variable[] contVars = Factors.continuousVarsOf (this); if ((contVars.length == 0) || (contVars.length == numVariables ())) { return sampleInternal (r); } else { Assignment paramAssn = sampleContinuousVars (contVars, r); FactorGraph discreteSliceFg = (FactorGraph) this.slice (paramAssn); Assignment discreteAssn = discreteSliceFg.sampleInternal (r); return Assignment.union (paramAssn, discreteAssn); } }
public Assignment sample (Randoms r) { Variable[] contVars = Factors.continuousVarsOf (this); if ((contVars.length == 0) || (contVars.length == numVariables ())) { return sampleInternal (r); } else { Assignment paramAssn = sampleContinuousVars (contVars, r); FactorGraph discreteSliceFg = (FactorGraph) this.slice (paramAssn); Assignment discreteAssn = discreteSliceFg.sampleInternal (r); return Assignment.union (paramAssn, discreteAssn); } }
public void testBadVariable () { FactorGraph fg = createBoltzmannChain (5); Assignment assn = fg.sampleContinuousVars (new Randoms (23423)); FactorGraph sliced = (FactorGraph) fg.slice (assn); Inferencer bp = new TRP (); bp.computeMarginals (sliced); try { bp.lookupMarginal (new Variable (2)); fail ("Expected exception"); } catch (IllegalArgumentException e) { // expected System.out.println ("OK: As expected, got exception "+e); } }
public void testSliceInFg () throws IOException { ModelReader reader = new ModelReader (); FactorGraph fg = reader.readModel (new BufferedReader (new StringReader (mdlstr))); Variable u1 = fg.findVariable ("u1"); Variable u2 = fg.findVariable ("u2"); Assignment assn = new Assignment (new Variable[] { u1, u2 }, new double[] { 6.0, 6.0 }); FactorGraph fg2 = (FactorGraph) fg.slice (assn); fg2.dump (); assertEquals (2, fg2.factors ().size ()); assertEquals (1.0/20, fg2.value (new Assignment ()), 1e-5); fg2.addFactor (new ConstantFactor (10.0)); assertEquals (0.5, fg2.value (new Assignment ()), 1e-5); }
public void testSliceInFg () throws IOException { ModelReader reader = new ModelReader (); FactorGraph fg = reader.readModel (new BufferedReader (new StringReader (mdlstr))); Variable u1 = fg.findVariable ("u1"); Variable u2 = fg.findVariable ("u2"); Assignment assn = new Assignment (new Variable[] { u1, u2 }, new double[] { 6.0, 6.0 }); FactorGraph fg2 = (FactorGraph) fg.slice (assn); fg2.dump (); assertEquals (2, fg2.factors ().size ()); assertEquals (1.0/20, fg2.value (new Assignment ()), 1e-5); fg2.addFactor (new ConstantFactor (10.0)); assertEquals (0.5, fg2.value (new Assignment ()), 1e-5); }
public void testBadVariable () { FactorGraph fg = createBoltzmannChain (5); Assignment assn = fg.sampleContinuousVars (new Randoms (23423)); FactorGraph sliced = (FactorGraph) fg.slice (assn); Inferencer bp = new TRP (); bp.computeMarginals (sliced); try { bp.lookupMarginal (new Variable (2)); fail ("Expected exception"); } catch (IllegalArgumentException e) { // expected System.out.println ("OK: As expected, got exception "+e); } }