private Assignment doOnePass (FactorGraph mdl, Assignment initial) { Assignment ret = (Assignment) initial.duplicate (); for (int vidx = 0; vidx < ret.size (); vidx++) { Variable var = mdl.get (vidx); DiscreteFactor subcpt = constructConditionalCpt (mdl, var, ret); int value = subcpt.sampleLocation (r); ret.setValue (var, value); } return ret; }
private Assignment doOnePass (FactorGraph mdl, Assignment initial) { Assignment ret = (Assignment) initial.duplicate (); for (int vidx = 0; vidx < ret.size (); vidx++) { Variable var = mdl.get (vidx); DiscreteFactor subcpt = constructConditionalCpt (mdl, var, ret); int value = subcpt.sampleLocation (r); ret.setValue (var, value); } return ret; }
protected Factor slice_onevar (Variable var, Assignment observed) { Assignment assn = (Assignment) observed.duplicate (); double[] vals = new double [var.getNumOutcomes ()]; for (int i = 0; i < var.getNumOutcomes (); i++) { assn.setValue (var, i); vals[i] = logValue (assn); } return LogTableFactor.makeFromLogValues (var, vals); }
protected Factor slice_onevar (Variable var, Assignment observed) { Assignment assn = (Assignment) observed.duplicate (); double[] vals = new double [var.getNumOutcomes ()]; for (int i = 0; i < var.getNumOutcomes (); i++) { assn.setValue (var, i); vals[i] = logValue (assn); } return LogTableFactor.makeFromLogValues (var, vals); }
protected Factor slice_onevar (Variable var, Assignment observed) { Assignment assn = (Assignment) observed.duplicate (); double[] vals = new double [var.getNumOutcomes ()]; for (int i = 0; i < var.getNumOutcomes (); i++) { assn.setValue (var, i); vals[i] = logValue (assn); } return LogTableFactor.makeFromLogValues (var, vals); }
private Assignment doOnePass (FactorGraph mdl, Assignment initial) { Assignment ret = (Assignment) initial.duplicate (); for (int vidx = 0; vidx < ret.size (); vidx++) { Variable var = mdl.get (vidx); DiscreteFactor subcpt = constructConditionalCpt (mdl, var, ret); int value = subcpt.sampleLocation (r); ret.setValue (var, value); } return ret; }
protected Factor slice_twovar (Variable v1, Variable v2, Assignment observed) { Assignment assn = (Assignment) observed.duplicate (); int N1 = v1.getNumOutcomes (); int N2 = v2.getNumOutcomes (); int[] szs = new int[]{N1, N2}; double[] vals = new double [N1 * N2]; for (int i = 0; i < N1; i++) { assn.setValue (v1, i); for (int j = 0; j < N2; j++) { assn.setValue (v2, j); int idx = Matrixn.singleIndex (szs, new int[]{i, j}); // Inefficient, but much less error prone vals[idx] = logValue (assn); } } return LogTableFactor.makeFromLogValues (new Variable[]{v1, v2}, vals); }
protected Factor slice_twovar (Variable v1, Variable v2, Assignment observed) { Assignment assn = (Assignment) observed.duplicate (); int N1 = v1.getNumOutcomes (); int N2 = v2.getNumOutcomes (); int[] szs = new int[]{N1, N2}; double[] vals = new double [N1 * N2]; for (int i = 0; i < N1; i++) { assn.setValue (v1, i); for (int j = 0; j < N2; j++) { assn.setValue (v2, j); int idx = Matrixn.singleIndex (szs, new int[]{i, j}); // Inefficient, but much less error prone vals[idx] = logValue (assn); } } return LogTableFactor.makeFromLogValues (new Variable[]{v1, v2}, vals); }
public void testSetValueDup () { Assignment assn = new Assignment (); assn.addRow (vars, new int[] { 1, 1 }); Assignment dup = (Assignment) assn.duplicate (); dup.setValue (vars[0], 0); assertEquals (1, dup.numRows ()); assertEquals (0, dup.get (0, vars[0])); assertEquals (1, dup.get (0, vars[1])); }
public void testSetValueDup () { Assignment assn = new Assignment (); assn.addRow (vars, new int[] { 1, 1 }); Assignment dup = (Assignment) assn.duplicate (); dup.setValue (vars[0], 0); assertEquals (1, dup.numRows ()); assertEquals (0, dup.get (0, vars[0])); assertEquals (1, dup.get (0, vars[1])); }
protected Factor slice_twovar (Variable v1, Variable v2, Assignment observed) { Assignment assn = (Assignment) observed.duplicate (); int N1 = v1.getNumOutcomes (); int N2 = v2.getNumOutcomes (); int[] szs = new int[]{N1, N2}; double[] vals = new double [N1 * N2]; for (int i = 0; i < N1; i++) { assn.setValue (v1, i); for (int j = 0; j < N2; j++) { assn.setValue (v2, j); int idx = Matrixn.singleIndex (szs, new int[]{i, j}); // Inefficient, but much less error prone vals[idx] = logValue (assn); } } return LogTableFactor.makeFromLogValues (new Variable[]{v1, v2}, vals); }
ACRF.UnrolledVarSet[] cliques = it.cliques (); Assignment assn = (Assignment) observations.duplicate ();
ACRF.UnrolledVarSet[] cliques = it.cliques (); Assignment assn = (Assignment) observations.duplicate ();
ACRF.UnrolledVarSet[] cliques = it.cliques (); Assignment assn = (Assignment) observations.duplicate ();