From e06ba8ea1346e5045a34508648ac93150aacb01a Mon Sep 17 00:00:00 2001 From: Jannis Harder Date: Fri, 17 Jun 2011 17:41:52 +0200 Subject: Reimplemented AI (old one was too slow) git-svn-id: svn://sunsvr01.isp.uni-luebeck.de/swproj13/trunk@443 72836036-5685-4462-b002-a69064685172 --- .../ai/fdsolver/constraint/SameConstraint.java | 69 ---------------------- 1 file changed, 69 deletions(-) delete mode 100644 src/jrummikub/ai/fdsolver/constraint/SameConstraint.java (limited to 'src/jrummikub/ai/fdsolver/constraint/SameConstraint.java') diff --git a/src/jrummikub/ai/fdsolver/constraint/SameConstraint.java b/src/jrummikub/ai/fdsolver/constraint/SameConstraint.java deleted file mode 100644 index 7fc0025..0000000 --- a/src/jrummikub/ai/fdsolver/constraint/SameConstraint.java +++ /dev/null @@ -1,69 +0,0 @@ -package jrummikub.ai.fdsolver.constraint; - -import java.util.Arrays; -import java.util.Collection; -import java.util.Collections; -import java.util.HashSet; -import java.util.Iterator; - -import jrummikub.ai.fdsolver.Constraint; -import jrummikub.ai.fdsolver.Propagator; -import jrummikub.ai.fdsolver.Satisfiability; -import jrummikub.ai.fdsolver.Var; - -public class SameConstraint extends Constraint { - private Var x, y; - Propagator propX, propY; - - public SameConstraint(Var x, Var y) { - this.x = x; - this.y = y; - propX = new SameProp(x, y); - propY = new SameProp(y, x); - } - - @Override - public Collection> getWatchedVars() { - return Arrays.> asList(x, y); - } - - private class SameProp implements Propagator { - private Var x, y; - public SameProp(Var x, Var y) { - this.x = x; - this.y = y; - } - - @Override - public Collection> getWatchedVars() { - return Arrays.>asList(y); - } - - @Override - public void propagate() { - for(Iterator i = x.iterator(); i.hasNext();) { - if(!y.getRange().contains(i.next())) { - i.remove(); - } - } - } - } - - - @Override - public Collection getPropagators(boolean negate) { - return Arrays.asList(propX, propY); - } - - @Override - public Satisfiability getSatisfiability() { - if (Collections.disjoint(x.getRange(), y.getRange())) { - return Satisfiability.UNSAT; - } else if (x.getRange().size() == 1 && y.getRange().size() == 1) { - return Satisfiability.TAUT; - } else { - return Satisfiability.SAT; - } - } - -} -- cgit v1.2.3