I try as much as possible to implement tools demonstrating the practical usefulness of my work. This page regroups some of these tools.
Distoplan
Distoplan (DISTributed Optimal PLANner) is a tool developed for my PhD. It is based on the theoretical results from our CDC'09 paper and it has been used for obtaining all of our experimental results on planning with message passing algorithms.
Distoplan takes as input a network of (weighted) automata and outputs an optimal plan for the corresponding planning problem (i.e. a path with minimal cost in the product of the automata) in a factored form. Instead of a plan, Distoplan can also output an updated network of automata in which this plan can be found without backtracking.
There exist several versions of Distoplan:
- Distoplan v1: This is the first version of Distoplan, used for obtaining the results from our ICAPS'10 paper. It is written in C. It uses external libraries: The OpenFst Library for manipulating weighted automata, and the parser for PDDL from Patrik Haslum's HSP* Planner. It takes as input particular (to take into account the existence of several components in the problems) PDDL files, examples can be found on Patrik's page. [Not available yet]
- Distoplan v2: This is a rewriting of Distoplan in Scala. The implementation is a bit more modular, allowing for independently modifying parts of it. The experimental results presented in my PhD thesis where obtained with an early version of this implementation. The implementation being modular I produced several tools for different purposes from it:
- Distoplan v2.1 — Standard Distoplan, but in Scala. [Not available yet]
- Distoplan v2.2 — Approximate version of Distoplan for dealing with networks of automata containing interaction cycles. This is the version that was used for obtaining the results of our WODES'12 paper. [Not available yet]
- Distoplan v2.3 — Petri net version of Distoplan, problems are modeled as Petri nets rather than networks of automata. This is the version that was used for obtaining the results of our ACSD'13 paper and our ACM TECS 2015 paper. [Not available yet]
- Distoplan v2.4 — Unweighted version of Distoplan with (minimal) model checking capabilities. This is the version that was used for obtaining the results of our VMCAI'14 paper. It uses an external library for manipulating automata: dk.brics.automaton. [Not available yet]
TARea
A small tool implemented in Haskell for understanding reachability analysis in timed automata. From a timed automaton, TARea is capable of computing various versions of the region automaton and the zone automaton. It outputs the result in a format that can be displayed using Graphviz. [tarea.tar.gz]
Sunf
Sunf (SAT UNFolder) is an unfolding tool for planning problems based on an external SAT Solver. It is known that plans can be found by fixing a time horizon and recasting planning problems as SAT problems (see Jussi Rintanen's page for example). At the price of an explosion of the size of the SAT encoding it is possible to use the same idea for building unfoldings of planning problems: trees containing all the reachable states as well as a plan for reaching each of them. Sunf implements this idea as well as a very basic SAT planner. Sunf is written in Scala. [sunf.tar.gz]
LaRA
LaRA (Lazy Reachability Analyzer) is a tool for reachability analysis in network of automata (see our CONCUR'16 paper for more information). It has been written in Haskell by Didier Lime. I wrote benchmarks generators for LaRA (and some other reachability analysis tools). The tool and generators can be dowloaded here.