getting right starter files

This commit is contained in:
Arjun Patel
2019-02-20 15:24:24 -08:00
parent 48d11417be
commit ade293719f
358 changed files with 8770 additions and 4878 deletions
@@ -0,0 +1,3 @@
# This is the solution file for test_cases/q4/0-eval-function-lose-states-1.test.
action: "Left"
generated: "lose1 lose2 root"
@@ -0,0 +1,30 @@
class: "GraphGameTreeTest"
alg: "ExpectimaxAgent"
depth: "2"
diagram: """
root
/ \
lose1 lose2
1 0
If your algorithm is returning a different
action, make sure you are calling the
evaluation function on losing states.
"""
num_agents: "2"
start_state: "root"
win_states: ""
lose_states: "lose1 lose2"
successors: """
root Left lose1
root Right lose2
"""
evaluation: """
lose1 1.0
lose2 0.0
"""
@@ -0,0 +1,3 @@
# This is the solution file for test_cases/q4/0-eval-function-lose-states-2.test.
action: "Right"
generated: "lose1 lose2 root"
@@ -0,0 +1,30 @@
class: "GraphGameTreeTest"
alg: "ExpectimaxAgent"
depth: "2"
diagram: """
root
/ \
lose1 lose2
0 1
If your algorithm is returning a different
action, make sure you are calling the
evaluation function on losing states.
"""
num_agents: "2"
start_state: "root"
win_states: ""
lose_states: "lose1 lose2"
successors: """
root Left lose1
root Right lose2
"""
evaluation: """
lose1 0.0
lose2 1.0
"""
@@ -0,0 +1,3 @@
# This is the solution file for test_cases/q4/0-eval-function-win-states-1.test.
action: "Left"
generated: "root win1 win2"
@@ -0,0 +1,30 @@
class: "GraphGameTreeTest"
alg: "ExpectimaxAgent"
depth: "2"
diagram: """
root
/ \
win1 win2
1 0
If your algorithm is returning a different
action, make sure you are calling the
evaluation function on winning states.
"""
num_agents: "2"
start_state: "root"
win_states: "win1 win2"
lose_states: ""
successors: """
root Left win1
root Right win2
"""
evaluation: """
win1 1.0
win2 0.0
"""
@@ -0,0 +1,3 @@
# This is the solution file for test_cases/q4/0-eval-function-win-states-2.test.
action: "Right"
generated: "root win1 win2"
@@ -0,0 +1,30 @@
class: "GraphGameTreeTest"
alg: "ExpectimaxAgent"
depth: "2"
diagram: """
root
/ \
win1 win2
0 1
If your algorithm is returning a different
action, make sure you are calling the
evaluation function on winning states.
"""
num_agents: "2"
start_state: "root"
win_states: "win1 win2"
lose_states: ""
successors: """
root Left win1
root Right win2
"""
evaluation: """
win1 0.0
win2 1.0
"""
+3
View File
@@ -0,0 +1,3 @@
# This is the solution file for test_cases/q4/0-expectimax1.test.
action: "Left"
generated: "A B C D E F G H I exp1 exp2 exp3 max"
+48
View File
@@ -0,0 +1,48 @@
class: "GraphGameTreeTest"
alg: "ExpectimaxAgent"
depth: "2"
# Tree adapted from lecture 6 slides
diagram: """
max
/-/ | \--\
/ | \
/ | \
exp1 exp2 exp3
/|\ /|\ /|\
/ | \ / | \ / | \
A B C D E F G H I
3 12 8 2 4 6 14 5 2
"""
num_agents: "2"
start_state: "max"
win_states: "A B C D E F G H I"
lose_states: ""
successors: """
max Left exp1
max Center exp2
max Right exp3
exp1 Left A
exp1 Center B
exp1 Right C
exp2 Left D
exp2 Center E
exp2 Right F
exp3 Left G
exp3 Center H
exp3 Right I
"""
evaluation: """
A 3.0
B 12.0
C 8.0
D 2.0
E 4.0
F 6.0
G 14.0
H 5.0
I 2.0
"""
+3
View File
@@ -0,0 +1,3 @@
# This is the solution file for test_cases/q4/1-expectimax2.test.
action: "Left"
generated: "A B C D E F G H I exp1 exp2 exp3 max"
+48
View File
@@ -0,0 +1,48 @@
class: "GraphGameTreeTest"
alg: "ExpectimaxAgent"
depth: "2"
# Tree from lecture 7 slides
diagram: """
max
/-/ | \--\
/ | \
/ | \
exp1 exp2 exp3
/|\ /|\ /|\
/ | \ / | \ / | \
A B C D E F G H I
3 12 9 2 4 6 15 6 0
"""
num_agents: "2"
start_state: "max"
win_states: "A B C D E F G H I"
lose_states: ""
successors: """
max Left exp1
max Center exp2
max Right exp3
exp1 Left A
exp1 Center B
exp1 Right C
exp2 Left D
exp2 Center E
exp2 Right F
exp3 Left G
exp3 Center H
exp3 Right I
"""
evaluation: """
A 3.0
B 12.0
C 9.0
D 2.0
E 4.0
F 6.0
G 15.0
H 6.0
I 0.0
"""
@@ -0,0 +1,3 @@
# This is the solution file for test_cases/q4/2-one-ghost-3level.test.
action: "Left"
generated: "a b1 b2 c1 c2 c3 c4 d1 d2 d3 d4 d5 d6 d7 d8"
+52
View File
@@ -0,0 +1,52 @@
class: "GraphGameTreeTest"
alg: "ExpectimaxAgent"
depth: "3"
diagram: """
/-----a------\
/ \
/ \
b1 b2
/ \ / \
c1 c2 c3 c4
/ \ / \ / \ / \
d1 d2 d3 d4 d5 d6 d7 d8
3 9 10 6 4 7 0 5
a - max
b - exp
c - max
"""
num_agents: "2"
start_state: "a"
win_states: "d1 d2 d3 d4 d5 d6 d7 d8"
lose_states: ""
successors: """
a Left b1
a Right b2
b1 Left c1
b1 Right c2
b2 Left c3
b2 Right c4
c1 Left d1
c1 Right d2
c2 Left d3
c2 Right d4
c3 Left d5
c3 Right d6
c4 Left d7
c4 Right d8
"""
evaluation: """
d1 3.0
d2 9.0
d3 10.0
d4 6.0
d5 4.0
d6 7.0
d7 0.0
d8 5.0
"""
@@ -0,0 +1,3 @@
# This is the solution file for test_cases/q4/3-one-ghost-4level.test.
action: "Right"
generated: "A B C D E F G H I J K L M N O P a b1 b2 c1 c2 c3 c4 d1 d2 d3 d4 d5 d6 d7 d8"
+79
View File
@@ -0,0 +1,79 @@
class: "GraphGameTreeTest"
alg: "ExpectimaxAgent"
depth: "4"
diagram: """
/-----a------\
/ \
/ \
b1 b2
/ \ / \
c1 c2 c3 c4
/ \ / \ / \ / \
d1 d2 d3 d4 d5 d6 d7 d8
/ \ / \ / \ / \ / \ / \ / \ / \
A B C D E F G H I J K L M N O P
3 13 5 9 10 11 6 8 1 0 4 7 12 15 2 14
a - max
b - exp
c - max
d - exp
"""
num_agents: "2"
start_state: "a"
win_states: "A B C D E F G H I J K L M N O P"
lose_states: ""
successors: """
a Left b1
a Right b2
b1 Left c1
b1 Right c2
b2 Left c3
b2 Right c4
c1 Left d1
c1 Right d2
c2 Left d3
c2 Right d4
c3 Left d5
c3 Right d6
c4 Left d7
c4 Right d8
d1 Left A
d1 Right B
d2 Left C
d2 Right D
d3 Left E
d3 Right F
d4 Left G
d4 Right H
d5 Left I
d5 Right J
d6 Left K
d6 Right L
d7 Left M
d7 Right N
d8 Left O
d8 Right P
"""
evaluation: """
A 3.0
B 13.0
C 5.0
D 9.0
E 10.0
F 11.0
G 6.0
H 8.0
I 1.0
J 0.0
K 4.0
L 7.0
M 12.0
N 15.0
O 2.0
P 14.0
"""
@@ -0,0 +1,3 @@
# This is the solution file for test_cases/q4/4-two-ghosts-3level.test.
action: "Left"
generated: "a b1 b2 c1 c2 c3 c4 d1 d2 d3 d4 d5 d6 d7 d8"
+52
View File
@@ -0,0 +1,52 @@
class: "GraphGameTreeTest"
alg: "ExpectimaxAgent"
depth: "3"
diagram: """
/-----a------\
/ \
/ \
b1 b2
/ \ / \
c1 c2 c3 c4
/ \ / \ / \ / \
d1 d2 d3 d4 d5 d6 d7 d8
3 9 10 6 4 7 0 5
a - max
b - exp
c - exp
"""
num_agents: "3"
start_state: "a"
win_states: "d1 d2 d3 d4 d5 d6 d7 d8"
lose_states: ""
successors: """
a Left b1
a Right b2
b1 Left c1
b1 Right c2
b2 Left c3
b2 Right c4
c1 Left d1
c1 Right d2
c2 Left d3
c2 Right d4
c3 Left d5
c3 Right d6
c4 Left d7
c4 Right d8
"""
evaluation: """
d1 3.0
d2 9.0
d3 10.0
d4 6.0
d5 4.0
d6 7.0
d7 0.0
d8 5.0
"""
@@ -0,0 +1,3 @@
# This is the solution file for test_cases/q4/5-two-ghosts-4level.test.
action: "Left"
generated: "A B C D E F G H I J K L M N O P a b1 b2 c1 c2 c3 c4 d1 d2 d3 d4 d5 d6 d7 d8"
+79
View File
@@ -0,0 +1,79 @@
class: "GraphGameTreeTest"
alg: "ExpectimaxAgent"
depth: "4"
diagram: """
/-----a------\
/ \
/ \
b1 b2
/ \ / \
c1 c2 c3 c4
/ \ / \ / \ / \
d1 d2 d3 d4 d5 d6 d7 d8
/ \ / \ / \ / \ / \ / \ / \ / \
A B C D E F G H I J K L M N O P
3 13 5 9 10 11 6 8 1 0 4 7 12 15 2 14
a - max
b - exp
c - exp
d - max
"""
num_agents: "3"
start_state: "a"
win_states: "A B C D E F G H I J K L M N O P"
lose_states: ""
successors: """
a Left b1
a Right b2
b1 Left c1
b1 Right c2
b2 Left c3
b2 Right c4
c1 Left d1
c1 Right d2
c2 Left d3
c2 Right d4
c3 Left d5
c3 Right d6
c4 Left d7
c4 Right d8
d1 Left A
d1 Right B
d2 Left C
d2 Right D
d3 Left E
d3 Right F
d4 Left G
d4 Right H
d5 Left I
d5 Right J
d6 Left K
d6 Right L
d7 Left M
d7 Right N
d8 Left O
d8 Right P
"""
evaluation: """
A 3.0
B 13.0
C 5.0
D 9.0
E 10.0
F 11.0
G 6.0
H 8.0
I 1.0
J 0.0
K 4.0
L 7.0
M 12.0
N 15.0
O 2.0
P 14.0
"""
@@ -0,0 +1,3 @@
# This is the solution file for test_cases/q4/6-1a-check-depth-one-ghost.test.
action: "Left"
generated: "a b1 b2 b3 c1 c2 c3"
@@ -0,0 +1,83 @@
class: "GraphGameTreeTest"
alg: "ExpectimaxAgent"
depth: "1"
diagram: """
a
/-/ | \--\
/ | \
0 b1 0 b2 b3 8
| | |
10 c1 0 c2 c3 8
| | |
0 d1 0 d2 d3 8
| | |
0 e1 10 e2 e3 8
| | |
0 f1 0 f2 f3 8
| | |
g1 g2 g3
0 0 8
a - max
b - min
c - max
d - min
e - max
f - min
At depth 1, the evaluation function is called at level c,
so Left should be returned. If your algorithm is returning a
different action, check how you implemented your depth.
"""
num_agents: "2"
start_state: "a"
win_states: "g1 g2 g3"
lose_states: ""
successors: """
a Left b1
a Center b2
a Right b3
b1 Center c1
b2 Center c2
b3 Center c3
c1 Center d1
c2 Center d2
c3 Center d3
d1 Center e1
d2 Center e2
d3 Center e3
e1 Center f1
e2 Center f2
e3 Center f3
f1 Center g1
f2 Center g2
f3 Center g3
"""
evaluation: """
b1 0.0
b2 0.0
b3 8.0
c1 10.0
c2 0.0
c3 8.0
d1 0.0
d2 0.0
d3 8.0
e1 0.0
e2 10.0
e3 8.0
f1 0.0
f2 0.0
f3 8.0
g1 0.0
g2 0.0
g3 8.0
"""
@@ -0,0 +1,3 @@
# This is the solution file for test_cases/q4/6-1b-check-depth-one-ghost.test.
action: "Center"
generated: "a b1 b2 b3 c1 c2 c3 d1 d2 d3 e1 e2 e3"
@@ -0,0 +1,83 @@
class: "GraphGameTreeTest"
alg: "ExpectimaxAgent"
depth: "2"
diagram: """
a
/-/ | \--\
/ | \
0 b1 0 b2 b3 8
| | |
10 c1 0 c2 c3 8
| | |
0 d1 0 d2 d3 8
| | |
0 e1 10 e2 e3 8
| | |
0 f1 0 f2 f3 8
| | |
g1 g2 g3
0 0 8
a - max
b - min
c - max
d - min
e - max
f - min
At depth 2, the evaluation function is called at level e,
so Center should be returned. If your algorithm is returning a
different action, check how you implemented your depth.
"""
num_agents: "2"
start_state: "a"
win_states: "g1 g2 g3"
lose_states: ""
successors: """
a Left b1
a Center b2
a Right b3
b1 Center c1
b2 Center c2
b3 Center c3
c1 Center d1
c2 Center d2
c3 Center d3
d1 Center e1
d2 Center e2
d3 Center e3
e1 Center f1
e2 Center f2
e3 Center f3
f1 Center g1
f2 Center g2
f3 Center g3
"""
evaluation: """
b1 0.0
b2 0.0
b3 8.0
c1 10.0
c2 0.0
c3 8.0
d1 0.0
d2 0.0
d3 8.0
e1 0.0
e2 10.0
e3 8.0
f1 0.0
f2 0.0
f3 8.0
g1 0.0
g2 0.0
g3 8.0
"""
@@ -0,0 +1,3 @@
# This is the solution file for test_cases/q4/6-1c-check-depth-one-ghost.test.
action: "Right"
generated: "a b1 b2 b3 c1 c2 c3 d1 d2 d3 e1 e2 e3 f1 f2 f3 g1 g2 g3"
@@ -0,0 +1,83 @@
class: "GraphGameTreeTest"
alg: "ExpectimaxAgent"
depth: "3"
diagram: """
a
/-/ | \--\
/ | \
0 b1 0 b2 b3 8
| | |
10 c1 0 c2 c3 8
| | |
0 d1 0 d2 d3 8
| | |
0 e1 10 e2 e3 8
| | |
0 f1 0 f2 f3 8
| | |
g1 g2 g3
0 0 8
a - max
b - min
c - max
d - min
e - max
f - min
At depth 3, the evaluation function is called at level g,
so Right should be returned. If your algorithm is returning a
different action, check how you implemented your depth.
"""
num_agents: "2"
start_state: "a"
win_states: "g1 g2 g3"
lose_states: ""
successors: """
a Left b1
a Center b2
a Right b3
b1 Center c1
b2 Center c2
b3 Center c3
c1 Center d1
c2 Center d2
c3 Center d3
d1 Center e1
d2 Center e2
d3 Center e3
e1 Center f1
e2 Center f2
e3 Center f3
f1 Center g1
f2 Center g2
f3 Center g3
"""
evaluation: """
b1 0.0
b2 0.0
b3 8.0
c1 10.0
c2 0.0
c3 8.0
d1 0.0
d2 0.0
d3 8.0
e1 0.0
e2 10.0
e3 8.0
f1 0.0
f2 0.0
f3 8.0
g1 0.0
g2 0.0
g3 8.0
"""
@@ -0,0 +1,3 @@
# This is the solution file for test_cases/q4/6-2a-check-depth-two-ghosts.test.
action: "Left"
generated: "a b1 b2 b3 c1 c2 c3 d1 d2 d3"
@@ -0,0 +1,110 @@
class: "GraphGameTreeTest"
alg: "ExpectimaxAgent"
depth: "1"
diagram: """
a
/-/ | \--\
/ | \
0 b1 0 b2 b3 8
| | |
0 c1 0 c2 c3 8
| | |
10 d1 0 d2 d3 8
| | |
0 e1 0 e2 e3 8
| | |
0 f1 0 f2 f3 8
| | |
0 g1 10 g2 g3 8
| | |
0 h1 0 h2 h3 8
| | |
0 i1 0 i2 i3 8
| | |
j1 j2 j3
0 0 8
a - max
b - min
c - min
d - max
e - min
f - min
g - max
h - min
i - min
At depth 1, the evaluation function is called at level d,
so Left should be returned. If your algorithm is returning a
different action, check how you implemented your depth.
"""
num_agents: "3"
start_state: "a"
win_states: "j1 j2 j3"
lose_states: ""
successors: """
a Left b1
a Center b2
a Right b3
b1 Center c1
b2 Center c2
b3 Center c3
c1 Center d1
c2 Center d2
c3 Center d3
d1 Center e1
d2 Center e2
d3 Center e3
e1 Center f1
e2 Center f2
e3 Center f3
f1 Center g1
f2 Center g2
f3 Center g3
g1 Center h1
g2 Center h2
g3 Center h3
h1 Center i1
h2 Center i2
h3 Center i3
i1 Center j1
i2 Center j2
i3 Center j3
"""
evaluation: """
b1 0.0
b2 0.0
b3 8.0
c1 0.0
c2 0.0
c3 8.0
d1 10.0
d2 0.0
d3 8.0
e1 0.0
e2 0.0
e3 8.0
f1 0.0
f2 0.0
f3 8.0
g1 0.0
g2 10.0
g3 8.0
h1 0.0
h2 0.0
h3 8.0
i1 0.0
i2 0.0
i3 8.0
j1 0.0
j2 0.0
j3 8.0
"""
@@ -0,0 +1,3 @@
# This is the solution file for test_cases/q4/6-2b-check-depth-two-ghosts.test.
action: "Center"
generated: "a b1 b2 b3 c1 c2 c3 d1 d2 d3 e1 e2 e3 f1 f2 f3 g1 g2 g3"
@@ -0,0 +1,110 @@
class: "GraphGameTreeTest"
alg: "ExpectimaxAgent"
depth: "2"
diagram: """
a
/-/ | \--\
/ | \
0 b1 0 b2 b3 8
| | |
0 c1 0 c2 c3 8
| | |
10 d1 0 d2 d3 8
| | |
0 e1 0 e2 e3 8
| | |
0 f1 0 f2 f3 8
| | |
0 g1 10 g2 g3 8
| | |
0 h1 0 h2 h3 8
| | |
0 i1 0 i2 i3 8
| | |
j1 j2 j3
0 0 8
a - max
b - min
c - min
d - max
e - min
f - min
g - max
h - min
i - min
At depth 2, the evaluation function is called at level g,
so Center should be returned. If your algorithm is returning
a different action, check how you implemented your depth.
"""
num_agents: "3"
start_state: "a"
win_states: "j1 j2 j3"
lose_states: ""
successors: """
a Left b1
a Center b2
a Right b3
b1 Center c1
b2 Center c2
b3 Center c3
c1 Center d1
c2 Center d2
c3 Center d3
d1 Center e1
d2 Center e2
d3 Center e3
e1 Center f1
e2 Center f2
e3 Center f3
f1 Center g1
f2 Center g2
f3 Center g3
g1 Center h1
g2 Center h2
g3 Center h3
h1 Center i1
h2 Center i2
h3 Center i3
i1 Center j1
i2 Center j2
i3 Center j3
"""
evaluation: """
b1 0.0
b2 0.0
b3 8.0
c1 0.0
c2 0.0
c3 8.0
d1 10.0
d2 0.0
d3 8.0
e1 0.0
e2 0.0
e3 8.0
f1 0.0
f2 0.0
f3 8.0
g1 0.0
g2 10.0
g3 8.0
h1 0.0
h2 0.0
h3 8.0
i1 0.0
i2 0.0
i3 8.0
j1 0.0
j2 0.0
j3 8.0
"""
@@ -0,0 +1,3 @@
# This is the solution file for test_cases/q4/6-2c-check-depth-two-ghosts.test.
action: "Right"
generated: "a b1 b2 b3 c1 c2 c3 d1 d2 d3 e1 e2 e3 f1 f2 f3 g1 g2 g3 h1 h2 h3 i1 i2 i3 j1 j2 j3"
@@ -0,0 +1,110 @@
class: "GraphGameTreeTest"
alg: "ExpectimaxAgent"
depth: "3"
diagram: """
a
/-/ | \--\
/ | \
0 b1 0 b2 b3 8
| | |
0 c1 0 c2 c3 8
| | |
10 d1 0 d2 d3 8
| | |
0 e1 0 e2 e3 8
| | |
0 f1 0 f2 f3 8
| | |
0 g1 10 g2 g3 8
| | |
0 h1 0 h2 h3 8
| | |
0 i1 0 i2 i3 8
| | |
j1 j2 j3
0 0 8
a - max
b - min
c - min
d - max
e - min
f - min
g - max
h - min
i - min
At depth 3, the evaluation function is called at level j,
so Right should be returned. If your algorithm is returning
a different action, check how you implemented your depth.
"""
num_agents: "3"
start_state: "a"
win_states: "j1 j2 j3"
lose_states: ""
successors: """
a Left b1
a Center b2
a Right b3
b1 Center c1
b2 Center c2
b3 Center c3
c1 Center d1
c2 Center d2
c3 Center d3
d1 Center e1
d2 Center e2
d3 Center e3
e1 Center f1
e2 Center f2
e3 Center f3
f1 Center g1
f2 Center g2
f3 Center g3
g1 Center h1
g2 Center h2
g3 Center h3
h1 Center i1
h2 Center i2
h3 Center i3
i1 Center j1
i2 Center j2
i3 Center j3
"""
evaluation: """
b1 0.0
b2 0.0
b3 8.0
c1 0.0
c2 0.0
c3 8.0
d1 10.0
d2 0.0
d3 8.0
e1 0.0
e2 0.0
e3 8.0
f1 0.0
f2 0.0
f3 8.0
g1 0.0
g2 10.0
g3 8.0
h1 0.0
h2 0.0
h3 8.0
i1 0.0
i2 0.0
i3 8.0
j1 0.0
j2 0.0
j3 8.0
"""
+444
View File
@@ -0,0 +1,444 @@
optimalActions: """
[[["West", "East"], 59], [["West", "East"], 35]]
[[["West"], 190], [["West"], 127]]
[[["West"], 190], [["West"], 135]]
[[["West", "North"], 120], [["West", "North"], 82]]
[[["West"], 77], [["West"], 57]]
[[["West", "North"], 143], [["West", "North"], 97]]
[[["West"], 155], [["West"], 110]]
[[["West"], 40], [["West"], 27]]
[[["North"], 64], [["North"], 43]]
[[["North"], 85], [["North"], 57]]
[[["North"], 106], [["North"], 71]]
[[["North"], 97], [["North"], 65]]
[[["East"], 154], [["East"], 103]]
[[["Stop"], 130], [["West"], 85]]
[[["West"], 30], [["West"], 17]]
[[["South"], 15], [["South"], 9]]
[[["South"], 15], [["South"], 9]]
[[["South"], 15], [["South"], 9]]
[[["South"], 15], [["South"], 9]]
[[["East"], 15], [["East"], 9]]
[[["East"], 15], [["East"], 9]]
[[["East"], 18], [["East"], 12]]
[[["North"], 29], [["North"], 18]]
[[["North"], 50], [["North"], 31]]
[[["West"], 55], [["West"], 36]]
[[["East"], 29], [["East"], 16]]
[[["North"], 89], [["North"], 61]]
[[["East", "North"], 161], [["East", "North"], 121]]
[[["East", "North"], 221], [["East", "North"], 166]]
[[["North", "South"], 105], [["North", "South"], 77]]
[[["West"], 69], [["West"], 51]]
[[["West"], 94], [["West"], 69]]
[[["West", "Stop"], 57], [["West"], 42]]
[[["West", "Stop", "East"], 69], [["West", "East"], 49]]
[[["West", "Stop", "East"], 61], [["West", "East"], 41]]
[[["Stop", "East", "South"], 55], [["East", "South"], 37]]
[[["Stop", "East", "South"], 28], [["East", "South"], 19]]
[[["Stop", "East", "South"], 34], [["East", "South"], 23]]
[[["Stop", "East", "South"], 55], [["East", "South"], 37]]
[[["Stop", "East", "South"], 55], [["East", "South"], 37]]
[[["Stop", "East", "South"], 61], [["East", "South"], 41]]
[[["Stop", "East", "South"], 85], [["East", "South"], 57]]
[[["Stop", "East", "South"], 64], [["East", "South"], 43]]
[[["Stop", "East", "South"], 61], [["East", "South"], 41]]
[[["Stop", "East", "South"], 61], [["East", "South"], 41]]
[[["Stop", "East", "South"], 85], [["East", "South"], 57]]
[[["Stop", "East", "South"], 102], [["East", "South"], 67]]
[[["Stop", "South"], 23], [["South"], 13]]
[[["South"], 15], [["South"], 9]]
[[["South"], 15], [["South"], 9]]
[[["South"], 15], [["South"], 9]]
[[["South"], 15], [["South"], 9]]
[[["East"], 15], [["East"], 9]]
[[["East"], 15], [["East"], 9]]
[[["East"], 18], [["East"], 12]]
[[["East", "North"], 29], [["East", "North"], 18]]
[[["East"], 38], [["East"], 22]]
[[["North"], 29], [["North"], 18]]
[[["North"], 38], [["North"], 22]]
[[["East"], 33], [["East"], 22]]
[[["East"], 37], [["East"], 18]]
[[["East"], 18], [["East"], 12]]
[[["East"], 37], [["East"], 26]]
[[["East"], 69], [["East"], 41]]
[[["East"], 56], [["East"], 26]]
[[["East"], 44], [["East"], 29]]
[[["North", "South"], 83], [["North", "South"], 52]]
[[["East", "North"], 121], [["East", "North"], 74]]
[[["East", "North"], 97], [["East", "North"], 73]]
[[["North", "South"], 173], [["North", "South"], 130]]
[[["West", "East"], 90], [["West", "East"], 66]]
[[["West", "Stop", "East"], 161], [["West", "East"], 118]]
[[["Stop", "East", "South"], 58], [["East", "South"], 43]]
[[["Stop", "East"], 120], [["East"], 85]]
[[["East"], 78], [["East"], 45]]
[[["West"], 77], [["West"], 42]]
[[["South"], 83], [["South"], 48]]
[[["South"], 49], [["South"], 37]]
[[["South"], 185], [["South"], 104]]
[[["South"], 68], [["South"], 41]]
[[["West"], 30], [["West"], 18]]
[[["West"], 56], [["West"], 29]]
[[["West"], 14], [["West"], 10]]
[[["West"], 20], [["West"], 14]]
[[["West"], 13], [["West"], 9]]
[[["West"], 13], [["West"], 9]]
[[["West"], 16], [["West"], 12]]
[[["West", "North"], 30], [["West", "North"], 20]]
[[["West"], 38], [["West"], 23]]
[[["West", "Stop", "East", "North"], 70], [["West", "East", "North"], 46]]
[[["West", "Stop", "East"], 128], [["West", "East"], 89]]
[[["West", "Stop", "East"], 31], [["West", "East"], 20]]
[[["Stop", "East", "North"], 69], [["East", "North"], 45]]
[[["Stop", "North"], 58], [["North"], 31]]
[[["North"], 34], [["North"], 19]]
[[["North"], 30], [["North"], 17]]
[[["North"], 19], [["North"], 11]]
[[["North"], 34], [["North"], 19]]
[[["East"], 30], [["East"], 17]]
[[["East"], 19], [["East"], 11]]
[[["East"], 44], [["East"], 29]]
[[["East", "South"], 87], [["East", "South"], 60]]
[[["East", "South"], 108], [["East", "South"], 62]]
[[["South"], 120], [["South"], 61]]
[[["North", "South"], 209], [["North", "South"], 132]]
[[["West"], 108], [["West"], 60]]
[[["West", "Stop", "East", "South"], 83], [["West", "East", "South"], 61]]
[[["West", "Stop", "East", "South"], 90], [["West", "East", "South"], 66]]
[[["West", "Stop", "East"], 134], [["West", "East"], 95]]
[[["West", "Stop", "East"], 82], [["West", "East"], 55]]
[[["Stop", "East", "South"], 142], [["East", "South"], 95]]
[[["Stop", "East", "South"], 98], [["East", "South"], 65]]
[[["Stop", "East", "South"], 128], [["East", "South"], 86]]
[[["Stop", "East", "South"], 82], [["East", "South"], 55]]
[[["Stop", "East", "South"], 85], [["East", "South"], 57]]
[[["Stop", "East", "South"], 190], [["East", "South"], 127]]
[[["Stop", "East", "South"], 158], [["East", "South"], 103]]
[[["Stop", "South"], 50], [["South"], 27]]
[[["South"], 30], [["South"], 17]]
[[["South"], 15], [["South"], 9]]
[[["South"], 15], [["South"], 9]]
[[["South"], 15], [["South"], 9]]
[[["East"], 15], [["East"], 9]]
[[["East"], 15], [["East"], 9]]
[[["East"], 18], [["East"], 12]]
[[["East", "North"], 29], [["East", "North"], 18]]
[[["East"], 37], [["East"], 22]]
[[["East", "North"], 41], [["East", "North"], 24]]
[[["East"], 59], [["East"], 29]]
[[["East"], 19], [["East"], 11]]
[[["East"], 26], [["East"], 15]]
[[["East"], 15], [["East"], 9]]
[[["East"], 15], [["East"], 9]]
[[["East"], 18], [["East"], 12]]
[[["East"], 29], [["East"], 18]]
[[["East"], 37], [["East"], 22]]
[[["East", "North"], 41], [["East", "North"], 24]]
[[["East"], 59], [["East"], 29]]
[[["East"], 19], [["East"], 11]]
[[["North"], 26], [["North"], 15]]
[[["North"], 19], [["North"], 11]]
[[["North"], 30], [["North"], 17]]
[[["North"], 34], [["North"], 19]]
[[["West"], 34], [["West"], 19]]
[[["West"], 25], [["West"], 13]]
[[["West", "Stop", "East"], 7], [["West", "East"], 3]]
"""
altDepthActions: """
[["West", "East"], ["West", "East"], ["West", "East"], ["West", "East"]]
[["West"], ["West"], ["West"], ["West"]]
[["West"], ["West"], ["West"], ["West"]]
[["West", "North"], ["West", "North"], ["West", "North"], ["West", "North"]]
[["West"], ["West"], ["West"], ["West"]]
[["West", "North"], ["West", "North"], ["West", "North"], ["West", "North"]]
[["West"], ["West"], ["West"], ["West"]]
[["West"], ["West"], ["West"], ["West"]]
[["North"], ["North"], ["North"], ["North"]]
[["North"], ["North"], ["North"], ["North"]]
[["North"], ["North"], ["North"], ["North"]]
[["North"], ["North"], ["North"], ["North"]]
[["East"], ["East"], ["East"], ["East"]]
[["West", "Stop"], ["West"], ["Stop"], ["West"]]
[["West"], ["West"], ["West"], ["West"]]
[["South"], ["South"], ["South"], ["South"]]
[["South"], ["South"], ["South"], ["South"]]
[["South"], ["South"], ["South"], ["South"]]
[["South"], ["South"], ["South"], ["South"]]
[["East"], ["East"], ["East"], ["East"]]
[["East"], ["East"], ["East"], ["East"]]
[["East"], ["East"], ["East"], ["East"]]
[["North"], ["North"], ["North"], ["North"]]
[["North"], ["North"], ["North"], ["North"]]
[["North"], ["North"], ["West"], ["West"]]
[["East"], ["East"], ["East"], ["East"]]
[["North"], ["North"], ["North"], ["North"]]
[["East", "North"], ["East", "North"], ["East", "North"], ["East", "North"]]
[["East", "North"], ["East", "North"], ["East"], ["East"]]
[["North", "South"], ["North", "South"], ["North"], ["North"]]
[["West"], ["West"], ["West"], ["West"]]
[["West"], ["West"], ["West", "Stop"], ["West"]]
[["West"], ["West"], ["West", "Stop", "East", "South"], ["West", "East", "South"]]
[["West", "Stop", "East"], ["West", "East"], ["West", "Stop", "East"], ["West", "East"]]
[["West", "Stop", "East"], ["West", "East"], ["West", "Stop", "East"], ["West", "East"]]
[["Stop", "East", "South"], ["East", "South"], ["Stop", "East", "South"], ["East", "South"]]
[["Stop", "East", "South"], ["East", "South"], ["Stop", "East", "South"], ["East", "South"]]
[["Stop", "East", "South"], ["East", "South"], ["Stop", "East", "South"], ["East", "South"]]
[["Stop", "East", "South"], ["East", "South"], ["Stop", "East", "South"], ["East", "South"]]
[["Stop", "East", "South"], ["East", "South"], ["Stop", "East", "South"], ["East", "South"]]
[["Stop", "East", "South"], ["East", "South"], ["Stop", "East", "South"], ["East", "South"]]
[["Stop", "East", "South"], ["East", "South"], ["Stop", "East", "South"], ["East", "South"]]
[["Stop", "East", "South"], ["East", "South"], ["Stop", "East", "South"], ["East", "South"]]
[["Stop", "East", "South"], ["East", "South"], ["Stop", "East", "South"], ["East", "South"]]
[["Stop", "East", "South"], ["East", "South"], ["Stop", "East", "South"], ["East", "South"]]
[["Stop", "East", "South"], ["East", "South"], ["Stop", "East", "South"], ["East", "South"]]
[["Stop", "East", "South"], ["East", "South"], ["Stop", "East", "South"], ["East", "South"]]
[["Stop", "South"], ["South"], ["Stop", "South"], ["South"]]
[["South"], ["South"], ["South"], ["South"]]
[["South"], ["South"], ["South"], ["South"]]
[["South"], ["South"], ["South"], ["South"]]
[["South"], ["South"], ["South"], ["South"]]
[["East"], ["East"], ["East"], ["East"]]
[["East"], ["East"], ["East"], ["East"]]
[["East"], ["East"], ["East"], ["East"]]
[["East", "North"], ["East", "North"], ["East"], ["East"]]
[["East"], ["East"], ["East"], ["East"]]
[["North"], ["North"], ["North"], ["North"]]
[["North"], ["North"], ["North"], ["North"]]
[["East"], ["East"], ["East"], ["East"]]
[["East"], ["East"], ["East"], ["East"]]
[["East"], ["East"], ["East"], ["East"]]
[["East"], ["East"], ["East"], ["East"]]
[["East"], ["East"], ["East"], ["East"]]
[["East"], ["East"], ["East"], ["East"]]
[["East"], ["East"], ["East"], ["East"]]
[["North", "South"], ["North", "South"], ["South"], ["South"]]
[["East", "North"], ["East", "North"], ["East", "North"], ["East", "North"]]
[["East", "North"], ["East", "North"], ["East", "North"], ["East", "North"]]
[["North", "South"], ["North", "South"], ["North"], ["North"]]
[["West", "East"], ["West", "East"], ["East"], ["East"]]
[["West"], ["West"], ["East"], ["East"]]
[["Stop", "East", "South"], ["East", "South"], ["East"], ["East"]]
[["Stop", "East"], ["East"], ["East"], ["East"]]
[["East"], ["East"], ["East"], ["East"]]
[["West"], ["West"], ["West"], ["West"]]
[["South"], ["South"], ["South"], ["South"]]
[["South"], ["South"], ["South"], ["South"]]
[["South"], ["South"], ["South"], ["South"]]
[["South"], ["South"], ["South"], ["South"]]
[["West", "East"], ["West", "East"], ["West"], ["West"]]
[["West"], ["West"], ["West"], ["West"]]
[["West"], ["West"], ["West"], ["West"]]
[["West"], ["West"], ["West"], ["West"]]
[["West"], ["West"], ["West"], ["West"]]
[["West"], ["West"], ["West"], ["West"]]
[["West"], ["West"], ["West"], ["West"]]
[["West", "North"], ["West", "North"], ["West", "North"], ["West", "North"]]
[["West"], ["West"], ["West"], ["West"]]
[["West", "Stop", "East", "North"], ["West", "East", "North"], ["West", "Stop", "East", "North"], ["West", "East", "North"]]
[["West", "Stop", "East"], ["West", "East"], ["West", "Stop", "East"], ["West", "East"]]
[["West", "Stop", "East"], ["West", "East"], ["West", "Stop", "East"], ["West", "East"]]
[["Stop", "East", "North"], ["East", "North"], ["Stop", "East", "North"], ["East", "North"]]
[["Stop", "North"], ["North"], ["Stop", "North"], ["North"]]
[["North"], ["North"], ["North"], ["North"]]
[["North"], ["North"], ["North"], ["North"]]
[["North"], ["North"], ["North"], ["North"]]
[["North"], ["North"], ["North"], ["North"]]
[["East"], ["East"], ["East"], ["East"]]
[["East"], ["East"], ["East"], ["East"]]
[["East"], ["East"], ["East"], ["East"]]
[["East", "South"], ["East", "South"], ["East", "South"], ["East", "South"]]
[["East", "South"], ["East", "South"], ["East", "South"], ["East", "South"]]
[["South"], ["South"], ["South"], ["South"]]
[["North", "South"], ["North", "South"], ["North", "South"], ["North", "South"]]
[["West"], ["West"], ["West"], ["West"]]
[["West", "Stop", "East", "South"], ["West", "East", "South"], ["West", "Stop", "East", "South"], ["West", "East", "South"]]
[["West", "Stop", "East", "South"], ["West", "East", "South"], ["West", "Stop", "East", "South"], ["West", "East", "South"]]
[["West", "Stop", "East"], ["West", "East"], ["West", "Stop", "East"], ["West", "East"]]
[["West", "Stop", "East"], ["West", "East"], ["West", "Stop", "East"], ["West", "East"]]
[["Stop", "East", "South"], ["East", "South"], ["Stop", "East", "South"], ["East", "South"]]
[["Stop", "East", "South"], ["East", "South"], ["Stop", "East", "South"], ["East", "South"]]
[["Stop", "East", "South"], ["East", "South"], ["Stop", "East", "South"], ["East", "South"]]
[["Stop", "East", "South"], ["East", "South"], ["Stop", "East", "South"], ["East", "South"]]
[["Stop", "East", "South"], ["East", "South"], ["Stop", "East", "South"], ["East", "South"]]
[["Stop", "East", "South"], ["East", "South"], ["Stop", "East", "South"], ["East", "South"]]
[["Stop", "East", "South"], ["East", "South"], ["Stop", "East", "South"], ["East", "South"]]
[["Stop", "South"], ["South"], ["Stop", "South"], ["South"]]
[["South"], ["South"], ["South"], ["South"]]
[["South"], ["South"], ["South"], ["South"]]
[["South"], ["South"], ["South"], ["South"]]
[["South"], ["South"], ["South"], ["South"]]
[["East"], ["East"], ["East"], ["East"]]
[["East"], ["East"], ["East"], ["East"]]
[["East"], ["East"], ["East"], ["East"]]
[["East", "North"], ["East", "North"], ["East", "North"], ["East", "North"]]
[["East"], ["East"], ["East"], ["East"]]
[["East", "North"], ["East", "North"], ["East", "North"], ["East", "North"]]
[["East"], ["East"], ["East"], ["East"]]
[["East"], ["East"], ["East"], ["East"]]
[["East"], ["East"], ["East"], ["East"]]
[["East"], ["East"], ["East"], ["East"]]
[["East"], ["East"], ["East"], ["East"]]
[["East"], ["East"], ["East"], ["East"]]
[["East"], ["East"], ["East"], ["East"]]
[["East"], ["East"], ["East"], ["East"]]
[["East", "North"], ["East", "North"], ["East"], ["East"]]
[["East"], ["East"], ["East"], ["East"]]
[["East"], ["East"], ["East"], ["East"]]
[["North"], ["North"], ["North"], ["North"]]
[["North"], ["North"], ["North"], ["North"]]
[["North"], ["North"], ["North"], ["North"]]
[["North"], ["North"], ["North"], ["North"]]
[["West"], ["West"], ["West"], ["West"]]
[["West"], ["West"], ["West"], ["West"]]
[["West", "Stop", "East"], ["West", "East"], ["West", "Stop", "East"], ["West", "East"]]
"""
partialPlyBugActions: """
[["West", "East"], ["West", "East"]]
[["West"], ["West"]]
[["West"], ["West"]]
[["West", "North"], ["West", "North"]]
[["West"], ["West"]]
[["West", "North"], ["West", "North"]]
[["West"], ["West"]]
[["West"], ["West"]]
[["North"], ["North"]]
[["North"], ["North"]]
[["North"], ["North"]]
[["North"], ["North"]]
[["East"], ["East"]]
[["Stop"], ["West"]]
[["West"], ["West"]]
[["South"], ["South"]]
[["South"], ["South"]]
[["South"], ["South"]]
[["South"], ["South"]]
[["East"], ["East"]]
[["East"], ["East"]]
[["East"], ["East"]]
[["North"], ["North"]]
[["North"], ["North"]]
[["West"], ["West"]]
[["East"], ["East"]]
[["North"], ["North"]]
[["East", "North"], ["East", "North"]]
[["East", "North"], ["East", "North"]]
[["North", "South"], ["North", "South"]]
[["West"], ["West"]]
[["West"], ["West"]]
[["West", "Stop"], ["West"]]
[["West", "Stop", "East"], ["West", "East"]]
[["West", "Stop", "East"], ["West", "East"]]
[["Stop", "East", "South"], ["East", "South"]]
[["Stop", "East", "South"], ["East", "South"]]
[["Stop", "East", "South"], ["East", "South"]]
[["Stop", "East", "South"], ["East", "South"]]
[["Stop", "East", "South"], ["East", "South"]]
[["Stop", "East", "South"], ["East", "South"]]
[["Stop", "East", "South"], ["East", "South"]]
[["Stop", "East", "South"], ["East", "South"]]
[["Stop", "East", "South"], ["East", "South"]]
[["Stop", "East", "South"], ["East", "South"]]
[["Stop", "East", "South"], ["East", "South"]]
[["Stop", "East", "South"], ["East", "South"]]
[["Stop", "South"], ["South"]]
[["South"], ["South"]]
[["South"], ["South"]]
[["South"], ["South"]]
[["South"], ["South"]]
[["East"], ["East"]]
[["East"], ["East"]]
[["East"], ["East"]]
[["East", "North"], ["East", "North"]]
[["East"], ["East"]]
[["North"], ["North"]]
[["North"], ["North"]]
[["East"], ["East"]]
[["East"], ["East"]]
[["East"], ["East"]]
[["East"], ["East"]]
[["East"], ["East"]]
[["East"], ["East"]]
[["East"], ["East"]]
[["North", "South"], ["North", "South"]]
[["East", "North"], ["East", "North"]]
[["East", "North"], ["East", "North"]]
[["North", "South"], ["North", "South"]]
[["West", "East"], ["West", "East"]]
[["West", "Stop", "East"], ["West", "East"]]
[["Stop", "East", "South"], ["East", "South"]]
[["Stop", "East"], ["East"]]
[["East"], ["East"]]
[["West"], ["West"]]
[["South"], ["South"]]
[["South"], ["South"]]
[["South"], ["South"]]
[["South"], ["South"]]
[["West"], ["West"]]
[["West"], ["West"]]
[["West"], ["West"]]
[["West"], ["West"]]
[["West"], ["West"]]
[["West"], ["West"]]
[["West"], ["West"]]
[["West", "North"], ["West", "North"]]
[["West"], ["West"]]
[["West", "Stop", "East", "North"], ["West", "East", "North"]]
[["West", "Stop", "East"], ["West", "East"]]
[["West", "Stop", "East"], ["West", "East"]]
[["Stop", "East", "North"], ["East", "North"]]
[["Stop", "North"], ["North"]]
[["North"], ["North"]]
[["North"], ["North"]]
[["North"], ["North"]]
[["North"], ["North"]]
[["East"], ["East"]]
[["East"], ["East"]]
[["East"], ["East"]]
[["East", "South"], ["East", "South"]]
[["East", "South"], ["East", "South"]]
[["South"], ["South"]]
[["North", "South"], ["North", "South"]]
[["West"], ["West"]]
[["West", "Stop", "East", "South"], ["West", "East", "South"]]
[["West", "Stop", "East", "South"], ["West", "East", "South"]]
[["West", "Stop", "East"], ["West", "East"]]
[["West", "Stop", "East"], ["West", "East"]]
[["Stop", "East", "South"], ["East", "South"]]
[["Stop", "East", "South"], ["East", "South"]]
[["Stop", "East", "South"], ["East", "South"]]
[["Stop", "East", "South"], ["East", "South"]]
[["Stop", "East", "South"], ["East", "South"]]
[["Stop", "East", "South"], ["East", "South"]]
[["Stop", "East", "South"], ["East", "South"]]
[["Stop", "South"], ["South"]]
[["South"], ["South"]]
[["South"], ["South"]]
[["South"], ["South"]]
[["South"], ["South"]]
[["East"], ["East"]]
[["East"], ["East"]]
[["East"], ["East"]]
[["East", "North"], ["East", "North"]]
[["East"], ["East"]]
[["East", "North"], ["East", "North"]]
[["East"], ["East"]]
[["East"], ["East"]]
[["East"], ["East"]]
[["East"], ["East"]]
[["East"], ["East"]]
[["East"], ["East"]]
[["East"], ["East"]]
[["East"], ["East"]]
[["East", "North"], ["East", "North"]]
[["East"], ["East"]]
[["East"], ["East"]]
[["North"], ["North"]]
[["North"], ["North"]]
[["North"], ["North"]]
[["North"], ["North"]]
[["West"], ["West"]]
[["West"], ["West"]]
[["West", "Stop", "East"], ["West", "East"]]
"""
+19
View File
@@ -0,0 +1,19 @@
class: "PacmanGameTreeTest"
alg: "ExpectimaxAgent"
seed: "0"
depth: "2"
max_points: "4"
# The following specifies the layout to be used
layoutName: "smallClassic"
layout: """
%%%%%%%%%%%%%%%%%%%%
%......%G G%......%
%.%%...%% %%...%%.%
%.%o.%........%.o%.%
%.%%.%.%%%%%%.%.%%.%
%........P.........%
%%%%%%%%%%%%%%%%%%%%
"""
+1 -1
View File
@@ -1,2 +1,2 @@
max_points: "5"
class: "PassAllTestsQuestion"
max_points: "3"
-7
View File
@@ -1,7 +0,0 @@
# This is the solution file for test_cases/q4/astar_0.test.
# This solution is designed to support both right-to-left
# and left-to-right implementations.
solution: "Right Down Down"
expanded_states: "A B D C G"
rev_solution: "Right Down Down"
rev_expanded_states: "A B D C G"
-39
View File
@@ -1,39 +0,0 @@
class: "GraphSearchTest"
algorithm: "aStarSearch"
diagram: """
C
^
| 2
2 V 4
*A <----> B -----> [H]
|
1.5 V 2.5
G <----- D -----> E
|
2 |
V
[F]
A is the start state, F and H is the goal. Arrows mark possible state
transitions. The number next to the arrow is the cost of that transition.
"""
# The following section specifies the search problem and the solution.
# The graph is specified by first the set of start states, followed by
# the set of goal states, and lastly by the state transitions which are
# of the form:
# <start state> <actions> <end state> <cost>
graph: """
start_state: A
goal_states: H F
A Right B 2.0
B Right H 4.0
B Down D 1.0
B Up C 2.0
B Left A 2.0
C Down B 2.0
D Right E 2.5
D Down F 2.0
D Left G 1.5
"""
@@ -1,7 +0,0 @@
# This is the solution file for test_cases/q4/astar_1_graph_heuristic.test.
# This solution is designed to support both right-to-left
# and left-to-right implementations.
solution: "0 0 2"
expanded_states: "S A D C"
rev_solution: "0 0 2"
rev_expanded_states: "S A D C"
@@ -1,54 +0,0 @@
class: "GraphSearchTest"
algorithm: "aStarSearch"
diagram: """
2 3 2
S --- A --- C ---> G
| \ / ^
3 | \ 5 / 1 /
| \ / /
B --- D -------/
4 5
S is the start state, G is the goal. Arrows mark possible state
transitions. The number next to the arrow is the cost of that transition.
The heuristic value of each state is:
S 6.0
A 2.5
B 5.25
C 1.125
D 1.0625
G 0
"""
# The following section specifies the search problem and the solution.
# The graph is specified by first the set of start states, followed by
# the set of goal states, and lastly by the state transitions which are
# of the form:
# <start state> <actions> <end state> <cost>
graph: """
start_state: S
goal_states: G
S 0 A 2.0
S 1 B 3.0
S 2 D 5.0
A 0 C 3.0
A 1 S 2.0
B 0 D 4.0
B 1 S 3.0
C 0 A 3.0
C 1 D 1.0
C 2 G 2.0
D 0 B 4.0
D 1 C 1.0
D 2 G 5.0
D 3 S 5.0
"""
heuristic: """
S 6.0
A 2.5
B 5.25
C 1.125
D 1.0625
G 0
"""
-22
View File
@@ -1,22 +0,0 @@
# This is the solution file for test_cases/q4/astar_2_manhattan.test.
# This solution is designed to support both right-to-left
# and left-to-right implementations.
# Number of nodes expanded must be with a factor of 1.1 of the numbers below.
solution: """
West West West West West West West West West South South East East
South South South West West West North West West West West South South
South East East East East East East East South South South South South
South South West West West West West West West West West West West
West West West West West West South West West West West West West West
West West
"""
expanded_nodes: "221"
rev_solution: """
West West West West West West West West West South South East East
South South South West West West North West West West West South South
South East East East East East East East South South South South South
South South West West West West West West West West West West West
West West West West West West South West West West West West West West
West West
"""
rev_expanded_nodes: "221"
-27
View File
@@ -1,27 +0,0 @@
class: "PacmanSearchTest"
algorithm: "aStarSearch"
# The following specifies the layout to be used
layoutName: "mediumMaze"
layout: """
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% P%
% %%%%%%%%%%%%%%%%%%%%%%% %%%%%%%% %
% %% % % %%%%%%% %% %
% %% % % % % %%%% %%%%%%%%% %% %%%%%
% %% % % % % %% %% %
% %% % % % % % %%%% %%% %%%%%% %
% % % % % % %% %%%%%%%% %
% %% % % %%%%%%%% %% %% %%%%%
% %% % %% %%%%%%%%% %% %
% %%%%%% %%%%%%% %% %%%%%% %
%%%%%% % %%%% %% % %
% %%%%%% %%%%% % %% %% %%%%%
% %%%%%% % %%%%% %% %
% %%%%%% %%%%%%%%%%% %% %% %
%%%%%%%%%% %%%%%% %
%. %%%%%%%%%%%%%%%% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
"""
leewayFactor: "1.1"
heuristic: "manhattanHeuristic"
@@ -1,7 +0,0 @@
# This is the solution file for test_cases/q4/astar_3_goalAtDequeue.test.
# This solution is designed to support both right-to-left
# and left-to-right implementations.
solution: "1:A->B 0:B->C 0:C->G"
expanded_states: "A B C"
rev_solution: "1:A->B 0:B->C 0:C->G"
rev_expanded_states: "A B C"
-29
View File
@@ -1,29 +0,0 @@
class: "GraphSearchTest"
algorithm: "aStarSearch"
diagram: """
1 1 1
*A ---> B ---> C ---> [G]
| ^
| 10 |
\---------------------/
A is the start state, G is the goal. Arrows mark possible state
transitions. The number next to the arrow is the cost of that transition.
If you fail this test case, you may be incorrectly testing if a node is a goal
before adding it into the queue, instead of testing when you remove the node
from the queue. See the algorithm pseudocode in lecture.
"""
graph: """
start_state: A
goal_states: G
A 0:A->G G 10.0
A 1:A->B B 1.0
B 0:B->C C 1.0
C 0:C->G G 1.0
"""
# We only care about the solution, not the expansion order.
exactExpansionOrder: "False"
-7
View File
@@ -1,7 +0,0 @@
# This is the solution file for test_cases/q4/graph_backtrack.test.
# This solution is designed to support both right-to-left
# and left-to-right implementations.
solution: "1:A->C 0:C->G"
expanded_states: "A B C D"
rev_solution: "1:A->C 0:C->G"
rev_expanded_states: "A B C D"
-32
View File
@@ -1,32 +0,0 @@
class: "GraphSearchTest"
algorithm: "aStarSearch"
diagram: """
B
^
|
*A --> C --> G
|
V
D
A is the start state, G is the goal. Arrows mark
possible state transitions. This tests whether
you extract the sequence of actions correctly even
if your search backtracks. If you fail this, your
nodes are not correctly tracking the sequences of
actions required to reach them.
"""
# The following section specifies the search problem and the solution.
# The graph is specified by first the set of start states, followed by
# the set of goal states, and lastly by the state transitions which are
# of the form:
# <start state> <actions> <end state> <cost>
graph: """
start_state: A
goal_states: G
A 0:A->B B 1.0
A 1:A->C C 2.0
A 2:A->D D 4.0
C 0:C->G G 8.0
"""
-7
View File
@@ -1,7 +0,0 @@
# This is the solution file for test_cases/q4/graph_manypaths.test.
# This solution is designed to support both right-to-left
# and left-to-right implementations.
solution: "1:A->C 0:C->D 1:D->F 0:F->G"
expanded_states: "A B1 C B2 D E1 F E2"
rev_solution: "1:A->C 0:C->D 1:D->F 0:F->G"
rev_expanded_states: "A B1 C B2 D E1 F E2"
-39
View File
@@ -1,39 +0,0 @@
class: "GraphSearchTest"
algorithm: "aStarSearch"
diagram: """
B1 E1
^ \ ^ \
/ V / V
*A --> C --> D --> F --> [G]
\ ^ \ ^
V / V /
B2 E2
A is the start state, G is the goal. Arrows mark
possible state transitions. This graph has multiple
paths to the goal, where nodes with the same state
are added to the fringe multiple times before they
are expanded.
"""
# The following section specifies the search problem and the solution.
# The graph is specified by first the set of start states, followed by
# the set of goal states, and lastly by the state transitions which are
# of the form:
# <start state> <actions> <end state> <cost>
graph: """
start_state: A
goal_states: G
A 0:A->B1 B1 1.0
A 1:A->C C 2.0
A 2:A->B2 B2 4.0
B1 0:B1->C C 8.0
B2 0:B2->C C 16.0
C 0:C->D D 32.0
D 0:D->E1 E1 64.0
D 1:D->F F 128.0
D 2:D->E2 E2 256.0
E1 0:E1->F F 512.0
E2 0:E2->F F 1024.0
F 0:F->G G 2048.0
"""