private void writeObject (ObjectOutputStream out) throws IOException { // out.defaultWriteObject (); out.writeInt (SERIAL_VERSION); out.writeInt (numVariables ()); for (int vi = 0; vi < numVariables (); vi++) { out.writeObject (getVariable (vi)); } out.writeInt (numRows ()); for (int ri = 0; ri < numRows (); ri++) { Object[] row = (Object[]) values.get (ri); out.writeObject (row); } out.writeDouble (scale); }
private void writeObject (ObjectOutputStream out) throws IOException { // out.defaultWriteObject (); out.writeInt (SERIAL_VERSION); out.writeInt (numVariables ()); for (int vi = 0; vi < numVariables (); vi++) { out.writeObject (getVariable (vi)); } out.writeInt (numRows ()); for (int ri = 0; ri < numRows (); ri++) { Object[] row = (Object[]) values.get (ri); out.writeObject (row); } out.writeDouble (scale); }
private void writeObject (ObjectOutputStream out) throws IOException { // out.defaultWriteObject (); out.writeInt (SERIAL_VERSION); out.writeInt (numVariables ()); for (int vi = 0; vi < numVariables (); vi++) { out.writeObject (getVariable (vi)); } out.writeInt (numRows ()); for (int ri = 0; ri < numRows (); ri++) { Object[] row = (Object[]) values.get (ri); out.writeObject (row); } out.writeDouble (scale); }
public void addRow (Assignment other) { checkAssignmentsMatch (other); for (int ridx = 0; ridx < other.numRows(); ridx++) { Object[] otherRow = (Object[]) other.values.get (ridx); Object[] row = new Object [otherRow.length]; for (int vi = 0; vi < row.length; vi++) { Variable var = this.getVariable (vi); row[vi] = other.getObject (ridx, var); } this.addRow (row); } }
public void addRow (Assignment other) { checkAssignmentsMatch (other); for (int ridx = 0; ridx < other.numRows(); ridx++) { Object[] otherRow = (Object[]) other.values.get (ridx); Object[] row = new Object [otherRow.length]; for (int vi = 0; vi < row.length; vi++) { Variable var = this.getVariable (vi); row[vi] = other.getObject (ridx, var); } this.addRow (row); } }
public void addRow (Assignment other) { checkAssignmentsMatch (other); for (int ridx = 0; ridx < other.numRows(); ridx++) { Object[] otherRow = (Object[]) other.values.get (ridx); Object[] row = new Object [otherRow.length]; for (int vi = 0; vi < row.length; vi++) { Variable var = this.getVariable (vi); row[vi] = other.getObject (ridx, var); } this.addRow (row); } }
private void checkAssignmentsMatch (Assignment other) { if (numVariables () == 0) { setVariables (other.vars.toVariableArray ()); } else { if (numVariables () != other.numVariables ()) throw new IllegalArgumentException ("Attempt to add row with non-matching variables.\n" + " This has vars: " + varSet () + "\n Other has vars:" + other.varSet ()); for (int vi = 0; vi < numVariables (); vi++) { Variable var = this.getVariable (vi); if (!other.containsVar (var)) { throw new IllegalArgumentException ("Attempt to add row with non-matching variables"); } } } }
private void checkAssignmentsMatch (Assignment other) { if (numVariables () == 0) { setVariables (other.vars.toVariableArray ()); } else { if (numVariables () != other.numVariables ()) throw new IllegalArgumentException ("Attempt to add row with non-matching variables.\n" + " This has vars: " + varSet () + "\n Other has vars:" + other.varSet ()); for (int vi = 0; vi < numVariables (); vi++) { Variable var = this.getVariable (vi); if (!other.containsVar (var)) { throw new IllegalArgumentException ("Attempt to add row with non-matching variables"); } } } }
private void checkAssignmentsMatch (Assignment other) { if (numVariables () == 0) { setVariables (other.vars.toVariableArray ()); } else { if (numVariables () != other.numVariables ()) throw new IllegalArgumentException ("Attempt to add row with non-matching variables.\n" + " This has vars: " + varSet () + "\n Other has vars:" + other.varSet ()); for (int vi = 0; vi < numVariables (); vi++) { Variable var = this.getVariable (vi); if (!other.containsVar (var)) { throw new IllegalArgumentException ("Attempt to add row with non-matching variables"); } } } }
public double query (FactorGraph mdl, Assignment assn) { // Computes joint of assignment using chain rule double marginal = 1.0; for (int i = 0; i < assn.size(); i++) { Variable var = assn.getVariable (i); computeMarginals (mdl); Factor ptl = lookupMarginal (var); marginal *= ptl.value (assn); mdl = Models.addEvidence (mdl, new Assignment (var, assn.get (var))); } return marginal; }
public double query (FactorGraph mdl, Assignment assn) { // Computes joint of assignment using chain rule double marginal = 1.0; for (int i = 0; i < assn.size(); i++) { Variable var = assn.getVariable (i); computeMarginals (mdl); Factor ptl = lookupMarginal (var); marginal *= ptl.value (assn); mdl = Models.addEvidence (mdl, new Assignment (var, assn.get (var))); } return marginal; }
public double query (FactorGraph mdl, Assignment assn) { // Computes joint of assignment using chain rule double marginal = 1.0; for (int i = 0; i < assn.size(); i++) { Variable var = assn.getVariable (i); computeMarginals (mdl); Factor ptl = lookupMarginal (var); marginal *= ptl.value (assn); mdl = Models.addEvidence (mdl, new Assignment (var, assn.get (var))); } return marginal; }
public void testMarginalize () { Assignment assn = new Assignment (); assn.addRow (vars, new int[] { 1, 1 }); assn.addRow (vars, new int[] { 1, 0 }); Assignment assn2 = (Assignment) assn.marginalize (vars[0]); assertEquals (2, assn2.numRows ()); assertEquals (1, assn2.size ()); assertEquals (vars[0], assn2.getVariable (0)); assertEquals (1, assn.get (0, vars[0])); assertEquals (1, assn.get (1, vars[0])); }
public void testMarginalize () { Assignment assn = new Assignment (); assn.addRow (vars, new int[] { 1, 1 }); assn.addRow (vars, new int[] { 1, 0 }); Assignment assn2 = (Assignment) assn.marginalize (vars[0]); assertEquals (2, assn2.numRows ()); assertEquals (1, assn2.size ()); assertEquals (vars[0], assn2.getVariable (0)); assertEquals (1, assn.get (0, vars[0])); assertEquals (1, assn.get (1, vars[0])); }
public void testMarginalizeOut () { Assignment assn = new Assignment (); assn.addRow (vars, new int[] { 1, 1 }); assn.addRow (vars, new int[] { 1, 0 }); Assignment assn2 = (Assignment) assn.marginalizeOut (vars[1]); assertEquals (2, assn2.numRows ()); assertEquals (1, assn2.size ()); assertEquals (vars[0], assn2.getVariable (0)); assertEquals (1, assn.get (0, vars[0])); assertEquals (1, assn.get (1, vars[0])); }
public void testMarginalizeOut () { Assignment assn = new Assignment (); assn.addRow (vars, new int[] { 1, 1 }); assn.addRow (vars, new int[] { 1, 0 }); Assignment assn2 = (Assignment) assn.marginalizeOut (vars[1]); assertEquals (2, assn2.numRows ()); assertEquals (1, assn2.size ()); assertEquals (vars[0], assn2.getVariable (0)); assertEquals (1, assn.get (0, vars[0])); assertEquals (1, assn.get (1, vars[0])); }
Variable var = currentAssn.getVariable (vi); assn.setValue (0, var, currentAssn.get (var));
Variable var = currentAssn.getVariable (vi); assn.setValue (0, var, currentAssn.get (var));
Variable var = currentAssn.getVariable (vi); assn.setValue (0, var, currentAssn.get (var));