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 | ... | ... |
-
Please register or login to post a comment