Package aima.core.search.csp

Examples of aima.core.search.csp.CSP


     * Creates a CSP and updates the environment as well as its view.
     */
    @Override
    public void prepare(String changedSelector) {
      AgentAppFrame.SelectionState selState = frame.getSelection();
      CSP csp = null;
      CSPView view = getCSPView();
      switch (selState.getValue(MapColoringFrame.ENV_SEL)) {
      case 0:
        csp = new MapCSP();
        break;
      case 1: // three moves
        csp = new MapCSP();
        csp.setDomain(MapCSP.NSW, new Domain(new Object[]{MapCSP.BLUE}));
        break;
      case 2: // three moves
        csp = new MapCSP();
        csp.setDomain(MapCSP.WA, new Domain(new Object[]{MapCSP.RED}));
        break;
      }
      view.clearMappings();
      view.setPositionMapping(MapCSP.WA, 5, 10);
      view.setPositionMapping(MapCSP.NT, 15, 3);
View Full Code Here


    }
    adjustTransformation(0, 0, maxX*3/2, maxY*4/3);
    Graphics2D g2 = (Graphics2D) g;
    g2.setBackground(Color.white);
    g2.clearRect(0, 0, getWidth(), getHeight());
    CSP csp = getCSP();
    if (csp != null) {
      for (Constraint constraint : csp.getConstraints())
        drawConstraint(g2, constraint);
      for (Variable var : csp.getVariables())
        drawVariable(g2, var);
    }
  }
View Full Code Here

* @author Ruediger Lunde
*/

public class MapColoringCSPDemo {
  public static void main(String[] args) {
    CSP csp = new MapCSP();
    StepCounter stepCounter = new StepCounter();
    SolutionStrategy solver;
   
    solver = new MinConflictsStrategy(1000);
    solver.addCSPStateListener(stepCounter);
    stepCounter.reset();
    System.out.println("Map Coloring (Minimum Conflicts)");
    System.out.println(solver.solve(csp.copyDomains()));
    System.out.println(stepCounter.getResults() + "\n");
   
    solver = new ImprovedBacktrackingStrategy(true, true, true, true);
    solver.addCSPStateListener(stepCounter);
    stepCounter.reset();
    System.out.println("Map Coloring (Backtracking + MRV + DEG + AC3 + LCV)");
    System.out.println(solver.solve(csp.copyDomains()));
    System.out.println(stepCounter.getResults() + "\n");
   
    solver = new BacktrackingStrategy();
    solver.addCSPStateListener(stepCounter);
    stepCounter.reset();
    System.out.println("Map Coloring (Backtracking)");
    System.out.println(solver.solve(csp.copyDomains()));
    System.out.println(stepCounter.getResults() + "\n");
  }
View Full Code Here

    animals = new Domain(new Object[] { "cat", "dog" });
  }

  @Test
  public void testConstraintNetwork() {
    CSP csp = new CSP(variables);
    csp.addConstraint(C1);
    csp.addConstraint(C2);
    Assert.assertNotNull(csp.getConstraints());
    Assert.assertEquals(2, csp.getConstraints().size());
    Assert.assertNotNull(csp.getConstraints(X));
    Assert.assertEquals(2, csp.getConstraints(X).size());
    Assert.assertNotNull(csp.getConstraints(Y));
    Assert.assertEquals(2, csp.getConstraints(Y).size());
    Assert.assertNotNull(csp.getConstraints(Z));
    Assert.assertEquals(0, csp.getConstraints(Z).size());
  }
View Full Code Here

  @Test
  public void testDomainChanges() {
    Domain colors2 = new Domain(colors.asList());
    Assert.assertEquals(colors, colors2);

    CSP csp = new CSP(variables);
    csp.addConstraint(C1);
    Assert.assertNotNull(csp.getDomain(X));
    Assert.assertEquals(0, csp.getDomain(X).size());
    Assert.assertNotNull(csp.getConstraints(X));

    csp.setDomain(X, colors);
    Assert.assertEquals(colors, csp.getDomain(X));
    Assert.assertEquals(3, csp.getDomain(X).size());
    Assert.assertEquals("red", csp.getDomain(X).get(0));

    CSP cspCopy = csp.copyDomains();
    Assert.assertNotNull(cspCopy.getDomain(X));
    Assert.assertEquals(3, cspCopy.getDomain(X).size());
    Assert.assertEquals("red", cspCopy.getDomain(X).get(0));
    Assert.assertNotNull(cspCopy.getDomain(Y));
    Assert.assertEquals(0, cspCopy.getDomain(Y).size());
    Assert.assertNotNull(cspCopy.getConstraints(X));
    Assert.assertEquals(C1, cspCopy.getConstraints(X).get(0));

    cspCopy.removeValueFromDomain(X, "red");
    Assert.assertEquals(2, cspCopy.getDomain(X).size());
    Assert.assertEquals("green", cspCopy.getDomain(X).get(0));
    Assert.assertEquals(3, csp.getDomain(X).size());
    Assert.assertEquals("red", csp.getDomain(X).get(0));

    cspCopy.setDomain(X, animals);
    Assert.assertEquals(2, cspCopy.getDomain(X).size());
    Assert.assertEquals("cat", cspCopy.getDomain(X).get(0));
    Assert.assertEquals(3, csp.getDomain(X).size());
    Assert.assertEquals("red", csp.getDomain(X).get(0));
  }
View Full Code Here

TOP

Related Classes of aima.core.search.csp.CSP

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.