Approximate inference with cplint
This site contains supplementary material for the paper “Approximate Inference for Logic Programs with Annotated Disjunctions” submitted to ILP 2010 by Stefano Bragaglia and Fabrizio Riguzzi.
On this page you can find the instructions and files to set up the environment for approximate inference and to generate the graphs for datasets on which the experiments are run.
Preparing the environment
The approximate inference algorithms presented here are distributed with YAP Prolog in the folder packages/cplint/approx and require VIS to work properly. Yap Prolog can be found here, VIS is available here.
Details on installation can be found in the cplint manual (html, pdf).
Obtaining the approximate algorithms
The algorithms are distributed with YAP in the folder packages/cplint/approx.
Details on their use can be found in the cplint manual (html, pdf).
Alternatively you can download the approx_src.zip archive and expand its content into a folder of your choice.
The archive contains the approximate algorithms that we have implemented as well as a few additional libraries exploited by the algorithms themselves. Installation instructions are provided in INSTALL.txt file inside the approx_src.zip archive.
In particular, you will find:
- deepit.pl (for iterative deepening),
- deepdyn.pl (for dynamic iterative deepening),
- bestk.pl (for k-Best),
- bestfirst.pl (for best first),
- montecarlo.pl (for Monte Carlo).
Running the experiments
Our approximate inference algorithms have been throughly tested on several datasets.
The biological networks were kindly provided by Angelika Kimmig while the UWCSE dataset can be found here.
Lanes, Branches and Parachutes are original artificial datasets that can be generated by running Prolog programs.
Such datasets are built iteratively by adding a new complex path between two terminal nodes ad each step.
In the case of those datasets, the goal is to determine the probability that a path exists between the ending nodes.
The graphs_src.zip contains both the generating programs and the launching scripts for each artificial dataset.
In order to let those scripts run suitably, the following steps should be accomplished:
- rename the folder with approximate inference source files to sources,
- expand the aforementioned archive into a sources’ sibling folder of your choice,
- run the generator.pl program in each dataset’s subfolder,
- edit the exec_*.sh scripts to adjust their parameters to your needs and launch them to create test programs,
- launch the comm_*.cmd scripts in each dataset’s subfolder to actually run the experiments.
Once the execution is over, times_*.csv files contain experimental evidence of approximate algoritms’ performances in terms of time required to perform resolution, BDDs computed to produce approximate probability of queries, resulting approximate probability values and so on.
Stefano Bragaglia and Fabrizio Riguzzi. Approximate inference for logic programs with annotated disjunctions. In Paolo Frasconi and Francesca Lisi, editors, Inductive Logic Programming 20th International Conference, ILP 2010, Florence, Italy, June 27-30, 2010. Revised Papers, volume 6489 of LNCS, pages 30-37, Heidelberg, Germany, 2011. © Springer, Springer. The original publication is available at http://www.springerlink.com. [ bib | DOI | .pdf | http ]