Artifact for "Partial Order Reduction for Reachability Games"
Creators
- 1. Aalborg University
Description
An updated artifact for the paper "Partial Order Reduction for Reachability Games", accepted at CONCUR'19 with the corrections, models and modifications added for the later LMCS journal version.
The source-code for the engine is found in the "verifypn-games.zip" file while the experiments and scripts to execute those are found in "reproducability.zip".
Code
The implementation reuses the general framework of partial order reduction applied in https://doi.org/10.1016/j.jlamp.2018.09.002
The core reduction algorithm is implemented in a (semantically equivalent and) efficient manner in PetriEngine/ReducingSuccessorGenerator.cpp
Here the "prepare"-method implements the equivalent of the "St"-function of the paper (Algorithm 2), the "closure"-method implements the "Saturate"-function (Algorithm 3).
Repeatability
The repeatability-package is only available on Linux.
To run the experiments as per the paper, run:
./run_POR.sh games-260 ; ./run_NPOR.sh games-260
Outputs will be generated in the "outputs" folder, and a Tex-table can be outputted by
./extract.sh games-260
Notice that we have pre-populated the outputs-folder with the results reported in the paper.
The execution-scripts will NOT overwrite existing output files, and thus the outputs folder should be purged prior to a re-run of the experiments.
To use a different executor (for instance sbatch on a slurm-enabled cluster for concurrent execution of the experiments), the run-commands can be prefixed as such:
EXECUTOR=sbatch ./run_POR.sh games-260
The included binary is revision 260 of https://code.launchpad.net/~verifypn-cpn/verifypn/verifypn-games
To limit the memory-consumption of each experiment, modify "run.sh" and change the "ulimit" memory-bound to the desired value.
A "timeout"-command can also be added here to introduce a time-limit of the execution (we utilize slurm for this purpose).
Notice that we measure and report the computation time excluding parsing; i.e. we report the fix-point computation-time as computed by the engine directly.
Changes
Since the conference version (https://doi.org/10.5281/zenodo.3252104), the following changes have been made.
Models:
- FMS-{D,C,N} have been added
- Unneeded files have been removed
Data Collection
- Fixed collection of measures
Engine (r.260, originally r.247):
- Fixed uninitialized variable, leading to non-deterministic heuristic of stubborn set
- Removed redundant cycle-detection
- Fixed output of measures to correspond with normal interpretation (Stored markings are now reported and collected)
- Fixed wrong assignment in dependency-graph
- Added patch for theoretical issue with POR-reduction
The prepopulated results have been recomputed since https://zenodo.org/record/3574262 as the original prepopulated results were conducted, in few and isolated experiments, on different models than those included in the package.
Files
reproducability.zip
Files
(354.3 MB)
Name | Size | Download all |
---|---|---|
md5:cfdb70068766785dd2d1ca360df924d0
|
350.3 MB | Preview Download |
md5:0988e6050270ce368a19016dd9f55b1b
|
4.0 MB | Preview Download |