|
|
|
![]() WHAT IS TIM?TIM (Fox and Long, 1998) is a fully automatic system for analysing planning domains and problems. The analysis performed by TIM can give planners information about the structure of the domain that can then be used to aid plan construction. The domain description and problem instance files must be specified in standard PDDL (see link for manual).TIM's analysis of a planning domain is based on the automatic inference of a type hierarchy implicit within the domain description. The identified types then serve as a basis for analysing various aspects of the domain, and providing the user with information to which they would otherwise have no access. Each object in the domain is assigned a type, on the basis of the transitions they can undertake and the states that they can enter. Objects which can enter an identical set of states and be party to identical sets of operations are grouped as one type. TIM allows some objects to be grouped together that are functionally indistinguishable - these objects are refered to as symmetric and this information can be used to eliminate redundant branches in a search space. Once TIM has identified the type structure of the domain it also constructs a collection of associated spaces that correspond to particular behaviours of collections of objects. These spaces can be used to generate invariants and other information about the logical structure and behaviour of a domain and the objects in it. In addition, TIM carries out an examination of the structures in search of patterns that are associated with generic forms of behaviour. These lead to the construction of generic types, which represent one of the most powerful forms of analysis TIM carries out. Generic types include objects that are mobile, portable, different sub-types of mobile objects, construction and resource types. Other generic types are currently being explored. The information that is extracted by TIM can supply information to planners working with the domain that can reduce the size of the search space or aid in navigating through choices during the plan construction process. Examples of the use of TIM have been developed in STAN, the Durham Planning Group planner. It can also be used as a debugging aid for domain construction; the structure uncovered by the TIM analysis can identify conclusions drawn from the domain that conflict with the conceptual view of the domain structure. THE APIThe API provided for the TIM system provides access to the information gained from TIM's analysis. The API has three levels of access, each level consisting of a set of functions and data types that allow access to particular structural information about the domain. The three levels of access are Basic, Logical and Generic. The Generic access level has not yet been developed. The other levels have been supported with an initial collection of functions, but will be extended as time permits. If particular features interest you then contact us and we will attempt to add them.You can find the API to download at the Support page. BasicThis level of access provides information about the basic type structure within the domain. Information about the relationships between domain objects and their position (as an argument) in predicates can be extracted at this level, which can provide insights such as revealing which sets of objects operators can be applied to. This information can be used, for example, to aid in efficient instantiation of operators.LogicalThis level of access provides information about the logical structure of the domain. Information about logical relationships between objects in known states can be extracted at this level, which can show, for example, whether two literals can occur simultaneously in the domain.C/C++ ACCESSThe API currently supports both C and C++ versions of each access level. The default links are to the C++ versions of functions and type declarations, but the C versions of the three access levels can be found by going to:
Note that in the C version, the garbage collection is not taken care of automatically in the case of the GLib structures. In particular, users should be aware that they will have to explicitly free the memory used by a GSList, e.g.:
TIMProperties ps;
...
g_slist_free(ps);
(full details can be found at the strings, C++ classes or STL classes. A note on strings and namesAll strings (or char* in the C version) are lower case. This means that TIM references every domain object, operator and predicate with a lower case version of its name, as specified in the domain description file. This should not cause any name clash problems, as PDDL is not case sensitive and as such should not contain names that differ only in case. However, it does mean that users who wish to invoke TIM API calls using strings are converted prior to the call.Glossary Support Basic level access Logical level access |
![[Strathclyde Planning Group]](images/spg-logo.gif)
![[University of Strathclyde]](images/strath-logo.gif)
![[Department of Computer and Information Sciences]](images/cis-logo.gif)


