Class Project
Dates:
March 11: Project Proposal Due
March 13: Feedback on Project Proposal
April 3: Midterm Reports Due
April 15: Projects Due
Projects can be done individually or in teams of two but team projects
have to be more substantial than individual ones. Projects should extend
existing planning techniques but you might also be able to talk us into
applying them in a substantial way. Please feel highly encouraged to come
up with a project on your own that relates to your interests and uses techniques
that we discussed in class, but below are some sample projects to give
you a feel for what we are looking for. (All of the projects are true research
projects in that you can spend an arbitrary amount of time on them and
perhaps publish them if you have a tremendously good idea.)
Your project proposal should outline a) what you want to do, b) why
this is interesting. c) how you want to do it, and d) how you want to test
your ideas. The project proposal of a team should also state how the work
will be divided among the team members.
You final project report should describe in detail a) what you did,
b) why this is interesting, c) how you did it, d) how you tested your ideas,
and - most importantly - e) which insights you gained. The description
should explain your ideas, implementations, and experimental setup in sufficient
detail to enable others to re-implement your idea. You should explain your
insights in sufficient detail to enable other to understand a) what worked,
b) what did not work, and - most importantly - c) why you believe something
worked or did not work. (For example, depending on your project, you could
compare your planner to a similar existing planner and experimentally characterize
precisely which properties domains must have in order for your planner
to outperform the traditional one and then try to argue why these properties
benefit your planner.)
Comparing D* and D* Lite
D* and D* Lite behave in a similar but not identical way. Implement them
and verify the previous results on the number of vertices they expand and
extend the previous results with timing information. Study experimentally
or analytically (by studying their pseudo code) when one of them expands
a vertex that they other one does not. Can one say that D* and D* Lite
are versions of exactly the same base algorithm but optimize it differently?
Starting point: - http://www.cc.gatech.edu/fac/Sven.Koenig/greedyonline/papers/tr2002-3.ps.gz
Comparing LRTA* and D* (or D* Lite)
LRTA* and D* (or D* Lite) can both be used to move a robot in initially
unknown terrain to given goal coordinates. One can expect that LRTA* has
a smaller run time while D* has a smaller travel distance. Implement them
and study this trade-off experimentally. Then, investigate ideas for speeding
up LRTA* (by making its search re-use results from previous searches) and
decreasing its travel distance (for example, by making the search horizon
adaptive).
Starting points: - http://www.cc.gatech.edu/fac/Sven.Koenig/greedyonline/papers/tr2002-3.ps.gz
- R. Korf, Real-time heuristic search, Artificial Intelligence, 42 (1990),
pp. 189--211.
Making Graphplan Incremental
Graphplan is an off-line planning method that produces plans for given
planning problems. Define a nontrivial class of re-planning problems, for
example, one where the available operators change slowly over time. Then
investigate methods for speeding up Graphplan by reusing information from
previous searches. Implement them and characterize experimentally under
which conditions your incremental version of Graphplan is faster than the
original one and by how much. Can you improve on the ideas by Gerevini
and Serina?
Starting points: Alfonso Gerevini, Ivan Serina: Fast Plan Adaptation
through Planning Graphs: Local and Systematic Search Techniques. AIPS 2000:
112-121
Something Old, Something New
Think of _one_ particular way of changing one of the modern planners (such
as Graphplan, SATPlan, or HSP) so that it exploits the structure of planning
problems more than it currently does. Alternatively, think of _one_ particular
way of changing one of the more classical planners (such as UCPOP) to improve
its search strategy. Implement your idea and characterize experimentally
under which conditions your planner is faster than the original one and
by how much.
A* with BDDs
Implement A* with BDDs, for example SetA*. Characterize experimentally
how different state representations affect the runtime of your implementation.
Improve the runtime of your implementation for several typical search domains
based on these insights and other ideas that you might have (for example,
switching to Epsilon-A*). Then, compare your implementation to a regular
implementation of A* and characterize whether and when A* with BDDs outperforms
A*. Can you improve on the ideas by Jensen et al.?
Starting Points: SetA*: An efficient BDD-Based Heuristic Search Algorithm,
R.M. Jensen, R.E. Bryant and M.M. Veloso, In Proceedings of 18th National
Conference on Artificial Intelligence (AAAI'02), Pages 668-673, 2002.