Petri-Net Assignment
|
Practical Information
GoalsIn this assignment, you will learn how Petri-Nets can be used to do safety analysis. You will learn how they can be built, as well as how state-space exploration can be done by means of a CTL query language. This solution is to be made with TAPAAL. Make sure to clearly indicate which files implement which models in your report. This assignment expands on the PRT case from previous assignments. Carefully read and understand the full assignment before starting your solution! Problem StatementThe figure below gives an example of a small PRT map with 6 stations (circles) and 3 lights (squares with the letter "L"). The arrows represent the direction in which the rail should be followed. Note that each station is reachable from every other station (i.e., you can drive in an "8"-shape). An "X" identifies that there is currently a trolley in that station. We would like to analyze the safety of this railroad, for which we will use Petri-Nets. For simplicity reasons, the notion of a "track" is introduced. A track is a simple railway segment over which a single trolly can ride. If two trolleys find themselves on a single track, we will assume they have collided. This allows us to simplify the above figure in terms of tracks: each station and light will be represented by a simple track. In total you should get 9 tracks.
We can simulate this system by defining a "clock". Every time this clock "ticks", the following events occur:
To construct a Petri-Net of the given rail network, you will use TAPAAL and its features. When creating a model, it is not allowed to use time or game semantics. In other words, you are only allowed to use Places, Transitions, (Inhibitor) Arcs and Tokens. Make sure to check that "timed" and "game" are set to "No" in the bottom-right corner of the GUI. When creating a new model, you can select this as well from the pop-up modal.
You can (and should) make use of Global Constants for arc weights. Additionally, you are required to use multiple components to describe your system. Each component should contain a representative subset of the system you are building, but make sure to not overdo this (i.e., do not create a component for every track). This allows you to maintain an overview, whilst also creating much cleaner nets. Use Shared Places to define interactions between multiple components. TasksYou will need to perform the following tasks step by step. Store (and submit) a copy of your model after each finished (sub-)task.
Take pride in your work. Make sure your report and all models and images are clearly readable. In TAPAAL, you can make use of annotations to identify sections of your models. You will not lose points for doing too much, but you will lose points if you do too little. Practical Issues
|
Maintained by Hans Vangheluwe. | Last Modified: 2022/08/29 00:29:58. |