Skip to main content
Log in

Discovering petri nets including silent transitions. A repairing approach based on structural patterns

  • Published:
Discrete Event Dynamic Systems Aims and scope Submit manuscript

This article has been updated

Abstract

The paper presents a novel approach for discovering Petri nets (PN) that include silent transitions from logs of event sequences. We propose a repairing method that extends existing discovery techniques that do not deal with silent transitions; such techniques may yield substructures that involve deadlocks. Such substructures, called inconsistent (IS), are detected through a structural pattern. IS are rewritten by adding new transitions labelled with event symbols already assigned to transitions in IS; the rewritten model has no deadlocks. Afterwards, the PN with duplicated event labels is transformed into an equivalent model with silent transitions. The algorithms derived from the technique, which have polynomial-time complexity, have been implemented and tested on examples of diverse structures.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10
Fig. 11
Fig. 12
Fig. 13
Fig. 14
Fig. 15
Fig. 16
Fig. 17
Fig. 18
Fig. 19

Similar content being viewed by others

Change history

  • 02 March 2022

    The original version of this paper was updated to fix the numbering of the section headings.

References

  • Alvarez-Pérez Y, López-Mellado E (2020) Identifying petri nets with silent transitions by event traces classification. IFAC 15th international workshop on discrete event systems, Rio de Janeiro, Brazil. November 2020. IFAC-PapersOnLine

  • Gansner ER, North SC (2000) An open graph visualization system and its applications to software engineering. Software: Practice and Experience. 30(11):1203–1233. https://graphviz.org

  • Cabasino MP, Giua A, Seatzu C (2007) Identification of petri nets from knowledge of their languages. Discrete Event Dyn Syst 17(4):447–474, December

    Article  MathSciNet  Google Scholar 

  • Cabasino M, Darondeau P, Fanti M, Seatzu C (2015) Model identification and synthesis ofdiscrete-event systems, chapter 10. In: Zhou M, Li H, Weijnen M (eds) Contemporary Issues in Systems Science and Engineering. IEEE/Wiley Press Book Series

  • Dingle NJ, Knottenbelt WJ, Suto T (2009) PIPE2: a tool for the performance evaluation of generalised stochastic petri nets. ACM SIGMETRICS Perform Eval Rev 36(4):34–39

    Article  Google Scholar 

  • Dotoli M, Fanti MP, Mangini AM, Ukovich W (2011) Identification of the unobservable behaviour of industrial automation systems by petri nets. Control Eng Pract 19(9):958–966

    Article  Google Scholar 

  • Estrada-Vargas A, Lopez-Mellado E, Lesage J-J (2010) A Comparative Analysis of Recent Identification Approaches for Discrete-Event Systems. Math Probl Eng 2010:1–21

    Article  MathSciNet  Google Scholar 

  • Estrada-Vargas A, Lopez-Mellado E, Lesage J-J (2017) A Black-Box Identification Method for Automated Discrete-Event Systems. IEEE Trans Autom Sci Eng 14(3):1321–1336

    Article  Google Scholar 

  • García-Uribe C, López-Mellado E (October 2020) An event clustering method for discovering switch silent transitions in a class of petri nets. 34th annual European simulation and modelling conference. ESM'2020. Toulouse France

  • Guo Q, Wen L, Wang J, Yan Z, Yu P (2015) Mining invisible tasks in non-free-choice constructs. Business process management: 13th Int. Conference, 9253, pp.109–125

  • Pomares-Angelino R, López-Mellado E (November 11–13, 2020) Automated Modelling of Deadlock-free Petri Nets Using Duplicated Transition Labels. 17th Int. Conf. on Electrical Engineering, Computing Science and Automatic Control (CCE), Mexico City, Mexico. pp. 1–7, doi: https://doi.org/10.1109/CCE50788.2020.9299169

  • Tapia-Flores T, López-Mellado E (Nov. 2016) Inferring the Repetitive Behaviour from Event Logs for Process Mining Discovery. International Conference on Mining Intelligence and Knowledge Exploration, Mexico City, Mexico, pp. 164–173; (LNCS, vol. 10089)

  • Tapia-Flores T, Rodríguez-Pérez E, López-Mellado E (2016) Discovering process models from incomplete event logs using conjoint occurrence classes. ATAED@Petri Nets/ACSD, pp. 31–46

  • Tapia-Flores T, López-Mellado E, Estrada-Vargas AP, Lesage JJ (2018) Discovering Petri Net Models of Discrete Event Processes by Computing T-invariants. IEEE Trans Autom Sci Eng. 05/2018 15:992–1003

    Article  Google Scholar 

  • Van der Aalst W (2011) Process mining: discovery, conformance and enhancement of business processes. Springer, Berlin

    Book  Google Scholar 

  • Van der Aalst W, Weijters T, Maruster L (2004) Workflow mining: discovering process models from event logs. IEEE Trans Knowl Data Eng 16(9):1128–1142

    Article  Google Scholar 

  • Wen L, Wang J, van der Aalst W, Huang B, Sun J (2010) Mining process models with prime invisible tasks. Data Knowl Eng 69(10):999–1021

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Ernesto López-Mellado.

