Closed ppfeiff closed 1 year ago
Dear @ppfeiff
There is indeed an undeterminism in the "activity concurrent" fallthrough. We will provide the possibility to disable such fallthroughs in a future release.
Hi @fit-alessandro-berti thanks! Is this also the explanation for the differences between python versions?
That, or pm4py version differences could also play a role (assure that everything is running under 2.7.6)
We were testing with pm4py version 2.7.4
Dear @ppfeiff
This seems indeed a problem related to the fallthroughs. You can find how to disable the fallthroughs detection in the inductive miner in the following example:
import pm4py
from pm4py.algo.discovery.inductive import algorithm as inductive_miner
if name == "main":
log = pm4py.read_xes("disc_ppa.xes", return_legacy_log_object=True)
process_tree = inductive_miner.apply(log, parameters={"disable_fallthroughs": True})
print(process_tree)
print(len(str(process_tree)))
Hi,
thanks for implementing! Unfortunately, we still have the same issue. There are still two differences in the petri nets on pm4py 2.7.7 and python 3.11. One is shown below where we once have a AND and once a XOR between t1 and t2.
In the other situation later in the net there are two different constructs of silent transitions pattern.
Dear @ppfeiff
It is always going to be undetermistic with the fallthroughs. If you would like a more stable model, you shall disable the fallthroughs of the inductive miner as in the example.
Hi,
we just double checked it. We definitely have set disable_fallthoughs to True, the petri net as well as the process tree look a bit different now. But there are still the differences as mentioned in the previous post.
Hi @fit-alessandro-berti, I cannot reopen this issue but the problem still exists (see previous post with figures), although the fallthoughs have been disabled.
Hi, we have found that the inductive miner implemented in pm4py discovers different models for the very same input, depending on the python version. Furthermore, it seems not to be completely deterministic: Using the same python version one can get different results from different runs.
We always used the MobIS event log. The pm4py command used to mine the model is the following:
For example, using python 3.9 one gets the follwoing petri net
and with version 3.11 the following one
On 3.11 (as well as 3.9) when running the discovery multiple times, one can get two different models which are slightly different in terms of silent transitions, e.g. this one in addition to the previous one
Since we were not able to find a explanation in the original paper we suspect that this behaviour is not intended? Some more information would be helpful.
Attached the log: disc_ppa.zip
Thank you!