Example initial configuration:
|
|
||||||||
|
|

You may write your agent from scratch or utilize the objects in the code repository provided with the textbook. Once again, it is a good idea to utilize the pseudocode in the book to help design your agent. If you use the step names in the book such as ExpandNode and QueueingFunction, it will be easy to extend your agent with new capabilities. Your program will be graded on whether it accepts input in the specified format and writes output in the format below that is appropriate to the testing file we use. We will not grade your programming style or design skills.
We will test your program on the CSE dept unix computers, so make sure that the program you turn in is built to run on Solaris. As in the first assignment, turn in either source + the executable, or just source for interpreted languages.
Your job is to design four different agents (which will differ slightly).
The "-s A" means that you start from point A; you should be sure that you can start from any point on the map. The agent will always be trying to reach the point "Base".
Cost function: in a traditional path-planning problem, the cost may be
the distance travelled; in this case you will want to incorporate
information about the number of samples collected. For every link to
a non-goal node, the cost should be the link distance. However, for links into the goal node, the cost should be:
link distance + 100 * (3 - #ofSamplesCollected)
A* search: for the heuristic function, use the straight-line distance between the node and the base.
Your program should output information about both the search progress and the solution found using breadth-first search, depth-first search, uniform-cost search, and A* search. Your program will earn 10 points for each technique implemented. For each search type, and for every search step, output each search node that is taken off the queue, it's priority number (i.e, depth in BFS/DFS, cost in UCS, f-cost in A*) and the name of the next state on the queue. At the conclusion of the search, output the sequence of states traversed to get from the start to the end city, the distance in kilometers of the path found, and the total number of nodes enqueued. The distances between points and possible operations from each point is already in the data file located here . The format of this file is:
Node,Sample#,XCoordinate,YCoordinate,NeighborNode1,Distance1,NeighborNode2,Distance2,...
- Please only submit things he can print from unix (pdf or txt files). If you can't do that, print out a hard copy and put it in Prof. Fosler-Lussier's mailbox (behind 395 Dreese) - If you choose to print out, then you need to do one of two things: A) Get it in Dr. F's mailbox by 5 pm. B) Put it in Dr. F's mailbox tomorrow, but submit the files online in addition so that they are timestampped. This will only apply to this homework because the message is coming out late. In future homeworks, you'll only be able to get paper submissions in by 5pm. - Submit one file for all written answers, not a separate file for each. -1 File if possible for individual programs. It is possible to have multiple classes in C/C++ and Java without making me hunt for them. -No sub folders please. -Please include source codes only. This goes for MAKE scripts too, as I have to make sure you aren't pulling source code from somewhere else. Instructions for compile/parsing should be a command or set of commands. -If you feel it necessary to include the compiled version of your code, please make sure that you include the source code with it.Write up all of your answers to the questions (1 through 5) in a text editor so that it can be submitted electronically. Put all of the files you want to submit (answers to the questions plus your code for part 2 and extra credit), and ONLY those files, in a directory on STDSUN, and use the submit command to send the files to the grader. The syntax of the submit command is:
> submit c630aa lab2 (lab2_dir)
Where lab2_dir is the directory containing the files you want to submit. You can learn about using the submit command by typing man submit at a unix command prompt. If you cannot get the submit command to work, you can email your files to the grader, but please don't use this option unless you're having trouble with submit.