Ethics declarations

Conflict of interest

The authors declare that they have no conflict of interest.

Additional information

Román Pomares-Angelino is supported by CONACYT, México. PhD Grant 901440

Appendix

Appendix

This appendix contains additional tests of the proposed method. The tests were performed using the scheme described in the paper using artificial logs. Besides, we include the discovered models by the algorithm Alpha# for comparison.

1.1 Example A.1

The purpose of this example is to show the outcomes of all the steps of the repairing technique. Consider the net in Fig. 20, which has silent transitions (in black); the artificial log generated by PIPE from this net is the following:

$$ {\displaystyle \begin{array}{c}{\uplambda}_{\mathrm{A}1}=\Big\{{t}_3\ {t}_{23}\ {t}_{31}\ {t}_{35}\ {t}_{36},\kern0.5em {t}_2\ {t}_9\ {t}_{10}\ {t}_{11}\ {t}_{39},\kern0.5em {t}_1\ {t}_{12}\ {t}_{13}\ {t}_{14}\ {t}_{15}\ {t}_{16}\ {t}_{37}\ {t}_{13}\ {t}_{17}\ {t}_{14}\ {t}_{37}\ {t}_{18},\kern0.5em {t}_3\ {t}_{24}\ {t}_{29}\ {t}_{30}\ {t}_{36},\kern0.5em {t}_3\ {t}_{24}\ {t}_{29}\ {t}_{30}\\ {}\ {t}_{33}\ {t}_{34}\ {t}_{36},\kern0.5em {t}_0\ {t}_4\ {t}_6\ {t}_7\ {t}_5\ {t}_{39},\kern0.5em {t}_3\ {t}_{27}\ {t}_{31}\ {t}_{35}\ {t}_{36},\kern0.5em {t}_1\ {t}_{12}\ {t}_{13}\ {t}_{15}\ {t}_{14}\ {t}_{37}\ {t}_{13}\ {t}_{17}\ {t}_{14}\ {t}_{37}\ {t}_{18},\kern0.5em {t}_0\ {t}_4\ {t}_6\ {t}_{11}\ {t}_{39},\kern0.5em {t}_0\ {t}_8\ {t}_9\ {t}_{10}\ {t}_{11}\\ {}\begin{array}{c}\ {t}_{39},\kern0.5em {t}_1\ {t}_{15}\ {t}_{16}\ {t}_{12}\ {t}_{13}\ {t}_{14}\ {t}_{17}\ {t}_{37}\ {t}_{18},\kern0.5em {t}_1\ {t}_{15}\ {t}_{12}\ {t}_{17}\ {t}_{13}\ {t}_{14}\ {t}_{37}\ {t}_{13}\ {t}_{14}\ {t}_{37}\ {t}_{18},\kern0.5em {t}_0\ {t}_4\ {t}_{10}\ {t}_{11}\ {t}_{39},\kern0.5em {t}_1\ {t}_{12}\ {t}_{15}\ {t}_{13}\ {t}_{14}\ {t}_{37}\ {t}_{17}\\ {}{t}_{13}\ {t}_{14}\ {t}_{37}\ {t}_{13}\ {t}_{14}\ {t}_{37}\ {t}_{13}\ {t}_{14}\ {t}_{37}\ {t}_{13}\ {t}_{14}\ {t}_{37}\ {t}_{18},\kern0.5em {t}_1\ {t}_{12}\ {t}_{13}\ {t}_{14}\ {t}_{37}\ {t}_{15}\ {t}_{16}\ {t}_{17}\ {t}_{13}\ {t}_{14}\ {t}_{37}\ {t}_{13}\ {t}_{14}\ {t}_{37}\ {t}_{13}\ {t}_{14}\ {t}_{37}\ {t}_{18},\kern0.5em {t}_1\ {t}_{15}\ \\ {}\begin{array}{c}{t}_{12}\ {t}_{13}\ {t}_{17}\ {t}_{14}\ {t}_{37}\ {t}_{18},\kern0.5em {t}_1\ {t}_{12}\ {t}_{15}\ {t}_{16}\ {t}_{13}\ {t}_{14}\ {t}_{17}\ {t}_{37}\ {t}_{18},\kern0.5em {t}_3\ {t}_{23}\ {t}_{25}\ {t}_{27}\ {t}_{31}\ {t}_{35}\ {t}_{36},\kern0.5em {t}_1\ {t}_{15}\ {t}_{12}\ {t}_{13}\ {t}_{14}\ {t}_{17}\ {t}_{37}\ {t}_{13}\ {t}_{14}\ {t}_{37}\\ {}{t}_{18},\kern0.5em {t}_1\ {t}_{15}\ {t}_{16}\ {t}_{12}\ {t}_{17}\ {t}_{13}\ {t}_{14}\ {t}_{37}\ {t}_{18},\kern0.5em {t}_1\ {t}_{12}\ {t}_{15}\ {t}_{13}\ {t}_{17}\ {t}_{14}\ {t}_{37}\ {t}_{13}\ {t}_{14}\ {t}_{37}\ {t}_{18},\kern0.5em {t}_3\ {t}_{24}\ {t}_{35}\ {t}_{36},\kern0.5em {t}_1\ {t}_{15}\ {t}_{17}\ {t}_{12}\ {t}_{13}\ {t}_{14}\ {t}_{37}\ {t}_{13}\ \\ {}\begin{array}{c}{t}_{14}\ {t}_{37}\ {t}_{13}\ {t}_{14}\ {t}_{37}\ {t}_{13}\ {t}_{14}\ {t}_{37}\ {t}_{18},\kern0.5em {t}_1\ {t}_{15}\ {t}_{17}\ {t}_{12}\ {t}_{13}\ {t}_{14}\ {t}_{37}\ {t}_{18},\kern0.5em {t}_1\ {t}_{15}\ {t}_{12}\ {t}_{13}\ {t}_{17}\ {t}_{14}\ {t}_{37}\ {t}_{13}\ {t}_{14}\ {t}_{37}\ {t}_{18},\kern0.5em {t}_1\ {t}_{15}\ {t}_{16}\ {t}_{17}\ {t}_{12}\\ {}{t}_{13}\ {t}_{14}\ {t}_{37}\ {t}_{18},\kern0.5em {t}_1\ {t}_{12}\ {t}_{15}\ {t}_{17}\ {t}_{13}\ {t}_{14}\ {t}_{37}\ {t}_{18},\kern0.5em {t}_1\ {t}_{12}\ {t}_{13}\ {t}_{14}\ {t}_{15}\ {t}_{37}\ {t}_{16}\ {t}_{17}\ {t}_{13}\ {t}_{14}\ {t}_{37}\ {t}_{13}\ {t}_{14}\ {t}_{37}\ {t}_{18},\kern0.5em {t}_1\ {t}_{12}\ {t}_{13}\ {t}_{14}\ {t}_{15}\ {t}_{37}\ \\ {}\begin{array}{c}{t}_{16}\ {t}_{17}\ {t}_{18},\kern0.5em {t}_1\ {t}_{15}\ {t}_{12}\ {t}_{13}\ {t}_{16}\ {t}_{14}\ {t}_{17}\ {t}_{37}\ {t}_{18},\kern0.5em {t}_1\ {t}_{12}\ {t}_{15}\ {t}_{16}\ {t}_{13}\ {t}_{14}\ {t}_{37}\ {t}_{13}\ {t}_{17}\ {t}_{14}\ {t}_{37}\ {t}_{13}\ {t}_{14}\ {t}_{37}\ {t}_{13}\ {t}_{14}\ {t}_{37}\ {t}_{18},\kern0.5em {t}_1\ {t}_{15}\ {t}_{12}\\ {}{t}_{16}\ {t}_{17}\ {t}_{13}\ {t}_{14}\ {t}_{37}\ {t}_{13}\ {t}_{14}\ {t}_{37}\ {t}_{13}\ {t}_{14}\ {t}_{37}\ {t}_{13}\ {t}_{14}\ {t}_{37}\ {t}_{18},\kern0.5em {t}_1\ {t}_{12}\ {t}_{13}\ {t}_{14}\ {t}_{37}\ {t}_{15}\ {t}_{13}\ {t}_{14}\ {t}_{37}\ {t}_{13}\ {t}_{14}\ {t}_{37}\ {t}_{17}\ {t}_{13}\ {t}_{14}{t}_{37}\ {t}_{13}\ {t}_{14}\ \\ {}{t}_{37}\ {t}_{13}\ {t}_{14}\ {t}_{37}{t}_{18},\kern0.5em {t}_1\ {t}_{12}\ {t}_{13}\ {t}_{15}\ {t}_{14}\ {t}_{37}\ {t}_{16}\ {t}_{17}\ {t}_{18}.\end{array}\end{array}\end{array}\end{array}\end{array}} $$
Fig. 20
figure 20

Proposed PN with silent transitions in PIPE

From such a log, the following data has been computed from CoMiner algorithm where the discovered dependencies are: [t3,t23 + t24 + t27][t23,t31 + t25][t1,t15][t1,t12][t13,t14][t14,t37][t15,t16 + t17] [t37,t13 + t18][t17,t18][t24,t29 + t35][t29,t30][t30,t36 + t33][t33,t34][t0,t4 + t8][t4,t6 + t10][t6,t7 + t11][t7,t5][t3 + t25,t27][t23 + t27,t31][t31 + t24,t35][t35 + t30 + t34,t36][t2 + t8,t9][t9 + t4,t10][t10 + t6,t11][t11 + t5,t39][t12 + t37,t13][t15 + t16,t17]

Then, the PN in Fig. 21 built with these dependencies; this PN has deadlocks.

Fig. 21
figure 21

PN with IS

After the creation of the net, the dependencies that form IS are given below.

$$ i=\left[{t}_3,{t}_{23}+{t}_{24}+{t}_{27}\right]\ j=\left[{t}_3+{t}_{25},{t}_{27}\right] $$
$$ i=\left[{t}_{23},{t}_{31}+{t}_{25}\right]\ j=\left[{t}_{23}+{t}_{27},{t}_{31}\right] $$
$$ i=\left[{t}_{15},{t}_{16}+{t}_{17}\right]\ j=\left[{t}_{15}+{t}_{16},{t}_{17}\right] $$
$$ i=\left[{t}_{37},{t}_{13}+{t}_{18}\right]\ j=\left[{t}_{12}+{t}_{37},{t}_{13}\right] $$
$$ i=\left[{t}_{24},{t}_{29}+{t}_{35}\right]\ j=\left[{t}_{31}+{t}_{24},{t}_{35}\right] $$
$$ i=\left[{t}_{30},{t}_{36}+{t}_{33}\right]\ j=\left[{t}_{35}+{t}_{30}+{t}_{34},{t}_{36}\right] $$
$$ i=\left[{t}_4,{t}_6+{t}_{10}\right]\ j=\left[{t}_9+{t}_4,{t}_{10}\right] $$
$$ i=\left[{t}_6,{t}_7+{t}_{11}\right]\ j=\left[{t}_{10}+{t}_6,{t}_{11}\right] $$

Based on these IS the PN is repaired using duplicated labels. It is shown in Fig. 22, where tr’ indicates that tr is duplicated.

Fig. 22
figure 22

PN with duplicated transitions

Now, the dependencies of the Petri net transformed with duplicated labels are:

$$ \left[{t}_3,{t}_{23}+{t}_{24}+{t}_{27}'\right]\left[{t}_{23},{t}_{25}+{t}_{31}'\right]\left[{t}_1,{t}_{15}\right]\left[{t}_1,{t}_{12}\right]\left[{t}_{13}+{t}_{13}',{t}_{14}\right]\left[{t}_{14},{t}_{37}\right]\left[{t}_{15},{t}_{16}+{t}_{17}'\right]\left[{t}_{37},{t}_{18}+{t}_{13}'\right]\left[{t}_{17}+{t}_{17}',{t}_{18}\right]\left[{t}_{24},{t}_{29}+{t}_{35}'\right]\left[{t}_{29},{t}_{30}\right]\left[{t}_{30},{t}_{33}+{t}_{36}'\right]\left[{t}_{33},{t}_{34}\right]\left[{t}_0,{t}_4+{t}_8\right]\left[{t}_4,{t}_6+{t}_{10}'\right]\left[{t}_6,{t}_7+{t}_{11}'\right]\left[{t}_7,{t}_5\right]\left[{t}_{25},{t}_{27}\right]\left[{t}_{27}+{t}_{27}',{t}_{31}\right]\left[{t}_{31}+{t}_{31}',{t}_{35}\right]\left[{t}_{35}+{t}_{34}+{t}_{35}',{t}_{36}\right]\left[{t}_2+{t}_8,{t}_9\right]\left[{t}_9,{t}_{10}\right]\left[{t}_{10}+{t}_{10}',{t}_{11}\right]\left[{t}_{11}+{t}_5+{t}_{11}',{t}_{39}\right]\left[{t}_{12},{t}_{13}\right]\left[{t}_{16},{t}_{17}\right]\left[\mathrm{In},{t}_3+{t}_1+{t}_0+{t}_2\right]\left[{t}_{18}+{t}_{36}+{t}_{39}+{t}_{36}',\mathrm{Out}\right] $$

The last step, where the PN with duplicated labels is transformed into a PN with silent transitions, yields a set of repaired dependencies given below. Then the PN is shown in Fig. 23, where epk designates silent transitions.

$$ \left[{t}_3,{t}_{23}+{t}_{24}+{ep}_1\right]\left[{t}_{23},{t}_{25}+{ep}_2\right]\left[{t}_1,{t}_{15}\right]\left[{t}_1,{t}_{12}\right]\left[{t}_{13},{t}_{14}\right]\left[{t}_{14},{t}_{37}\right]\left[{t}_{15},{t}_{16}+{ep}_3\right]\left[{t}_{37},{t}_{18}+{ep}_4\right]\left[{t}_{17},{t}_{18}\right]\left[{t}_{24},{t}_{29}+{ep}_5\right]\left[{t}_{29},{t}_{30}\right]\left[{t}_{30},{t}_{33}+{ep}_6\right]\left[{t}_{33},{t}_{34}\right]\left[{t}_0,{t}_4+{t}_8\right]\left[{t}_4,{t}_6+{ep}_7\right]\left[{t}_6,{t}_7+{ep}_8\right]\left[{t}_7,{t}_5\right]\left[{t}_{25}+{ep}_1,{t}_{27}\right]\left[{t}_{27}+{ep}_2,{t}_{31}\right]\left[{t}_{31}+{ep}_5,{t}_{35}\right]\left[{t}_{35}+{t}_{34}+{ep}_6,{t}_{36}\right]\left[{t}_2+{t}_8,{t}_9\right]\left[{t}_9+{ep}_7,{t}_{10}\right]\left[{t}_{10}+{ep}_8,{t}_{11}\right]\left[{t}_{11}+{t}_5,{t}_{39}\right]\left[{t}_{12}+{ep}_4,{t}_{13}\right]\left[{t}_{16}+{ep}_3,{t}_{17}\right]\left[ in,{t}_3+{t}_1+{t}_0+{t}_2\right]\left[{t}_{18}+{t}_{36}+{t}_{39}, out\right]. $$
Fig. 23
figure 23

PN with silent transitions discovered from λA1

Now, in Fig. 24 we include the WFN obtained using the algorithm Alpha#. This model is the same that obtained by our method. In both cases the PN used for generation of the artificial log is rediscovered.

Fig. 24
figure 24

WFN discovered using the algorithm Alpha# from λA1

1.2 Example A.2

The processed log is λA2 = {xabcdefgy, xabcefgy, xabcdefbcdefgy, xABCDy, xabCDy, xABCfgy, xAy}. The model discovered including silent transitions is shown in Fig. 25. It has nine silent transitions; five Skip transitions, two Redo transitions, and one Switch transition.

The PN used for generating the log is rediscovered. The processing time of the repairing algorithm in this test is 2.7866 ms.

The WFN found by the algorithm Alpha# is shown in Fig. 26. Notice that the model is not the same; it has twelve silent transitions and transition p has no input place whilst transition n has no output place.

Fig. 25
figure 25

PN discovered from λA2

Fig. 26
figure 26

PN discovered from λA2 using the algorithm Alpha#

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Pomares-Angelino, R., López-Mellado, E. Discovering petri nets including silent transitions. A repairing approach based on structural patterns. Discrete Event Dyn Syst 32, 291–315 (2022). https://doi.org/10.1007/s10626-021-00358-w

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10626-021-00358-w

Keywords

Navigation