1- package aima .core .search .csp ;
2-
3-
4- /**
5- * Artificial Intelligence A Modern Approach (3rd Ed.): Figure 6.1, Page 204.<br>
6- * <br>
7- * The principal states and territories of Australia. Coloring this map can be
8- * viewed as a constraint satisfaction problem (CSP). The goal is to assign
9- * colors to each region so that no neighboring regions have the same color.
10- *
11- * @author Ruediger Lunde
12- * @author Mike Stampone
13- */
14- public class MapCSP extends CSP {
15- public static final Variable NSW = new Variable ("NSW" );
16- public static final Variable NT = new Variable ("NT" );
17- public static final Variable Q = new Variable ("Q" );
18- public static final Variable SA = new Variable ("SA" );
19- public static final Variable T = new Variable ("T" );
20- public static final Variable V = new Variable ("V" );
21- public static final Variable WA = new Variable ("WA" );
22- public static final String RED = "RED" ;
23- public static final String GREEN = "GREEN" ;
24- public static final String BLUE = "BLUE" ;
25-
26- /**
27- * Constructs a map CSP for the principal states and territories of
28- * Australia, with the colors Red, Green, and Blue.
29- */
30- public MapCSP () {
31- addVariable (NSW );
32- addVariable (WA );
33- addVariable (NT );
34- addVariable (Q );
35- addVariable (SA );
36- addVariable (V );
37- addVariable (T );
38-
39- Domain colors = new Domain (new Object [] { RED , GREEN , BLUE });
40-
41- for (Variable var : getVariables ())
42- setDomain (var , colors );
43-
44- addConstraint (new NotEqualConstraint (WA , NT ));
45- addConstraint (new NotEqualConstraint (WA , SA ));
46- addConstraint (new NotEqualConstraint (NT , SA ));
47- addConstraint (new NotEqualConstraint (NT , Q ));
48- addConstraint (new NotEqualConstraint (SA , Q ));
49- addConstraint (new NotEqualConstraint (SA , NSW ));
50- addConstraint (new NotEqualConstraint (SA , V ));
51- addConstraint (new NotEqualConstraint (Q , NSW ));
52- addConstraint (new NotEqualConstraint (NSW , V ));
53- }
1+ package aima .core .search .csp .examples ;
2+
3+ import aima .core .search .csp .CSP ;
4+ import aima .core .search .csp .Domain ;
5+ import aima .core .search .csp .Variable ;
6+
7+ /**
8+ * Artificial Intelligence A Modern Approach (3rd Ed.): Figure 6.1, Page 204.<br>
9+ * <br>
10+ * The principal states and territories of Australia. Coloring this map can be
11+ * viewed as a constraint satisfaction problem (CSP). The goal is to assign
12+ * colors to each region so that no neighboring regions have the same color.
13+ *
14+ * @author Ruediger Lunde
15+ * @author Mike Stampone
16+ */
17+ public class MapCSP extends CSP {
18+ public static final Variable NSW = new Variable ("NSW" );
19+ public static final Variable NT = new Variable ("NT" );
20+ public static final Variable Q = new Variable ("Q" );
21+ public static final Variable SA = new Variable ("SA" );
22+ public static final Variable T = new Variable ("T" );
23+ public static final Variable V = new Variable ("V" );
24+ public static final Variable WA = new Variable ("WA" );
25+ public static final String RED = "RED" ;
26+ public static final String GREEN = "GREEN" ;
27+ public static final String BLUE = "BLUE" ;
28+
29+ /**
30+ * Constructs a map CSP for the principal states and territories of
31+ * Australia, with the colors Red, Green, and Blue.
32+ */
33+ public MapCSP () {
34+ addVariable (NSW );
35+ addVariable (WA );
36+ addVariable (NT );
37+ addVariable (Q );
38+ addVariable (SA );
39+ addVariable (V );
40+ addVariable (T );
41+
42+ Domain colors = new Domain (new Object [] { RED , GREEN , BLUE });
43+
44+ for (Variable var : getVariables ())
45+ setDomain (var , colors );
46+
47+ addConstraint (new NotEqualConstraint (WA , NT ));
48+ addConstraint (new NotEqualConstraint (WA , SA ));
49+ addConstraint (new NotEqualConstraint (NT , SA ));
50+ addConstraint (new NotEqualConstraint (NT , Q ));
51+ addConstraint (new NotEqualConstraint (SA , Q ));
52+ addConstraint (new NotEqualConstraint (SA , NSW ));
53+ addConstraint (new NotEqualConstraint (SA , V ));
54+ addConstraint (new NotEqualConstraint (Q , NSW ));
55+ addConstraint (new NotEqualConstraint (NSW , V ));
56+ }
5457}
0 commit comments