package aima.gui.demo.search; import aima.core.search.csp.*; import aima.core.search.csp.examples.MapCSP; /** * Demonstrates the performance of different constraint solving strategies. * The map coloring problem from the textbook is used as CSP. * * @author Ruediger Lunde */ public class MapColoringCspDemo { public static void main(String[] args) { CSP<Variable, String> csp = new MapCSP(); CspListener.StepCounter<Variable, String> stepCounter = new CspListener.StepCounter<>(); CspSolver<Variable, String> solver; solver = new MinConflictsSolver<>(1000); solver.addCspListener(stepCounter); stepCounter.reset(); System.out.println("Map Coloring (Minimum Conflicts)"); System.out.println(solver.solve(csp)); System.out.println(stepCounter.getResults() + "\n"); solver = new FlexibleBacktrackingSolver<Variable, String>().setAll(); solver.addCspListener(stepCounter); stepCounter.reset(); System.out.println("Map Coloring (Backtracking + MRV & DEG + LCV + AC3)"); System.out.println(solver.solve(csp)); System.out.println(stepCounter.getResults() + "\n"); solver = new FlexibleBacktrackingSolver<>(); solver.addCspListener(stepCounter); stepCounter.reset(); System.out.println("Map Coloring (Backtracking)"); System.out.println(solver.solve(csp)); System.out.println(stepCounter.getResults() + "\n"); } }