Johan ARCILE

Update README.md

Showing 1 changed file with 51 additions and 1 deletions
1 -Coming soon
...\ No newline at end of file ...\ No newline at end of file
1 +# MAPTs
2 +
3 +MAPTs (Multi-Agent with timed periodic tasks) are a class of models dedicated to the representation of real-time systems of cooperative agents.
4 +Their state spaces can be dynamically explored to check CTL properties.
5 +
6 +## Zinc compiler
7 +
8 +MAPTS models can be translated into high level Petri nets for an implementation with the academic tool Zinc.
9 +Explorations algorithms have been implemented using the functions provided by this compiler.
10 +Zinc can be downloaded from https://github.com/fpom/zinc
11 +
12 +## Models
13 +
14 +The models provided in the repository "Models" represents three communicating autonomous vehicles an a highway portion.
15 +They use different decision making protocols and their state is define by a large number of variables.
16 +These models are use in the report ... (link to do).
17 +
18 +## Checker
19 +
20 +The file "checker.py" features various explorations algorithms and boolean propostions along with their associated heuristic functions.
21 +To try these functions on the provided models, first install Zinc in a local repository.
22 +Then, copy in the same repository the contents of one of the chosen model ("libsverifcar.py" and "verifcar.py") and the file "checker.py".
23 +libsverifcar.py defines constants while verifcar.py implement the high level Petri net.
24 +First, the model should be compiled.
25 +Open a terminal and use:
26 +
27 + python3 verifcar.py
28 +
29 +This will create a file name "netverifcar.py", which the functions in "checker.py" will be able to explore.
30 +Then enter the python3 environnement with the command:
31 +
32 + python3
33 +
34 +From the python3 environnement, you can now import "checker.py" and use the explorations algorithms.
35 +Here is an example where the query EF travel\_time\_A ≥ 15.9 is checked.
36 +
37 + >>> import checker
38 + >>> checker.exist_state(checker.travel_time_i_sup_n,checker.heuristic_hestimate_travel_time,(0,158))
39 +
40 +The function exist\_state is used with the boolean proposition travel\_time\_i\_sup\_n and its associated heuristic function heuristic\_hestimate\_travel\_time.
41 +0 is the identifier of the vehicle and 158 is the excluded lower bound for the proposition to be true.
42 +
43 +Here is another example where the query EF ttc\_A\_B ≤ 0 is checked.
44 +
45 + >>> import checker
46 + >>> checker.exist_state(checker.ttc_i_j_inf_n,checker.time_to_overtake_i_j_inv,(0,1,1))
47 +
48 +The function exist\_state is used with the boolean proposition ttc\_i\_j\_inf\_n(0,1,1) and its associated heuristic function time\_to\_overtake\_i\_j\_inv.
49 +0 and 1 are the identifiers of the vehicles and 1 is the excluded upper bound for the proposition to be true.
50 +
51 +
...\ No newline at end of file ...\ No newline at end of file
......