Assignment Chef icon Assignment Chef

[Solved] CS520: Assignment 1 Path Planning and Search Algorithms

5.0 1 customer review Digital download

Digital download

$25.00

Availability
In stock
Checkout
One item

Need a hand?

Message us on WhatsApp for payment or download support.

WhatsApp QR code

This project is intended as an exploration of various search algorithms, both in the traditional application of path planning, and more abstractly in the construction and design of complex objects. You will first generate and solve simple mazes using the classical search algorithms (BFS/DFS/A). Once you have written these algorithms, you will utilize other search algorithms to generate mazes that your initial algorithms have trouble solving.

1 Part 1: Path Planning

Generating Environments: In order to properly compare these algorithms, they need to be run multiple times over a variety of environments. A map will be a square grid of cells / locations, where each cell is either empty or occupied. An agent wishes to travel from the upper left corner to the lower right corner, along the shortest path possible. The agent can only move from empty cells to neighboring empty cells in the up/down direction, or left/right each cell has potentially four neighbors. Figure 1: Successful A path exists from start to finish. Figure 2: Unsuccessful No path exists from start to finish. Maps may be generated in the following way: for a given dimension dim construct a dim x dim array; given a probability p of a cell being occupied (0 < p < 1), read through each cell in the array and determine at random if it should be filled or empty. When filling cells, exclude the upper left and lower right corners (the start and goal, respectively). It is convenient to define a function to generate these maps for a given dim and p. Figure 3: Maps generated with p = 0.1,0.3,0.5 respectively. Path Planning: Once you have the ability to generate maps with specified parameters, implement the ability to search for a path from corner to corner, using each of the following algorithms:
d((x1,y1),(x2,y2)) = p(x1 x2)2 + (y1 y2)2. A: where the heuristic is to estimate the distance remaining via the Manhattan Distance (1)
d((x1,y1),(x2,y2)) = |x1 x2| + |y1 y2|. (2)
For any specified map, applying one of these search algorithms should either return failure, or a path from start to goal in terms of a list of cells taken. (It may be beneficial for some of these questions to return additional information about how the algorithm ran as well.) Questions: Which path finding algorithm is most useful here, and why? Bonus 1) Why were you not asked to implement UFCS?

2 Part 2: Building Hard Mazes

In the previous section, mazes were generated essentially distributing obstructions at random through the environment. Examining these mazes, you found that certain algorithms had various advantages and disadvantages. In this section, you are going to try to construct mazes that are hard for these algorithms to solve, either in terms of a) the length of the shortest path, b) total number of nodes expanded, or c) the maximum size of the fringe. One potential approach would be the following: for a given solution algorithm, generate mazes at random and solve them, and keep track of the hardest maze youve seen so far. However, this search approach necessarily does not learn from any of its past results having discovered a particularly difficult maze, it has no mechanism for using that to discover new, harder mazes. Every round starts again from scratch. One way to augment this approach would be a random walk. Generate a maze, and solve it to determine how hard it is. Then at random, add or remove an obstruction somewhere on the current maze, and solve this new configuration. If the result is harder to solve, keep this new configuration and delete the old one. Repeat this process. This has some improvements over repeatedly generating random mazes as above, but it can be improved upon still. For this part of a project, you must design a local search algorithms (other than a random walk) and implement it to try to discover hard to solve mazes. Mazes that admit no solution may be discarded, we are only interested in solvable mazes. Questions:
  1. DFS
    • Length of solution path returned
    • Total number of nodes expanded
    • Maximum size of fringe during runtime
  2. BFS
    • Length of solution path returned
    • Total number of nodes expanded
    • Maximum size of fringe during runtime
  3. A with Euclidean Distance Heuristic
    • Length of solution path returned
    • Total number of nodes expanded
    • Maximum size of fringe during runtime
  4. A with Manhattan Distance Heuristic
    • Length of solution path returned
    • Total number of nodes expanded
    • Maximum size of fringe during runtime