private static void addSlicedPotentials (FactorGraph fromMdl, FactorGraph toMdl, Assignment assn, Map toSlicedMap) { Set inputVars = new THashSet (Arrays.asList (assn.getVars ())); Set remainingVars = new THashSet (fromMdl.variablesSet ()); remainingVars.removeAll (inputVars); for (Iterator it = fromMdl.factorsIterator (); it.hasNext ();) { Factor ptl = (Factor) it.next (); Set theseVars = new THashSet (ptl.varSet ()); theseVars.retainAll (remainingVars); Factor slicedPtl = ptl.slice (assn); toMdl.addFactor (slicedPtl); if (toSlicedMap != null) { toSlicedMap.put (ptl, slicedPtl); } } }
private static void addSlicedPotentials (FactorGraph fromMdl, FactorGraph toMdl, Assignment assn, Map toSlicedMap) { Set inputVars = new THashSet (Arrays.asList (assn.getVars ())); Set remainingVars = new THashSet (fromMdl.variablesSet ()); remainingVars.removeAll (inputVars); for (Iterator it = fromMdl.factorsIterator (); it.hasNext ();) { Factor ptl = (Factor) it.next (); Set theseVars = new THashSet (ptl.varSet ()); theseVars.retainAll (remainingVars); Factor slicedPtl = ptl.slice (assn); toMdl.addFactor (slicedPtl); if (toSlicedMap != null) { toSlicedMap.put (ptl, slicedPtl); } } }
private static void addSlicedPotentials (FactorGraph fromMdl, FactorGraph toMdl, Assignment assn, Map toSlicedMap) { Set inputVars = new THashSet (Arrays.asList (assn.getVars ())); Set remainingVars = new THashSet (fromMdl.variablesSet ()); remainingVars.removeAll (inputVars); for (Iterator it = fromMdl.factorsIterator (); it.hasNext ();) { Factor ptl = (Factor) it.next (); Set theseVars = new THashSet (ptl.varSet ()); theseVars.retainAll (remainingVars); Factor slicedPtl = ptl.slice (assn); toMdl.addFactor (slicedPtl); if (toSlicedMap != null) { toSlicedMap.put (ptl, slicedPtl); } } }
private boolean isWrong2RightAssn (Assignment target, Assignment assn, Variable toExclude) { Variable[] vars = assn.getVars (); for (int i = 0; i < vars.length; i++) { Variable variable = vars[i]; if ((variable != toExclude) && (assn.get (variable) != target.get (variable))) { // return true; return assn.get (toExclude) == target.get (toExclude); } } return false; }
private boolean isWrong2RightAssn (Assignment target, Assignment assn, Variable toExclude) { Variable[] vars = assn.getVars (); for (int i = 0; i < vars.length; i++) { Variable variable = vars[i]; if ((variable != toExclude) && (assn.get (variable) != target.get (variable))) { // return true; return assn.get (toExclude) == target.get (toExclude); } } return false; }
private boolean isWrong2RightAssn (Assignment target, Assignment assn, Variable toExclude) { Variable[] vars = assn.getVars (); for (int i = 0; i < vars.length; i++) { Variable variable = vars[i]; if ((variable != toExclude) && (assn.get (variable) != target.get (variable))) { // return true; return assn.get (toExclude) == target.get (toExclude); } } return false; }
/** * Creates a new potential that is equal to this one, restricted to a given assignment. * @param assn Variables to hold as fixed * @return A new factor over VARS(factor)\VARS(assn) */ public Factor slice (Assignment assn) { Set intersection = varSet().intersection (assn.varSet ()); if (intersection.isEmpty ()) { return this; } else { HashVarSet clique = new HashVarSet (varSet ()); clique.removeAll (Arrays.asList (assn.getVars ())); return this.sliceInternal (clique.toVariableArray (), assn); } }
/** * Creates a new potential that is equal to this one, restricted to a given assignment. * @param assn Variables to hold as fixed * @return A new factor over VARS(factor)\VARS(assn) */ public Factor slice (Assignment assn) { Set intersection = varSet().intersection (assn.varSet ()); if (intersection.isEmpty ()) { return this; } else { HashVarSet clique = new HashVarSet (varSet ()); clique.removeAll (Arrays.asList (assn.getVars ())); return this.sliceInternal (clique.toVariableArray (), assn); } }
/** * Creates a new potential that is equal to this one, restricted to a given assignment. * @param assn Variables to hold as fixed * @return A new factor over VARS(factor)\VARS(assn) */ public Factor slice (Assignment assn) { Set intersection = varSet().intersection (assn.varSet ()); if (intersection.isEmpty ()) { return this; } else { HashVarSet clique = new HashVarSet (varSet ()); clique.removeAll (Arrays.asList (assn.getVars ())); return this.sliceInternal (clique.toVariableArray (), assn); } }