Some things that we'd like to add to the Planner:
- Support for other "planning" algorithms
We'd like to be able to plug-in other decision making algorithms into the Planner:
- Use a SAT solver to find combinations of Techniques that work and some method to rank them
- Better exploit node cloning to expose more choices to the Planner.
- Trust Mechanisms
- The Planner has no story for security and trust. We'd like to be able to create plug-ins for different kinds of trust systems and include trust as a factor in deciding between Techniques.
- Learning
Since the Planner may be run repeatedly in similar situations, it would be useful if the Planner could learn (and cache) what generally works and doesn't work in a particular situation. For example, if invoke the PlayJazz goal and we're at home where nothing has changed, the Planner should just be able to run a known Plan Tree rather than having to explore everything all over again.
Another example: if a Technique with given arguments always over-promises and under-delivers, the Planner should learn this and start discounting the Satisfaction value of the bad Technique. This is related to Trust Mechanisms.
- Feedback
We would like to add mechanisms so that users can modify the decisions that the Planner makes. Threre are two parts to this:
- Figuring out how to let the user see what the Planner plans to do (harder to do), and
- Letting the user change what the Planner is going to do (somewhat easier to do if we have a good way of explaining what the Planner is going to do)
- General Improvements
- Remove unused features (e.g., serially stage)
- Clean up redundant parts of the code (e.g., Property notification + nodes in the tree)
- Integrate ideas from Grace's planner3 branch. Mainly: Goal-level satisfaction formulas.