To prevent spam users, you can only post on this forum after registration, which is by invitation. If you want to post on the forum, please send me a mail (h DOT m DOT w DOT verbeek AT tue DOT nl) and I'll send you an invitation in return for an account.

Meet a problem when I use CNetReplayer

syjing628
edited July 2019 in - Development
Dear,

Recently, I performed conformance checking on a CNet.

I construct the CNet based on N1 in page 248 of the book "Process Mining: Data Science in Action".
After that, I invoke CNetReplayerWithILP and replay a log on the CNet. The log is from page 247.

However, the fitness is only 0.099. Can anybody tell me where is wrong?

I attach the CNet as well as the mapping of numbers and symbols.

Regards.

----------------------------------------CNet----------------------------------

Element 0:            In: [[9]]               Out: [[3],[1,2]]

Element 1:            In: [[0,6]]            Out: [[4]]

Element 2:            In: [[0,6]]            Out: [[4]]

Element 3:            In: [[0,6]]            Out: [[4]]

Element 4:            In: [[3],[1,2]]       Out: [[6,7,8]]

Element 5:            In: [[7,8]]            Out: []

Element 6:            In: [[4]]               Out: [[3],[1,2]]

Element 7:            In: [[4]]               Out: [[5]]

Element 8:            In: [[4]]               Out: [[5]]

Element 9:            In: []                   Out: [[0]]

-----------------------------------------Mapping-------------------------------

0 : a

1 : b

2 : c

3 : d

4 : e

5 : end

6 : f

7 : g

8 : h

9 : start


Answers

  • Hi,

    I think the problem is with the "[[0,6]]" for elements 1, 2, and 3. I think this should be "[[0],[6]]". For example, b can occur after a (0) or f (6) has occurred, but the CNet above requires a and f.

    Kind regards,
    Eric.
  • Hi Eric,

    Many thanks for your reply.

    In the paper "Genetic Process Mining: An Experimental Evaluation", it indicates that:

     "Tasks in a same subset have an XOR-split/join relation. Sets in different subsets have an AND-split/join relation."

    I think "[[0,6]]" means b occur after a or f, i.e. b just needs one token from a or f. "[[0],[6]]" means b requires two tokens from a and f.

    Is it wrong?

    Kind regards,
    Si-Yuan
  • Hi,

    I do not know what is exactly meant with [[0,6]] in your output. I considered it to be a binding (see the book you referred to earlier on page 73), which would mean both 0 and 6. Perhaps a graphical representation of your CNet might help here.

    Kind regards,
    Eric.
  • Hi Eric,

    Yes, it is a binding. "[0,6]" is the input binding of element 1, 2, 3.

    I manually construct the CNet according to the graph N1 in page 248.

    I have tested "[[0],[6]]" and the fitness is 1.0

    But I am still confused. Tasks in a same subset have an XOR-split/join relation and sets in different subsets have an AND-split/join relation. In my understanding, "[[0,6]]" means a and f have an XOR-split/join relation, and "[[0],[6]]" means and f have an AND-split/join relation.

    Kind regards. 
    Si-Yuan
  • Hi Si-Yuan,

    The paper "Genetic Process Mining: An Experimental Evaluation" talks about Causal Matrices, not Causal Nets. Indeed, these subsets are different. The bindings in Causal Nets are more expressive than the subsets in the Causal Matrix. As an example, with bindings one can model something like [[0],[0,1],[1]], which you cannot do in a Causal Matrix (as you have to pick on element from every subset, the number of picked elements is always the same).

    Kind regards,
    Eric.

  • Hi Eric,

    Yes, the causal matrice is different with casual net.
    Thank you again your help and kindness.

    By the way, can you tell me how to export a petri net to a disk file by programming? Sometimes, I need to analyze a petri net offline.

    Kind regards,
    Si-Yuan
  • Hi Si-Yuan,

    You can call the PNML exporter directly:

    PluginContext context; // A valid ProM plug-in context
    Petrinet net; // The Petri net you want to export
    File file; // The file you want the Petri net exported into.

    PnmlExportNetToPNML exporter = new PnmlExportNetToPNML();
    exporter.exportPetriNetToPNMLFile(context, net, file);

    Kind regards,
    Eric.

  • Hi Eric,

    Thank you!

    Kind regards,
    Si-Yuan Jing
Sign In or Register to comment.