2 thoughts on “Tutorial on ASAP

  1. 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)
    (List.length(Mark.Protocol’Plc2 1 n)=1)
    ((Mark.Protocol’Plc3 1 n)==1`5);

    Thank you in advance,

    1. 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.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.