HOMEWORK ASSIGNMENT #3
Wednesday, October 13, 2004
Item 1 Due: Friday, October 22, 2004 (via email)
Everything Due: Friday, October 29, 2004 (via floppy)
Due Time: 3pm
In-Class Presentations: Monday, November 1, 2004
October 15, 2004.
This assignment focuses on state space search (problem
formulation and algorithm selection).
Additionally, it will get you comfortable with WWW access and navigation
See previous assignment.
Write a Python program that will take as command
line arguments two existing URLs and will output a path of URLs from one to the
other. Make this program as robust as
possible (adapted from ).
discuss the following issues:
the search space for this problem and possible issues. What should be contained in a search
the uninformed search algorithms we have studied (breadth-first,
depth-first, uniform-cost, depth-limited, iterative deepening,
data-driven search, goal-driven search, bidirectional deepening), explain
the advantages and disadvantages of each as a potential algorithm for
solving this problem.
a search engine be used to implement a predecessor function?
the best algorithm for your implementation and justify your selection (if
not clear from (b)).
implement your solution to the problem.
Try to separate the search algorithm from the actual problem as
much as possible through abstraction (Hint: Define classes Problem, Node,
Fringe with appropriate
functions, such as Problem.isGoal(Node),
Problem.initialNode(), Problem.successors(Node), Problem.predecessors(Node), Fringe.first(), Fringe.rest(), Fringe.insert(), Fringe.isMember(Node)).
file Readme.txt describe
the contents of your submitted files, explain how to run your program, and
include special notes (e.g., limitations).
examples on how to collect links from a webpage see linklister1.py
Both make use of Python library urllib
grade will be based on documentation, design, “correctness” of result, and
presentation. This assignment
includes a presentation grade.
the naming specs carefully.
may use only up to one late day for the design part of the assignment. No late days may be used for the
You should submit your source file on a floppy disk, as per
Source filenames to be
submitted: A directory named <firstName_lastName_fourLastDigitsofSSN>_hmwk3
(for example, Bill_Manaris_2308_hmwk1). This directory should contain the following
S. and Norvig, P. (2003) “Artificial Intelligence: A Modern Approach”, 2nd
ed, Prentice Hall (problem 3.14, p. 91).