CS 57100: Artificial Intelligence

Assignment 2: Search

Due 11:59pmEDT Tuesday, 13 September 2022

Please turn in a PDF through Gradescope. You'll need to access Gradescope through Brightspace the first time (to register you for the course in Gradescope.) Gradescope is pretty self-explanatory, ITaP provides these instructions. Make sure that you mark the start/end of each question in Gradescope. Assignments will be graded based on what you mark as the start/end of each question. Please typeset your answers (LaTex/Word/OpenOffice/etc.)

1. Search Strategies

Given the following state/event/cost graph, where X is the initial state, and Y1, Y2, and Y3 are solution states:

State Graph
  1. Draw the first three levels of the corresponding search tree, starting at xxx. You may limit each node to four branches, if there are more just indicate there are more.
  2. What is the branching factor b, solution depth d, and maximum tree depth m?
  3. Complete the following table, giving the actual costs and solution found for a sample run of the algorithm rather than in terms of b, d, and m. If different from the worst-case costs or expectations of completeness/optimality, briefly explain why.
    Time (steps)Space (nodes)Solution found?Optimal solution found?
    Depth-First Search
    Breadth-First Search
    Iterative Depth-First Search
    Uniform Cost Search
    Dynamic Programming
    Greedy Search
    A* Search
    Hill-climbing search
    What assumptions did you have to make to compute the above?

2. Heuristic Search

Give a situation where a heuristic search would likely be better than approaches guaranteed to give an optimal solution. Explain why it would be better. Your explanation should cover at least:

3. Locally optimal search

Give a situation where locally optimal search would likely be better than globally optimal approaches. Explain why it would be better. Your explanation should cover at least:

4. Continuous search

One way to solve a continuous search problem is to discretize the problem and use a state-based (discrete) search such as A*. But this isn't necessarily the best way.

  1. Come up with a problem (other than the one in the book) where there is a significantly better solution than discretizing/search (for the solution, you are welcome to use something from the book.) Explain why your solution is better for that problem.
  2. Is there a situation where discretizing/search would completely fail, by giving a result that is far from optimal? If so, would the approach you describe in part 1 do better? Explain.

5. Search Problems

You have been asked to develop an AI advising assistant to help undergraduates plan their course schedules. The goal is to select courses so that a student completes their degree. Assume there are certain constraints, such as taking at most five classes per semester. Model this as a planning/search problem.

  1. Give three examples of states in your planning model.
  2. What would constitute an action in your planning?
  3. Construct an sample of the graph showing states and state transitions. You should have at least five states. Label costs, and describe briefly how you determine the costs.
  4. Give estimates for the search tree size (branching factor, etc.) as you've defined the problem.
  5. Would a depth-first search be complete for your problem? What about breadth-first?
  6. What would constitute an optimal solution?
  7. Name a search strategy that would find an optimal cost solution, and one that would be efficient in finding a solution. Which would be more appropriate and why?
  8. Would an informed cost strategy (e.g., greedy or A* search) be appropriate for your problem? Briefly explain.

Valid XHTML 1.1