CS5811: Homework 2

HANDS-ON SEARCH ALGORITHMS

Assigned: Friday, September 21, 2012.
Due: Friday, September 28, 2012, 11:59pm.

Overview:

  1. The objective of this assignment is to become familiar with the AIMA textbook's search framework and its implementation.
  2. This is an individual assignment. All the work should be the author's in accordance with the university academic integrity policies. You are not allowed to work in groups. However, you are allowed to get help on Java from the Learning Center.
  3. In this assignment you'll make use of Java code provided by the authors of your textbook (you may consult the code in other languages).

    The AIMA online code repository is located at:
       http://aima.cs.berkeley.edu/code.html.
    Additional information is available at:
       http://aima-java.googlecode.com/svn/wiki/GettingStarted.wiki.

    To build the library, type "ant" at the aima-code directory. It takes about 2 minutes to complete.
    To run the gui based programs, type "ant aima-gui.run" at the aima-gui directory.

Task:

  1. To run a sample 8-puzzle search, click on Applications. Select aima.gui.applications.search.games and select EightPuzzleApp. From the next set of menus that appear, select Three Moves and Breadth First Search (graph search). When you click on run, you will see an output as the following:

      <simulation-log>
      Action[name==Up]
      Action[name==Left]
      Action[name==Left]
      
      pathCost : 3.0
      nodesExpanded : 5
      queueSize : 4
      maxQueueSize : 5
      </simulation-log>
    
  2. Modify the code such that the number of nodes generated is also printed. Try it with other eight puzzle problems and search techniques. Submit a brief pdf report of the changes you have made and only the files you have modified. The program modifications should be clearly marked in the source. We should be able to replace the original files with the files you provided and verify the program.