I'm currently working on a tutorial for ASAP, the tool I'm working on at work. The tutorial is a mixture of slides and video demonstrations. You can see the four videos, I've currently done below:
Time person of the year 2006, Nobel Peace Prize winner 2012.
Hi Prof. Westergaard,
first of all I would like to appreciate your tutorials. Really, they are very beneficial for me. I am analyzing my CPN model using ASAP. I appreciate if you help me to implement the following function in ASAP. Its purpose is to verify whether dead markings of my model are terminal marking, i.e. the model terminated successfully.
fun Terminal (n)=
((Mark.Protocol’Plc1 1 n)==empty)
andalso
(List.length(Mark.Protocol’Plc2 1 n)=1)
andalso
((Mark.Protocol’Plc3 1 n)==1`5);
Thank you in advance,
Usama
Hi Usama,
You’re using the CPN Tools syntax, which was never implemented in ASAP. ASAP uses a slightly simpler syntax as indicated in our paper “Two Interfaces to the CPN Tools Simulator” (available from https://westergaard.eu/cv/publications/under workshop papers). I think it’s also introduced in the Petri nets 2010 tutorial available from the same page under slides.
With that said, I’d advise against using ASAP for new work as it is not maintained anymore. The code is still available in CPN Tools 3 and newer, but takes more effort to use. The normal state-space tool is most likely a better option, even though it is slower and doesn’t handle as large state-spaces.