260 likes | 397 Views
A- mAIze -in. The Top Men Christian Dell, Joe Hall, Alex Reeser , Landon Rogge, Jason Todd, Jared Whitaker. Abstract. Mazes Find a particular location in a maze and discover a path to the location. Use different h(x) with A* to determine best of the code . Implementation.
E N D
A-mAIze-in The Top Men Christian Dell, Joe Hall, Alex Reeser, Landon Rogge, Jason Todd, Jared Whitaker
Abstract • Mazes • Find a particular location in a maze and discover a path to the location. • Use different h(x) with A* to determine best of the code
Implementation • Java using awt/swing • Select which test maze to use • Select the heustric to use • Will run the selected mode and output raw data on left
A General PEAS • Agent: Maze Traversing Agent • Performance: Number of moves it takes to solve the maze or find cheese • Environment: Maze • Actuators: performMovement function • Sensors: examineEnvironmentfunction
Rules • A* with various h(x) • From a starting point, find a path to another point • Cannot walk through walls
Maze Solving • Fully Observable: Yes • Deterministic: Yes • Episodic: Yes • Static: Yes • Discrete: Yes • Multi-agent: No
A* Heuristics Implemented • Euclidean • Manhattan • Number of Walls (Method 1) • Number of Walls (Method 2) • Last in List (f(x) = 0; udlr) • Dijkstra’s (h(x) = 0) • Random Numbers (0-15)
Number of Walls (Method 1) • Take starting position x1 and y1, take ending position x2 and y2, set wall = 0Repeat until x1 = x2 and y1 = y2 If x1 > x2, x1 – 1; if x1 < x2, x1 + 1; else x1 If y1 > y2, y1 – 1; if y1 < y2, y1 + 1; else y1 If a wall exists at the new (x1, y1), wall + 1
Number of Walls (Method 2) • Take starting position x1 and y1, take ending position x2 and y2, set wall = 0Repeat until x1 = x2 If x1 > x2, x1 – 1; if x1 < x2, x1 + 1; else x1If a wall exists at the new (x1, y1), wall + 1Repeat until y1 = y2If y1 > y2, y1 – 1; if y1 < y2, y1 + 1; else y1 If a wall exists at the new (x1, y1), wall + 1
Last in List • Chooses the last member of the closed set (most recently added) • Results in a unique order – find the most recent expanded node with adjacent unexpanded nodes and select the top, bottom, left, right node to continue down in that order. • Bizzare, efficient results in some cases. Similar to depth first search. Accidental mis-implementation of Dijkstra’s which occurs when f(x) = 0 instead of h(x) = 0.
Some images Maze 1 Maze 1 Solution
Some images Maze 1 Random Maze 1 Wall Method 2
Some images Maze 2 Maze 2 Solution
Some images Maze 2 Last in List Maze 2 Wall Method 2
Some images Maze 3 Maze 3 Solution
Some images Maze 3 Euclidean Maze 3 Wall Method 1
Maze Conclusions • Random Heuristics are useless in general • Dijkstra’s fared even worse than random heuristics? • Euclidian/Manhattan performance depended on maze, usually not well, many misleading paths in mazes • Number of walls did relatively okay • Depth first did well, but likely because of good random positioning of thestarting locationand the cheese