A Scriptable Planner Using Python as a Problem Definition Language

This Master's thesis project has been conducted at the ALP group of LIACS, the Leiden Institute of Advanced Computer Science. The supervisors have been drs. J. I. van Hemert and dr. W. A. Kosters. Jano van Hemert has been doing earlier reasearch on Constraint Satisfaction Problems (CSPs) and Evolutionary Algorithms (EAs). Where applicable the existing expertise about CSPs and EAs has been used in this project, so this project would fit in well with other research at the ALP group.

We built a system that tries to solve CSPs with the aid of EAs. The system is general enough to also take any other problem instance if you can define the problem with the Python language. The input for the system is a Python script that states the problem. The script contains the initial problem values and the problem goal and operators. The system is a planning system: it builds a plan using the operators to reach the goal. There is an option to find all solutions if there is more than one. If a solution is found the system outputs a Python program solving the problem and showing the solution.

We have been building a dynamic agent environment where the agents can use our planning system to perform tasks.

Implementations of this thesis are at the moment included at, the home page of the Russell and Norvig book on Artificial Intelligence.  

hosted by