Research

Action planning is the study of how an intelligent agent can formulate a plan of actions to achieve a set of goals. For example, when the robot Wall-e is asked to fetch a drink from the local store, it internally formulates a plan of actions to go to the store, buy a drink, return back and give the drink to the master. Technologies related to action planning are used, for example, by NASA to implement autonomous rovers and satellites. 

In our lab, we are building a rich-world, real-time, dynamic planning system. Our approach is domain-independent but extensible with domain-dependent heuristics. These features are important:
  • Rich-world: helps us solve expressive real-world problems.
  • Real-time, dynamic: are necessary for planning to work in the real world.
  • Domain-independent: as planning is used more and more, people are likely to notice that each problem differs a little from the previous one, thus general solvers will be preferred.
The first domain application of our planning system would be in automated story generation for optimized player experience in games, as another project in an associated lab. While the player is playing a scene, the next scene is generated.

The present work is about utilizing the resources of the now ubiquitous parallel multicore computers for faster heuristic search for planning. The future multicore computers will have 100-1000s of cores on a single machine. We have formulated an architecture of planning amenable to parallelization. We evaluated several parallelization strategies at different granularity levels. The best combination of these parallelizations would depend on the state of the search process. In our future work, these parallelization strategies will be automatically and dynamically combined to achieve the best configuration for the problem domain, the solution strategy and the hardware.

Publications

Please see here for my publications.

Software

Action Planning. In our lab, we are building an AI Planning System called Crackpot based on iterative repair. It features real-time optimization and revision, auto-scaling on parallel architectures, and handles temporal reasoning, resources, and an open, complex planning world. Crackpot is implemented in C++. Please see here for more details.

Heuristic Selection Framework. This C++ framework can be used to write an adaptive search process that takes into account the time, the number of processing cores in the modern multicore computers and other resources available for search. Please see here for more details.

Areas of Interest

  • AI Planning
  • Machine Learning
  • Parallel Computing