Simulating Petri nets with Boolean Matrix Logic Programming
This work enables more efficient analysis, learning, and verification of complex systems using logic programming, though it is incremental as it builds on existing methods for Petri nets and Prolog.
The paper tackled the challenge of efficiently simulating Petri nets with logic programs by introducing Boolean Matrix Logic Programming (BMLP), which achieved a 40 times speedup over existing Prolog systems in evaluating datalog programs derived from elementary nets.
Recent attention to relational knowledge bases has sparked a demand for understanding how relations change between entities. Petri nets can represent knowledge structure and dynamically simulate interactions between entities, and thus they are well suited for achieving this goal. However, logic programs struggle to deal with extensive Petri nets due to the limitations of high-level symbol manipulations. To address this challenge, we introduce a novel approach called Boolean Matrix Logic Programming (BMLP), utilising boolean matrices as an alternative computation mechanism for Prolog to evaluate logic programs. Within this framework, we propose two novel BMLP algorithms for simulating a class of Petri nets known as elementary nets. This is done by transforming elementary nets into logically equivalent datalog programs. We demonstrate empirically that BMLP algorithms can evaluate these programs 40 times faster than tabled B-Prolog, SWI-Prolog, XSB-Prolog and Clingo. Our work enables the efficient simulation of elementary nets using Prolog, expanding the scope of analysis, learning and verification of complex systems with logic programming techniques.