getting right starter files
This commit is contained in:
+1
-1
@@ -1 +1 @@
|
||||
order: "q1 q2 q3 q4 q5 q6 q7 q8"
|
||||
order: "q1 q2 q3 q4 q5"
|
||||
|
||||
@@ -1,3 +1,2 @@
|
||||
max_points: "0"
|
||||
class: "PartialCreditQuestion"
|
||||
max_points: "4"
|
||||
depends: "q4"
|
||||
@@ -0,0 +1,11 @@
|
||||
class: "EvalAgentTest"
|
||||
|
||||
agentName: "ContestAgent"
|
||||
layoutName: "contestClassic"
|
||||
maxTime: "180"
|
||||
numGames: "5"
|
||||
|
||||
scoreThresholds: "2500 2900"
|
||||
|
||||
randomSeed: "0"
|
||||
ghosts: "[DirectionalGhost(1), DirectionalGhost(2), DirectionalGhost(3)]"
|
||||
@@ -1,2 +1,2 @@
|
||||
max_points: "3"
|
||||
class: "PassAllTestsQuestion"
|
||||
max_points: "4"
|
||||
class: "PartialCreditQuestion"
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
# This is the solution file for test_cases/q1/grade-agent.test.
|
||||
# File intentionally blank.
|
||||
@@ -0,0 +1,18 @@
|
||||
class: "EvalAgentTest"
|
||||
|
||||
agentName: "ReflexAgent"
|
||||
layoutName: "openClassic"
|
||||
maxTime: "120"
|
||||
numGames: "10"
|
||||
|
||||
|
||||
nonTimeoutMinimum: "10"
|
||||
|
||||
scoreThresholds: "500 1000"
|
||||
|
||||
winsMinimum: "1"
|
||||
winsThresholds: "5 10"
|
||||
|
||||
|
||||
randomSeed: "0"
|
||||
ghosts: "[RandomGhost(1)]"
|
||||
@@ -1,7 +0,0 @@
|
||||
# This is the solution file for test_cases/q1/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 D C"
|
||||
rev_solution: "1:A->C 0:C->G"
|
||||
rev_expanded_states: "A B C"
|
||||
@@ -1,32 +0,0 @@
|
||||
class: "GraphSearchTest"
|
||||
algorithm: "depthFirstSearch"
|
||||
|
||||
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
|
||||
"""
|
||||
@@ -1,7 +0,0 @@
|
||||
# This is the solution file for test_cases/q1/graph_bfs_vs_dfs.test.
|
||||
# This solution is designed to support both right-to-left
|
||||
# and left-to-right implementations.
|
||||
solution: "2:A->D 0:D->G"
|
||||
expanded_states: "A D"
|
||||
rev_solution: "0:A->B 0:B->D 0:D->G"
|
||||
rev_expanded_states: "A B D"
|
||||
@@ -1,30 +0,0 @@
|
||||
# Graph where BFS finds the optimal solution but DFS does not
|
||||
class: "GraphSearchTest"
|
||||
algorithm: "depthFirstSearch"
|
||||
|
||||
diagram: """
|
||||
/-- B
|
||||
| ^
|
||||
| |
|
||||
| *A -->[G]
|
||||
| | ^
|
||||
| V |
|
||||
\-->D ----/
|
||||
|
||||
A is the start state, G is the goal. Arrows
|
||||
mark possible transitions
|
||||
"""
|
||||
# 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->G G 2.0
|
||||
A 2:A->D D 4.0
|
||||
B 0:B->D D 8.0
|
||||
D 0:D->G G 16.0
|
||||
"""
|
||||
@@ -1,7 +0,0 @@
|
||||
# This is the solution file for test_cases/q1/graph_infinite.test.
|
||||
# This solution is designed to support both right-to-left
|
||||
# and left-to-right implementations.
|
||||
solution: "0:A->B 1:B->C 1:C->G"
|
||||
expanded_states: "A B C"
|
||||
rev_solution: "0:A->B 1:B->C 1:C->G"
|
||||
rev_expanded_states: "A B C"
|
||||
@@ -1,30 +0,0 @@
|
||||
# Graph where natural action choice leads to an infinite loop
|
||||
class: "GraphSearchTest"
|
||||
algorithm: "depthFirstSearch"
|
||||
|
||||
diagram: """
|
||||
B <--> C
|
||||
^ /|
|
||||
| / |
|
||||
V / V
|
||||
*A<-/ [G]
|
||||
|
||||
A is the start state, G is the goal. Arrows mark
|
||||
possible state transitions.
|
||||
"""
|
||||
# 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
|
||||
B 0:B->A A 2.0
|
||||
B 1:B->C C 4.0
|
||||
C 0:C->A A 8.0
|
||||
C 1:C->G G 16.0
|
||||
C 2:C->B B 32.0
|
||||
"""
|
||||
|
||||
@@ -1,7 +0,0 @@
|
||||
# This is the solution file for test_cases/q1/graph_manypaths.test.
|
||||
# This solution is designed to support both right-to-left
|
||||
# and left-to-right implementations.
|
||||
solution: "2:A->B2 0:B2->C 0:C->D 2:D->E2 0:E2->F 0:F->G"
|
||||
expanded_states: "A B2 C D E2 F"
|
||||
rev_solution: "0:A->B1 0:B1->C 0:C->D 0:D->E1 0:E1->F 0:F->G"
|
||||
rev_expanded_states: "A B1 C D E1 F"
|
||||
@@ -1,39 +0,0 @@
|
||||
class: "GraphSearchTest"
|
||||
algorithm: "depthFirstSearch"
|
||||
|
||||
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
|
||||
"""
|
||||
@@ -1,40 +0,0 @@
|
||||
# This is the solution file for test_cases/q1/pacman_1.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.0 of the numbers below.
|
||||
solution: """
|
||||
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 West
|
||||
West West West West West South South South South South South South
|
||||
South South East East East North North North North North North North
|
||||
East East South South South South South South East East North North
|
||||
North North North North East East South South South South East East
|
||||
North North East East East East East East East East 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: "146"
|
||||
rev_solution: """
|
||||
South South West West West West South South East East East East South
|
||||
South West West West West South South East East East East South South
|
||||
West West West West South South South East North East East East South
|
||||
South South West West West West West West West North North North North
|
||||
North North North North West West West West West West West North North
|
||||
North East East East East South East East East North North North West
|
||||
West North North West West West West West West West West West West
|
||||
West West West West West West West West West West West West West West
|
||||
South South South South South South South South South East East East
|
||||
North North North North North North North East East South South South
|
||||
South South South East East North North North North North North East
|
||||
East South South South South East East North North North North East
|
||||
East East East East South South West West West South South East East
|
||||
East South South West West West West West West South South West West
|
||||
West West West South West West West West West South South East East
|
||||
East East East East East North East East East East East North North
|
||||
East East East East East East North East East East East East South
|
||||
South West West West South West West West West West West South South
|
||||
West West West West West South West West West West West West West West
|
||||
West
|
||||
"""
|
||||
rev_expanded_nodes: "269"
|
||||
@@ -1,27 +0,0 @@
|
||||
# This is a basic depth first search test
|
||||
class: "PacmanSearchTest"
|
||||
algorithm: "depthFirstSearch"
|
||||
|
||||
# The following specifies the layout to be used
|
||||
layoutName: "mediumMaze"
|
||||
layout: """
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
% P%
|
||||
% %%%%%%%%%%%%%%%%%%%%%%% %%%%%%%% %
|
||||
% %% % % %%%%%%% %% %
|
||||
% %% % % % % %%%% %%%%%%%%% %% %%%%%
|
||||
% %% % % % % %% %% %
|
||||
% %% % % % % % %%%% %%% %%%%%% %
|
||||
% % % % % % %% %%%%%%%% %
|
||||
% %% % % %%%%%%%% %% %% %%%%%
|
||||
% %% % %% %%%%%%%%% %% %
|
||||
% %%%%%% %%%%%%% %% %%%%%% %
|
||||
%%%%%% % %%%% %% % %
|
||||
% %%%%%% %%%%% % %% %% %%%%%
|
||||
% %%%%%% % %%%%% %% %
|
||||
% %%%%%% %%%%%%%%%%% %% %% %
|
||||
%%%%%%%%%% %%%%%% %
|
||||
%. %%%%%%%%%%%%%%%% %
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
"""
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
# This is the solution file for test_cases/q2/0-eval-function-lose-states-1.test.
|
||||
action: "Left"
|
||||
generated: "lose1 lose2 root"
|
||||
@@ -0,0 +1,30 @@
|
||||
class: "GraphGameTreeTest"
|
||||
alg: "MinimaxAgent"
|
||||
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/q2/0-eval-function-lose-states-2.test.
|
||||
action: "Right"
|
||||
generated: "lose1 lose2 root"
|
||||
@@ -0,0 +1,30 @@
|
||||
class: "GraphGameTreeTest"
|
||||
alg: "MinimaxAgent"
|
||||
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/q2/0-eval-function-win-states-1.test.
|
||||
action: "Left"
|
||||
generated: "root win1 win2"
|
||||
@@ -0,0 +1,30 @@
|
||||
class: "GraphGameTreeTest"
|
||||
alg: "MinimaxAgent"
|
||||
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/q2/0-eval-function-win-states-2.test.
|
||||
action: "Right"
|
||||
generated: "root win1 win2"
|
||||
@@ -0,0 +1,30 @@
|
||||
class: "GraphGameTreeTest"
|
||||
alg: "MinimaxAgent"
|
||||
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
|
||||
"""
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
# This is the solution file for test_cases/q2/0-lecture-6-tree.test.
|
||||
action: "Center"
|
||||
generated: "A B C D E F G H I max min1 min2 min3"
|
||||
@@ -0,0 +1,50 @@
|
||||
class: "GraphGameTreeTest"
|
||||
alg: "MinimaxAgent"
|
||||
depth: "2"
|
||||
|
||||
# Tree from lecture 6 slides
|
||||
diagram: """
|
||||
max
|
||||
/-/ | \--\
|
||||
/ | \
|
||||
/ | \
|
||||
min1 min2 min3
|
||||
/|\ /|\ /|\
|
||||
/ | \ / | \ / | \
|
||||
A B C D E F G H I
|
||||
3 12 8 5 4 6 14 1 11
|
||||
"""
|
||||
|
||||
num_agents: "2"
|
||||
|
||||
start_state: "max"
|
||||
win_states: "A B C D E F G H I"
|
||||
lose_states: ""
|
||||
|
||||
successors: """
|
||||
max Left min1
|
||||
max Center min2
|
||||
max Right min3
|
||||
min1 Left A
|
||||
min1 Center B
|
||||
min1 Right C
|
||||
min2 Left D
|
||||
min2 Center E
|
||||
min2 Right F
|
||||
min3 Left G
|
||||
min3 Center H
|
||||
min3 Right I
|
||||
"""
|
||||
|
||||
|
||||
evaluation: """
|
||||
A 3.0
|
||||
B 12.0
|
||||
C 8.0
|
||||
D 5.0
|
||||
E 4.0
|
||||
F 6.0
|
||||
G 14.0
|
||||
H 1.0
|
||||
I 11.0
|
||||
"""
|
||||
@@ -0,0 +1,3 @@
|
||||
# This is the solution file for test_cases/q2/0-small-tree.test.
|
||||
action: "pacLeft"
|
||||
generated: "A B C D deeper minLeft minRight root"
|
||||
@@ -0,0 +1,36 @@
|
||||
class: "GraphGameTreeTest"
|
||||
alg: "MinimaxAgent"
|
||||
depth: "3"
|
||||
|
||||
diagram: """
|
||||
root
|
||||
/ \
|
||||
minLeft minRight
|
||||
/ \ / \
|
||||
A B C deeper
|
||||
4 3 2 |
|
||||
D
|
||||
1000
|
||||
"""
|
||||
num_agents: "2"
|
||||
|
||||
start_state: "root"
|
||||
win_states: "A C"
|
||||
lose_states: "B D"
|
||||
|
||||
successors: """
|
||||
root pacLeft minLeft
|
||||
root pacRight minRight
|
||||
minLeft gLeft A
|
||||
minLeft gRight B
|
||||
minRight gLeft C
|
||||
minRight gRight deeper
|
||||
deeper pacLeft D
|
||||
"""
|
||||
|
||||
evaluation: """
|
||||
A 4.0
|
||||
B 3.0
|
||||
C 2.0
|
||||
D 1000.0
|
||||
"""
|
||||
@@ -0,0 +1,3 @@
|
||||
# This is the solution file for test_cases/q2/1-1-minmax.test.
|
||||
action: "Left"
|
||||
generated: "a b1 b2 c1 c2 cx d1 d2 d3 d4 dx"
|
||||
@@ -0,0 +1,47 @@
|
||||
class: "GraphGameTreeTest"
|
||||
alg: "MinimaxAgent"
|
||||
depth: "3"
|
||||
|
||||
diagram: """
|
||||
/-----a------\
|
||||
/ \
|
||||
/ \
|
||||
b1 b2
|
||||
/ \ |
|
||||
c1 c2 cx
|
||||
/ \ / \ |
|
||||
d1 d2 d3 d4 dx
|
||||
-3 -9 10 6 -3.01
|
||||
|
||||
a - max
|
||||
b - min
|
||||
c - max
|
||||
|
||||
Note that the minimax value of b1 is -3.
|
||||
"""
|
||||
num_agents: "2"
|
||||
|
||||
start_state: "a"
|
||||
win_states: "d1 d2 d3 d4 dx"
|
||||
lose_states: ""
|
||||
|
||||
successors: """
|
||||
a Left b1
|
||||
a Right b2
|
||||
b1 Left c1
|
||||
b1 Right c2
|
||||
b2 Down cx
|
||||
c1 Left d1
|
||||
c1 Right d2
|
||||
c2 Left d3
|
||||
c2 Right d4
|
||||
cx Down dx
|
||||
"""
|
||||
|
||||
evaluation: """
|
||||
d1 -3.0
|
||||
d2 -9.0
|
||||
d3 10.0
|
||||
d4 6.0
|
||||
dx -3.01
|
||||
"""
|
||||
@@ -0,0 +1,3 @@
|
||||
# This is the solution file for test_cases/q2/1-2-minmax.test.
|
||||
action: "Right"
|
||||
generated: "a b1 b2 c1 c2 cx d1 d2 d3 d4 dx"
|
||||
@@ -0,0 +1,47 @@
|
||||
class: "GraphGameTreeTest"
|
||||
alg: "MinimaxAgent"
|
||||
depth: "3"
|
||||
|
||||
diagram: """
|
||||
/-----a------\
|
||||
/ \
|
||||
/ \
|
||||
b1 b2
|
||||
/ \ |
|
||||
c1 c2 cx
|
||||
/ \ / \ |
|
||||
d1 d2 d3 d4 dx
|
||||
-3 -9 10 6 -2.99
|
||||
|
||||
a - max
|
||||
b - min
|
||||
c - max
|
||||
|
||||
Note that the minimax value of b1 is -3.
|
||||
"""
|
||||
num_agents: "2"
|
||||
|
||||
start_state: "a"
|
||||
win_states: "d1 d2 d3 d4 dx"
|
||||
lose_states: ""
|
||||
|
||||
successors: """
|
||||
a Left b1
|
||||
a Right b2
|
||||
b1 Left c1
|
||||
b1 Right c2
|
||||
b2 Down cx
|
||||
c1 Left d1
|
||||
c1 Right d2
|
||||
c2 Left d3
|
||||
c2 Right d4
|
||||
cx Down dx
|
||||
"""
|
||||
|
||||
evaluation: """
|
||||
d1 -3.0
|
||||
d2 -9.0
|
||||
d3 10.0
|
||||
d4 6.0
|
||||
dx -2.99
|
||||
"""
|
||||
@@ -0,0 +1,3 @@
|
||||
# This is the solution file for test_cases/q2/1-3-minmax.test.
|
||||
action: "Left"
|
||||
generated: "a b1 b2 c3 c4 cx d5 d6 d7 d8 dx"
|
||||
@@ -0,0 +1,47 @@
|
||||
class: "GraphGameTreeTest"
|
||||
alg: "MinimaxAgent"
|
||||
depth: "3"
|
||||
|
||||
diagram: """
|
||||
/-----a------\
|
||||
/ \
|
||||
/ \
|
||||
b1 b2
|
||||
| / \
|
||||
cx c3 c4
|
||||
| / \ / \
|
||||
dx d5 d6 d7 d8
|
||||
4.01 4 -7 0 5
|
||||
|
||||
a - max
|
||||
b - min
|
||||
c - max
|
||||
|
||||
Note that the minimax value of b2 is 4.
|
||||
"""
|
||||
num_agents: "2"
|
||||
|
||||
start_state: "a"
|
||||
win_states: "d1 d2 d3 d4 d5 d6 d7 d8 dx"
|
||||
lose_states: ""
|
||||
|
||||
successors: """
|
||||
a Left b1
|
||||
a Right b2
|
||||
b1 Down cx
|
||||
b2 Left c3
|
||||
b2 Right c4
|
||||
c3 Left d5
|
||||
c3 Right d6
|
||||
c4 Left d7
|
||||
c4 Right d8
|
||||
cx Down dx
|
||||
"""
|
||||
|
||||
evaluation: """
|
||||
d5 4.0
|
||||
d6 -7.0
|
||||
d7 0.0
|
||||
d8 5.0
|
||||
dx 4.01
|
||||
"""
|
||||
@@ -0,0 +1,3 @@
|
||||
# This is the solution file for test_cases/q2/1-4-minmax.test.
|
||||
action: "Right"
|
||||
generated: "a b1 b2 c3 c4 cx d5 d6 d7 d8 dx"
|
||||
@@ -0,0 +1,47 @@
|
||||
class: "GraphGameTreeTest"
|
||||
alg: "MinimaxAgent"
|
||||
depth: "3"
|
||||
|
||||
diagram: """
|
||||
/-----a------\
|
||||
/ \
|
||||
/ \
|
||||
b1 b2
|
||||
| / \
|
||||
cx c3 c4
|
||||
| / \ / \
|
||||
dx d5 d6 d7 d8
|
||||
3.99 4 -7 0 5
|
||||
|
||||
a - max
|
||||
b - min
|
||||
c - max
|
||||
|
||||
Note that the minimax value of b2 is 4.
|
||||
"""
|
||||
num_agents: "2"
|
||||
|
||||
start_state: "a"
|
||||
win_states: "d1 d2 d3 d4 d5 d6 d7 d8 dx"
|
||||
lose_states: ""
|
||||
|
||||
successors: """
|
||||
a Left b1
|
||||
a Right b2
|
||||
b1 Down cx
|
||||
b2 Left c3
|
||||
b2 Right c4
|
||||
c3 Left d5
|
||||
c3 Right d6
|
||||
c4 Left d7
|
||||
c4 Right d8
|
||||
cx Down dx
|
||||
"""
|
||||
|
||||
evaluation: """
|
||||
d5 4.0
|
||||
d6 -7.0
|
||||
d7 0.0
|
||||
d8 5.0
|
||||
dx 3.99
|
||||
"""
|
||||
@@ -0,0 +1,3 @@
|
||||
# This is the solution file for test_cases/q2/1-5-minmax.test.
|
||||
action: "Right"
|
||||
generated: "A B C D E F G H Z a b1 b2 c1 c2 cx d1 d2 d3 d4 dx"
|
||||
@@ -0,0 +1,75 @@
|
||||
class: "GraphGameTreeTest"
|
||||
alg: "MinimaxAgent"
|
||||
depth: "4"
|
||||
|
||||
diagram: """
|
||||
/-----a------\
|
||||
/ \
|
||||
/ \
|
||||
b1 b2
|
||||
/ \ |
|
||||
c1 c2 cx
|
||||
/ \ / \ |
|
||||
d1 d2 d3 d4 dx
|
||||
/ \ / \ / \ / \ |
|
||||
A B C D E F G H Z
|
||||
-3 13 5 9 10 3 -6 8 3.01
|
||||
|
||||
a - max
|
||||
b - min
|
||||
c - max
|
||||
d - min
|
||||
|
||||
Note the minimax value of b1 is 3.
|
||||
"""
|
||||
num_agents: "2"
|
||||
|
||||
start_state: "a"
|
||||
win_states: "A B C D E F G H I J K L M N O P Z"
|
||||
lose_states: ""
|
||||
|
||||
successors: """
|
||||
a Left b1
|
||||
a Right b2
|
||||
b1 Left c1
|
||||
b1 Right c2
|
||||
b2 Down cx
|
||||
c1 Left d1
|
||||
c1 Right d2
|
||||
c2 Left d3
|
||||
c2 Right d4
|
||||
c3 Left d5
|
||||
c3 Right d6
|
||||
c4 Left d7
|
||||
c4 Right d8
|
||||
cx Down dx
|
||||
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
|
||||
dx Down Z
|
||||
"""
|
||||
|
||||
evaluation: """
|
||||
A -3.0
|
||||
B 13.0
|
||||
C 5.0
|
||||
D 9.0
|
||||
E 10.0
|
||||
F 3.0
|
||||
G -6.0
|
||||
H 8.0
|
||||
Z 3.01
|
||||
"""
|
||||
@@ -0,0 +1,3 @@
|
||||
# This is the solution file for test_cases/q2/1-6-minmax.test.
|
||||
action: "Left"
|
||||
generated: "A B C D E F G H Z a b1 b2 c1 c2 cx d1 d2 d3 d4 dx"
|
||||
@@ -0,0 +1,75 @@
|
||||
class: "GraphGameTreeTest"
|
||||
alg: "MinimaxAgent"
|
||||
depth: "4"
|
||||
|
||||
diagram: """
|
||||
/-----a------\
|
||||
/ \
|
||||
/ \
|
||||
b1 b2
|
||||
/ \ |
|
||||
c1 c2 cx
|
||||
/ \ / \ |
|
||||
d1 d2 d3 d4 dx
|
||||
/ \ / \ / \ / \ |
|
||||
A B C D E F G H Z
|
||||
-3 13 5 9 10 3 -6 8 2.99
|
||||
|
||||
a - max
|
||||
b - min
|
||||
c - max
|
||||
d - min
|
||||
|
||||
Note the minimax value of b1 is 3.
|
||||
"""
|
||||
num_agents: "2"
|
||||
|
||||
start_state: "a"
|
||||
win_states: "A B C D E F G H I J K L M N O P Z"
|
||||
lose_states: ""
|
||||
|
||||
successors: """
|
||||
a Left b1
|
||||
a Right b2
|
||||
b1 Left c1
|
||||
b1 Right c2
|
||||
b2 Down cx
|
||||
c1 Left d1
|
||||
c1 Right d2
|
||||
c2 Left d3
|
||||
c2 Right d4
|
||||
c3 Left d5
|
||||
c3 Right d6
|
||||
c4 Left d7
|
||||
c4 Right d8
|
||||
cx Down dx
|
||||
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
|
||||
dx Down Z
|
||||
"""
|
||||
|
||||
evaluation: """
|
||||
A -3.0
|
||||
B 13.0
|
||||
C 5.0
|
||||
D 9.0
|
||||
E 10.0
|
||||
F 3.0
|
||||
G -6.0
|
||||
H 8.0
|
||||
Z 2.99
|
||||
"""
|
||||
@@ -0,0 +1,3 @@
|
||||
# This is the solution file for test_cases/q2/1-7-minmax.test.
|
||||
action: "Left"
|
||||
generated: "I J K L M N O P Z a b1 b2 c3 c4 cx d5 d6 d7 d8 dx"
|
||||
@@ -0,0 +1,75 @@
|
||||
class: "GraphGameTreeTest"
|
||||
alg: "MinimaxAgent"
|
||||
depth: "4"
|
||||
|
||||
diagram: """
|
||||
/-----a------\
|
||||
/ \
|
||||
/ \
|
||||
b1 b2
|
||||
| / \
|
||||
cx c3 c4
|
||||
| / \ / \
|
||||
dx d5 d6 d7 d8
|
||||
| / \ / \ / \ / \
|
||||
Z I J K L M N O P
|
||||
-1.99 -1 -9 4 7 2 5 -3 -2
|
||||
|
||||
a - max
|
||||
b - min
|
||||
c - min
|
||||
d - max
|
||||
|
||||
Note that the minimax value of b2 is -2
|
||||
"""
|
||||
num_agents: "3"
|
||||
|
||||
start_state: "a"
|
||||
win_states: "A B C D E F G H I J K L M N O P Z"
|
||||
lose_states: ""
|
||||
|
||||
successors: """
|
||||
a Left b1
|
||||
a Right b2
|
||||
b1 Down cx
|
||||
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
|
||||
cx Down dx
|
||||
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
|
||||
dx Down Z
|
||||
"""
|
||||
|
||||
evaluation: """
|
||||
I -1.0
|
||||
J -9.0
|
||||
K 4.0
|
||||
L 7.0
|
||||
M 2.0
|
||||
N 5.0
|
||||
O -3.0
|
||||
P -2.0
|
||||
Z -1.99
|
||||
"""
|
||||
@@ -0,0 +1,3 @@
|
||||
# This is the solution file for test_cases/q2/1-8-minmax.test.
|
||||
action: "Right"
|
||||
generated: "I J K L M N O P Z a b1 b2 c3 c4 cx d5 d6 d7 d8 dx"
|
||||
@@ -0,0 +1,75 @@
|
||||
class: "GraphGameTreeTest"
|
||||
alg: "MinimaxAgent"
|
||||
depth: "4"
|
||||
|
||||
diagram: """
|
||||
/-----a------\
|
||||
/ \
|
||||
/ \
|
||||
b1 b2
|
||||
| / \
|
||||
cx c3 c4
|
||||
| / \ / \
|
||||
dx d5 d6 d7 d8
|
||||
| / \ / \ / \ / \
|
||||
Z I J K L M N O P
|
||||
-2.01 -1 -9 4 7 2 5 -3 -2
|
||||
|
||||
a - max
|
||||
b - min
|
||||
c - min
|
||||
d - max
|
||||
|
||||
Note that the minimax value of b2 is -2.01
|
||||
"""
|
||||
num_agents: "3"
|
||||
|
||||
start_state: "a"
|
||||
win_states: "A B C D E F G H I J K L M N O P Z"
|
||||
lose_states: ""
|
||||
|
||||
successors: """
|
||||
a Left b1
|
||||
a Right b2
|
||||
b1 Down cx
|
||||
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
|
||||
cx Down dx
|
||||
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
|
||||
dx Down Z
|
||||
"""
|
||||
|
||||
evaluation: """
|
||||
I -1.0
|
||||
J -9.0
|
||||
K 4.0
|
||||
L 7.0
|
||||
M 2.0
|
||||
N 5.0
|
||||
O -3.0
|
||||
P -2.0
|
||||
Z -2.01
|
||||
"""
|
||||
@@ -0,0 +1,3 @@
|
||||
# This is the solution file for test_cases/q2/2-1a-vary-depth.test.
|
||||
action: "Left"
|
||||
generated: "a b1 b2 c1 c2 cx"
|
||||
@@ -0,0 +1,52 @@
|
||||
class: "GraphGameTreeTest"
|
||||
alg: "MinimaxAgent"
|
||||
depth: "1"
|
||||
|
||||
diagram: """
|
||||
/-----a------\
|
||||
/ \
|
||||
/ \
|
||||
b1 b2
|
||||
/ \ |
|
||||
-4 c1 c2 9 cx -4.01
|
||||
/ \ / \ |
|
||||
d1 d2 d3 d4 dx
|
||||
-3 -9 10 6 -4.01
|
||||
|
||||
a - max
|
||||
b - min
|
||||
c - max
|
||||
|
||||
Note that the minimax value of b1 is -3, but the depth=1 limited value is -4.
|
||||
The values next to c1, c2, and cx are the values of the evaluation function, not
|
||||
necessarily the correct minimax backup.
|
||||
"""
|
||||
num_agents: "2"
|
||||
|
||||
start_state: "a"
|
||||
win_states: "d1 d2 d3 d4 dx"
|
||||
lose_states: ""
|
||||
|
||||
successors: """
|
||||
a Left b1
|
||||
a Right b2
|
||||
b1 Left c1
|
||||
b1 Right c2
|
||||
b2 Down cx
|
||||
c1 Left d1
|
||||
c1 Right d2
|
||||
c2 Left d3
|
||||
c2 Right d4
|
||||
cx Down dx
|
||||
"""
|
||||
|
||||
evaluation: """
|
||||
c1 -4.0
|
||||
c2 9.0
|
||||
cx -4.01
|
||||
d1 -3.0
|
||||
d2 -9.0
|
||||
d3 10.0
|
||||
d4 6.0
|
||||
dx -4.01
|
||||
"""
|
||||
@@ -0,0 +1,3 @@
|
||||
# This is the solution file for test_cases/q2/2-1b-vary-depth.test.
|
||||
action: "Left"
|
||||
generated: "a b1 b2 c1 c2 cx d1 d2 d3 d4 dx"
|
||||
@@ -0,0 +1,52 @@
|
||||
class: "GraphGameTreeTest"
|
||||
alg: "MinimaxAgent"
|
||||
depth: "2"
|
||||
|
||||
diagram: """
|
||||
/-----a------\
|
||||
/ \
|
||||
/ \
|
||||
b1 b2
|
||||
/ \ |
|
||||
-4 c1 c2 9 cx -4.01
|
||||
/ \ / \ |
|
||||
d1 d2 d3 d4 dx
|
||||
-3 -9 10 6 -4.01
|
||||
|
||||
a - max
|
||||
b - min
|
||||
c - max
|
||||
|
||||
Note that the minimax value of b1 is -3, but the depth=1 limited value is -4.
|
||||
The values next to c1, c2, and cx are the values of the evaluation function, not
|
||||
necessarily the correct minimax backup.
|
||||
"""
|
||||
num_agents: "2"
|
||||
|
||||
start_state: "a"
|
||||
win_states: "d1 d2 d3 d4 dx"
|
||||
lose_states: ""
|
||||
|
||||
successors: """
|
||||
a Left b1
|
||||
a Right b2
|
||||
b1 Left c1
|
||||
b1 Right c2
|
||||
b2 Down cx
|
||||
c1 Left d1
|
||||
c1 Right d2
|
||||
c2 Left d3
|
||||
c2 Right d4
|
||||
cx Down dx
|
||||
"""
|
||||
|
||||
evaluation: """
|
||||
c1 -4.0
|
||||
c2 9.0
|
||||
cx -4.01
|
||||
d1 -3.0
|
||||
d2 -9.0
|
||||
d3 10.0
|
||||
d4 6.0
|
||||
dx -4.01
|
||||
"""
|
||||
@@ -0,0 +1,3 @@
|
||||
# This is the solution file for test_cases/q2/2-2a-vary-depth.test.
|
||||
action: "Right"
|
||||
generated: "a b1 b2 c1 c2 cx"
|
||||
@@ -0,0 +1,52 @@
|
||||
class: "GraphGameTreeTest"
|
||||
alg: "MinimaxAgent"
|
||||
depth: "1"
|
||||
|
||||
diagram: """
|
||||
/-----a------\
|
||||
/ \
|
||||
/ \
|
||||
b1 b2
|
||||
/ \ |
|
||||
-4 c1 c2 9 cx -3.99
|
||||
/ \ / \ |
|
||||
d1 d2 d3 d4 dx
|
||||
-3 -9 10 6 -3.99
|
||||
|
||||
a - max
|
||||
b - min
|
||||
c - max
|
||||
|
||||
Note that the minimax value of b1 is -3, but the depth=1 limited value is -4.
|
||||
The values next to c1, c2, and cx are the values of the evaluation function, not
|
||||
necessarily the correct minimax backup.
|
||||
"""
|
||||
num_agents: "2"
|
||||
|
||||
start_state: "a"
|
||||
win_states: "d1 d2 d3 d4 dx"
|
||||
lose_states: ""
|
||||
|
||||
successors: """
|
||||
a Left b1
|
||||
a Right b2
|
||||
b1 Left c1
|
||||
b1 Right c2
|
||||
b2 Down cx
|
||||
c1 Left d1
|
||||
c1 Right d2
|
||||
c2 Left d3
|
||||
c2 Right d4
|
||||
cx Down dx
|
||||
"""
|
||||
|
||||
evaluation: """
|
||||
c1 -4.0
|
||||
c2 9.0
|
||||
cx -3.99
|
||||
d1 -3.0
|
||||
d2 -9.0
|
||||
d3 10.0
|
||||
d4 6.0
|
||||
dx -3.99
|
||||
"""
|
||||
@@ -0,0 +1,3 @@
|
||||
# This is the solution file for test_cases/q2/2-2b-vary-depth.test.
|
||||
action: "Left"
|
||||
generated: "a b1 b2 c1 c2 cx d1 d2 d3 d4 dx"
|
||||
@@ -0,0 +1,52 @@
|
||||
class: "GraphGameTreeTest"
|
||||
alg: "MinimaxAgent"
|
||||
depth: "2"
|
||||
|
||||
diagram: """
|
||||
/-----a------\
|
||||
/ \
|
||||
/ \
|
||||
b1 b2
|
||||
/ \ |
|
||||
-4 c1 c2 9 cx -3.99
|
||||
/ \ / \ |
|
||||
d1 d2 d3 d4 dx
|
||||
-3 -9 10 6 -3.99
|
||||
|
||||
a - max
|
||||
b - min
|
||||
c - max
|
||||
|
||||
Note that the minimax value of b1 is -3, but the depth=1 limited value is -4.
|
||||
The values next to c1, c2, and cx are the values of the evaluation function, not
|
||||
necessarily the correct minimax backup.
|
||||
"""
|
||||
num_agents: "2"
|
||||
|
||||
start_state: "a"
|
||||
win_states: "d1 d2 d3 d4 dx"
|
||||
lose_states: ""
|
||||
|
||||
successors: """
|
||||
a Left b1
|
||||
a Right b2
|
||||
b1 Left c1
|
||||
b1 Right c2
|
||||
b2 Down cx
|
||||
c1 Left d1
|
||||
c1 Right d2
|
||||
c2 Left d3
|
||||
c2 Right d4
|
||||
cx Down dx
|
||||
"""
|
||||
|
||||
evaluation: """
|
||||
c1 -4.0
|
||||
c2 9.0
|
||||
cx -3.99
|
||||
d1 -3.0
|
||||
d2 -9.0
|
||||
d3 10.0
|
||||
d4 6.0
|
||||
dx -3.99
|
||||
"""
|
||||
@@ -0,0 +1,3 @@
|
||||
# This is the solution file for test_cases/q2/2-3a-vary-depth.test.
|
||||
action: "Left"
|
||||
generated: "a b1 b2 c3 c4 cx"
|
||||
@@ -0,0 +1,52 @@
|
||||
class: "GraphGameTreeTest"
|
||||
alg: "MinimaxAgent"
|
||||
depth: "1"
|
||||
|
||||
diagram: """
|
||||
/-----a------\
|
||||
/ \
|
||||
/ \
|
||||
b1 b2
|
||||
| / \
|
||||
5.01 cx 8 c3 c4 5
|
||||
| / \ / \
|
||||
dx d5 d6 d7 d8
|
||||
5.01 4 -7 0 5
|
||||
|
||||
a - max
|
||||
b - min
|
||||
c - max
|
||||
|
||||
Note that the minimax value of b1 is 4, but the depth=1 limited value is 5.
|
||||
The values next to c3, c4, and cx are the values of the evaluation function, not
|
||||
necessarily the correct minimax backup.
|
||||
"""
|
||||
num_agents: "2"
|
||||
|
||||
start_state: "a"
|
||||
win_states: "d1 d2 d3 d4 d5 d6 d7 d8 dx"
|
||||
lose_states: ""
|
||||
|
||||
successors: """
|
||||
a Left b1
|
||||
a Right b2
|
||||
b1 Down cx
|
||||
b2 Left c3
|
||||
b2 Right c4
|
||||
c3 Left d5
|
||||
c3 Right d6
|
||||
c4 Left d7
|
||||
c4 Right d8
|
||||
cx Down dx
|
||||
"""
|
||||
|
||||
evaluation: """
|
||||
c3 8.0
|
||||
c4 5.0
|
||||
cx 5.01
|
||||
d5 4.0
|
||||
d6 -7.0
|
||||
d7 0.0
|
||||
d8 5.0
|
||||
dx 5.01
|
||||
"""
|
||||
@@ -0,0 +1,3 @@
|
||||
# This is the solution file for test_cases/q2/2-3b-vary-depth.test.
|
||||
action: "Left"
|
||||
generated: "a b1 b2 c3 c4 cx d5 d6 d7 d8 dx"
|
||||
@@ -0,0 +1,52 @@
|
||||
class: "GraphGameTreeTest"
|
||||
alg: "MinimaxAgent"
|
||||
depth: "2"
|
||||
|
||||
diagram: """
|
||||
/-----a------\
|
||||
/ \
|
||||
/ \
|
||||
b1 b2
|
||||
| / \
|
||||
5.01 cx 8 c3 c4 5
|
||||
| / \ / \
|
||||
dx d5 d6 d7 d8
|
||||
5.01 4 -7 0 5
|
||||
|
||||
a - max
|
||||
b - min
|
||||
c - max
|
||||
|
||||
Note that the minimax value of b1 is 4, but the depth=1 limited value is 5.
|
||||
The values next to c3, c4, and cx are the values of the evaluation function, not
|
||||
necessarily the correct minimax backup.
|
||||
"""
|
||||
num_agents: "2"
|
||||
|
||||
start_state: "a"
|
||||
win_states: "d1 d2 d3 d4 d5 d6 d7 d8 dx"
|
||||
lose_states: ""
|
||||
|
||||
successors: """
|
||||
a Left b1
|
||||
a Right b2
|
||||
b1 Down cx
|
||||
b2 Left c3
|
||||
b2 Right c4
|
||||
c3 Left d5
|
||||
c3 Right d6
|
||||
c4 Left d7
|
||||
c4 Right d8
|
||||
cx Down dx
|
||||
"""
|
||||
|
||||
evaluation: """
|
||||
c3 8.0
|
||||
c4 5.0
|
||||
cx 5.01
|
||||
d5 4.0
|
||||
d6 -7.0
|
||||
d7 0.0
|
||||
d8 5.0
|
||||
dx 5.01
|
||||
"""
|
||||
@@ -0,0 +1,3 @@
|
||||
# This is the solution file for test_cases/q2/2-4a-vary-depth.test.
|
||||
action: "Right"
|
||||
generated: "a b1 b2 c3 c4 cx"
|
||||
@@ -0,0 +1,52 @@
|
||||
class: "GraphGameTreeTest"
|
||||
alg: "MinimaxAgent"
|
||||
depth: "1"
|
||||
|
||||
diagram: """
|
||||
/-----a------\
|
||||
/ \
|
||||
/ \
|
||||
b1 b2
|
||||
| / \
|
||||
4.99 cx 8 c3 c4 5
|
||||
| / \ / \
|
||||
dx d5 d6 d7 d8
|
||||
4.99 4 -7 0 5
|
||||
|
||||
a - max
|
||||
b - min
|
||||
c - max
|
||||
|
||||
Note that the minimax value of b1 is 4, but the depth=1 limited value is 5.
|
||||
The values next to c3, c4, and cx are the values of the evaluation function, not
|
||||
necessarily the correct minimax backup.
|
||||
"""
|
||||
num_agents: "2"
|
||||
|
||||
start_state: "a"
|
||||
win_states: "d1 d2 d3 d4 d5 d6 d7 d8 dx"
|
||||
lose_states: ""
|
||||
|
||||
successors: """
|
||||
a Left b1
|
||||
a Right b2
|
||||
b1 Down cx
|
||||
b2 Left c3
|
||||
b2 Right c4
|
||||
c3 Left d5
|
||||
c3 Right d6
|
||||
c4 Left d7
|
||||
c4 Right d8
|
||||
cx Down dx
|
||||
"""
|
||||
|
||||
evaluation: """
|
||||
c3 8.0
|
||||
c4 5.0
|
||||
cx 4.99
|
||||
d5 4.0
|
||||
d6 -7.0
|
||||
d7 0.0
|
||||
d8 5.0
|
||||
dx 4.99
|
||||
"""
|
||||
@@ -0,0 +1,3 @@
|
||||
# This is the solution file for test_cases/q2/2-4b-vary-depth.test.
|
||||
action: "Left"
|
||||
generated: "a b1 b2 c3 c4 cx d5 d6 d7 d8 dx"
|
||||
@@ -0,0 +1,52 @@
|
||||
class: "GraphGameTreeTest"
|
||||
alg: "MinimaxAgent"
|
||||
depth: "2"
|
||||
|
||||
diagram: """
|
||||
/-----a------\
|
||||
/ \
|
||||
/ \
|
||||
b1 b2
|
||||
| / \
|
||||
4.99 cx 8 c3 c4 5
|
||||
| / \ / \
|
||||
dx d5 d6 d7 d8
|
||||
4.99 4 -7 0 5
|
||||
|
||||
a - max
|
||||
b - min
|
||||
c - max
|
||||
|
||||
Note that the minimax value of b1 is 4, but the depth=1 limited value is 5.
|
||||
The values next to c3, c4, and cx are the values of the evaluation function, not
|
||||
necessarily the correct minimax backup.
|
||||
"""
|
||||
num_agents: "2"
|
||||
|
||||
start_state: "a"
|
||||
win_states: "d1 d2 d3 d4 d5 d6 d7 d8 dx"
|
||||
lose_states: ""
|
||||
|
||||
successors: """
|
||||
a Left b1
|
||||
a Right b2
|
||||
b1 Down cx
|
||||
b2 Left c3
|
||||
b2 Right c4
|
||||
c3 Left d5
|
||||
c3 Right d6
|
||||
c4 Left d7
|
||||
c4 Right d8
|
||||
cx Down dx
|
||||
"""
|
||||
|
||||
evaluation: """
|
||||
c3 8.0
|
||||
c4 5.0
|
||||
cx 4.99
|
||||
d5 4.0
|
||||
d6 -7.0
|
||||
d7 0.0
|
||||
d8 5.0
|
||||
dx 4.99
|
||||
"""
|
||||
@@ -0,0 +1,3 @@
|
||||
# This is the solution file for test_cases/q2/2-one-ghost-3level.test.
|
||||
action: "Left"
|
||||
generated: "a b1 b2 c1 c2 c3 c4 d1 d2 d3 d4 d5 d6 d7 d8"
|
||||
@@ -0,0 +1,52 @@
|
||||
class: "GraphGameTreeTest"
|
||||
alg: "MinimaxAgent"
|
||||
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 - min
|
||||
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/q2/3-one-ghost-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"
|
||||
@@ -0,0 +1,79 @@
|
||||
class: "GraphGameTreeTest"
|
||||
alg: "MinimaxAgent"
|
||||
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 - min
|
||||
c - max
|
||||
d - min
|
||||
"""
|
||||
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/q2/4-two-ghosts-3level.test.
|
||||
action: "Left"
|
||||
generated: "a b1 b2 c1 c2 c3 c4 d1 d2 d3 d4 d5 d6 d7 d8"
|
||||
@@ -0,0 +1,52 @@
|
||||
class: "GraphGameTreeTest"
|
||||
alg: "MinimaxAgent"
|
||||
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 - min
|
||||
c - min
|
||||
"""
|
||||
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/q2/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"
|
||||
@@ -0,0 +1,79 @@
|
||||
class: "GraphGameTreeTest"
|
||||
alg: "MinimaxAgent"
|
||||
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 - min
|
||||
c - min
|
||||
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/q2/6-tied-root.test.
|
||||
action: "Left"
|
||||
generated: "A B C max min1 min2"
|
||||
@@ -0,0 +1,31 @@
|
||||
class: "GraphGameTreeTest"
|
||||
alg: "MinimaxAgent"
|
||||
depth: "3"
|
||||
|
||||
diagram: """
|
||||
max
|
||||
/ \
|
||||
min1 min2
|
||||
| / \
|
||||
A B C
|
||||
10 10 0
|
||||
"""
|
||||
num_agents: "2"
|
||||
|
||||
start_state: "max"
|
||||
win_states: "A B"
|
||||
lose_states: "C"
|
||||
|
||||
successors: """
|
||||
max Left min1
|
||||
max Right min2
|
||||
min1 Down A
|
||||
min2 Left B
|
||||
min2 Right C
|
||||
"""
|
||||
|
||||
evaluation: """
|
||||
A 10.0
|
||||
B 10.0
|
||||
C 0.0
|
||||
"""
|
||||
@@ -0,0 +1,3 @@
|
||||
# This is the solution file for test_cases/q2/7-1a-check-depth-one-ghost.test.
|
||||
action: "Left"
|
||||
generated: "a b1 b2 b3 c1 c2 c3"
|
||||
@@ -0,0 +1,83 @@
|
||||
class: "GraphGameTreeTest"
|
||||
alg: "MinimaxAgent"
|
||||
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/q2/7-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: "MinimaxAgent"
|
||||
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/q2/7-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: "MinimaxAgent"
|
||||
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/q2/7-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: "MinimaxAgent"
|
||||
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/q2/7-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: "MinimaxAgent"
|
||||
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/q2/7-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: "MinimaxAgent"
|
||||
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
|
||||
"""
|
||||
|
||||
|
||||
@@ -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]]
|
||||
[[["Stop", "East"], 154], [["East"], 103]]
|
||||
[[["East"], 156], [["East"], 101]]
|
||||
[[["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], [["South"], 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"], ["Stop", "North"], ["North"]]
|
||||
[["East"], ["East"], ["Stop", "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"]]
|
||||
[["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", "North"], ["East", "North"]]
|
||||
[["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"], ["Stop", "East"], ["South"]]
|
||||
[["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", "East"], ["East"]]
|
||||
[["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"]]
|
||||
"""
|
||||
@@ -0,0 +1,19 @@
|
||||
class: "PacmanGameTreeTest"
|
||||
alg: "MinimaxAgent"
|
||||
seed: "0"
|
||||
depth: "2"
|
||||
max_points: "4"
|
||||
|
||||
# The following specifies the layout to be used
|
||||
layoutName: "smallClassic"
|
||||
layout: """
|
||||
%%%%%%%%%%%%%%%%%%%%
|
||||
%......%G G%......%
|
||||
%.%%...%% %%...%%.%
|
||||
%.%o.%........%.o%.%
|
||||
%.%%.%.%%%%%%.%.%%.%
|
||||
%........P.........%
|
||||
%%%%%%%%%%%%%%%%%%%%
|
||||
"""
|
||||
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
max_points: "3"
|
||||
max_points: "5"
|
||||
class: "PassAllTestsQuestion"
|
||||
|
||||
@@ -1,7 +0,0 @@
|
||||
# This is the solution file for test_cases/q2/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 D C B"
|
||||
@@ -1,32 +0,0 @@
|
||||
class: "GraphSearchTest"
|
||||
algorithm: "breadthFirstSearch"
|
||||
|
||||
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
|
||||
"""
|
||||
@@ -1,7 +0,0 @@
|
||||
# This is the solution file for test_cases/q2/graph_bfs_vs_dfs.test.
|
||||
# This solution is designed to support both right-to-left
|
||||
# and left-to-right implementations.
|
||||
solution: "1:A->G"
|
||||
expanded_states: "A B"
|
||||
rev_solution: "1:A->G"
|
||||
rev_expanded_states: "A D"
|
||||
@@ -1,30 +0,0 @@
|
||||
# Graph where BFS finds the optimal solution but DFS does not
|
||||
class: "GraphSearchTest"
|
||||
algorithm: "breadthFirstSearch"
|
||||
|
||||
diagram: """
|
||||
/-- B
|
||||
| ^
|
||||
| |
|
||||
| *A -->[G]
|
||||
| | ^
|
||||
| V |
|
||||
\-->D ----/
|
||||
|
||||
A is the start state, G is the goal. Arrows
|
||||
mark possible transitions
|
||||
"""
|
||||
# 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->G G 2.0
|
||||
A 2:A->D D 4.0
|
||||
B 0:B->D D 8.0
|
||||
D 0:D->G G 16.0
|
||||
"""
|
||||
@@ -1,7 +0,0 @@
|
||||
# This is the solution file for test_cases/q2/graph_infinite.test.
|
||||
# This solution is designed to support both right-to-left
|
||||
# and left-to-right implementations.
|
||||
solution: "0:A->B 1:B->C 1:C->G"
|
||||
expanded_states: "A B C"
|
||||
rev_solution: "0:A->B 1:B->C 1:C->G"
|
||||
rev_expanded_states: "A B C"
|
||||
@@ -1,30 +0,0 @@
|
||||
# Graph where natural action choice leads to an infinite loop
|
||||
class: "GraphSearchTest"
|
||||
algorithm: "breadthFirstSearch"
|
||||
|
||||
diagram: """
|
||||
B <--> C
|
||||
^ /|
|
||||
| / |
|
||||
V / V
|
||||
*A<-/ [G]
|
||||
|
||||
A is the start state, G is the goal. Arrows mark
|
||||
possible state transitions.
|
||||
"""
|
||||
# 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
|
||||
B 0:B->A A 2.0
|
||||
B 1:B->C C 4.0
|
||||
C 0:C->A A 8.0
|
||||
C 1:C->G G 16.0
|
||||
C 2:C->B B 32.0
|
||||
"""
|
||||
|
||||
@@ -1,7 +0,0 @@
|
||||
# This is the solution file for test_cases/q2/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 B2 C B1 D E2 F E1"
|
||||
@@ -1,39 +0,0 @@
|
||||
class: "GraphSearchTest"
|
||||
algorithm: "breadthFirstSearch"
|
||||
|
||||
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
|
||||
"""
|
||||
@@ -1,22 +0,0 @@
|
||||
# This is the solution file for test_cases/q2/pacman_1.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.0 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: "269"
|
||||
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: "269"
|
||||
@@ -1,27 +0,0 @@
|
||||
# This is a basic breadth first search test
|
||||
class: "PacmanSearchTest"
|
||||
algorithm: "breadthFirstSearch"
|
||||
|
||||
# The following specifies the layout to be used
|
||||
layoutName: "mediumMaze"
|
||||
layout: """
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
% P%
|
||||
% %%%%%%%%%%%%%%%%%%%%%%% %%%%%%%% %
|
||||
% %% % % %%%%%%% %% %
|
||||
% %% % % % % %%%% %%%%%%%%% %% %%%%%
|
||||
% %% % % % % %% %% %
|
||||
% %% % % % % % %%%% %%% %%%%%% %
|
||||
% % % % % % %% %%%%%%%% %
|
||||
% %% % % %%%%%%%% %% %% %%%%%
|
||||
% %% % %% %%%%%%%%% %% %
|
||||
% %%%%%% %%%%%%% %% %%%%%% %
|
||||
%%%%%% % %%%% %% % %
|
||||
% %%%%%% %%%%% % %% %% %%%%%
|
||||
% %%%%%% % %%%%% %% %
|
||||
% %%%%%% %%%%%%%%%%% %% %% %
|
||||
%%%%%%%%%% %%%%%% %
|
||||
%. %%%%%%%%%%%%%%%% %
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
"""
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
# This is the solution file for test_cases/q3/0-eval-function-lose-states-1.test.
|
||||
action: "Left"
|
||||
generated: "lose1 lose2 root"
|
||||
@@ -0,0 +1,30 @@
|
||||
class: "GraphGameTreeTest"
|
||||
alg: "AlphaBetaAgent"
|
||||
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/q3/0-eval-function-lose-states-2.test.
|
||||
action: "Right"
|
||||
generated: "lose1 lose2 root"
|
||||
@@ -0,0 +1,30 @@
|
||||
class: "GraphGameTreeTest"
|
||||
alg: "AlphaBetaAgent"
|
||||
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/q3/0-eval-function-win-states-1.test.
|
||||
action: "Left"
|
||||
generated: "root win1 win2"
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user