Skip to content

contractautomataproject/CATLib_PngConverter

Repository files navigation

CATLib and VoxLogicA toolchain for Spatial Synthesis

This repository groups experiments being performed about applying CATLib to spatial problems, e.g., synthesising a strategy enforcing spatial properties on a topological graph.

This software has been developed for to the publication "An Experimental Toolchain for Strategy Synthesis with Spatial Properties", by Davide Basile, Maurice H. ter Beek & Vincenzo Ciancia, published in the Proceeding of the 11th International Symposium on Leveraging Applications of Formal Methods, Verification and Validation, Adaptation and Learning. ISoLA 2022, Rhodes, Greece, October 22–30, 2022, Part III, https://doi.org/10.1007/978-3-031-19759-8_10

STTT Special Issue ISOLA 2022 experiments

The latest release contains the jars for reproducing the experiments of STTT SI Isola 2022 (file maze-0.0.2-SNAPSHOT-jar-with-dependencies.jar). The Python script named CATLogicA.py is available in the root of the repository.

For reproducing the experiments described in our paper submitted to STTT Special Issue of ISOLA2022 follow the instructions below.

Download a VoxLogicA release:

https://github.com/vincenzoml/VoxLogicA/releases

In the main folder of the cloned repository (CATLib_PngConverter) create a directory VoxLogicA/binaries and unzip the archive there. The tool is now ready to be used.

For reproducing the whole toolchain the script CATLogica.py is used. OpenJDK11 or a compatible version is required, python>3 is also required. It suffices to clone the repository, download the released jar in the same folder as CATLogica.py, and run the command:

python3.X ./CATLogicA.py -experiment N -specification filename.imgql -imagePath pathToImg/originalImage.png

where N is the experiment id, filename.imgql is the specification and originalImage.png is the image to analyse.

Then the commands to be run are:

python3.X ./CATLogicA.py -experiment 1 -specification specification.imgql -imagePath pathToImg/maze.png

python3.X ./CATLogicA.py -experiment 2 -specification specification.imgql -imagePath pathToImg/maze.png

python3.X ./CATLogicA.py -experiment 3 -specification railwaySpecification.imgql -imagePath pathToImg/trainExample.png

The resources (including png images) are located inside the folder /src/main/java/io/github/contractautomata/maze/twoagentsproblem/resources/.

If you are interested in solely reproducing the part of the experiments related to CATLib, OpenJDK11 or a compatible version is required (python is not required).

Download the latest jar release, and launch it with:

java -jar maze-0.0.2-SNAPSHOT-jar-with-dependencies.jar

and follow the instructions. The executable class is located under src/main/java/it/github/contractautomata/maze/twoagentsproblem/AppMazeTwoAgents_STTT_SI_ISOLA2022.java. The executable jar is equipped with an option to use the set-up of the experiments described in the paper.

ISOLA 2022 experiments

The previous release contains the jar for reproducing the experiments of Isola 2022 (file maze-0.0.1-SNAPSHOT-jar-with-dependencies.jar). For reproducing the experiments of CATLib described in our paper accepted at ISOLA2022, download the previous (May 2022) jar release, and launch it with:

java -jar maze-0.0.1-SNAPSHOT-jar-with-dependencies.jar

and follow the instructions. The executable class is located under src/main/java/it/github/contractautomata/maze/twoagentsproblem/AppMazeTwoAgents_ISOLA2022.java. The release also contains the log of reproduction of the jar with the various options. OpenJDK11 or a compatible version is required.

For running VoxLogicA, first copy the png images generated from the previous step into

src/test/java/io/github/contractautomata/maze/resources/twoagentsimages/png

Then download VoxLogicA 1.0 from here:

https://github.com/vincenzoml/VoxLogicA/releases/tag/v1.0-experimental

and unzip it into src/main/python/io.github.contractautomata.maze/VoxLogicA/binaries (create the directory VoxLogicA/binaries if it does not exist). Then run the python script src/main/python/io.github.contractautomata.maze/orchestrate.py which generates a file called cache.json. A copy of this file is shipped in the root directory of the aforementioned jar file, with path experiment2.json and can be replaced.

Video demo

A video demo created using this repository is available at https://youtu.be/08_iok6R9sw. Each frame of the video has been generated by executing the code in AppVideoComposition.java and by incrementing the bound of the call to the composition method.

All frames are stored in the folder src/test/ ... /resources/video.

Miscellanea

The JSONConverter for importing graphs of VoxLogicA encoding bitmap images has been moved into this repository. A PngConverter is also available for directly importing png images as automata, by-passing the JSon representation.

About

Example of usage of CATLib for solving multi-agent spatial problems using VoxLogica

Resources

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •