pm4py.algo.analysis.woflan.graphs package#

This file is part of PM4Py (More Info: https://pm4py.fit.fraunhofer.de).

PM4Py is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

PM4Py is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with PM4Py. If not, see <https://www.gnu.org/licenses/>.

Subpackages#

Submodules#

pm4py.algo.analysis.woflan.graphs.utility module#

This file is part of PM4Py (More Info: https://pm4py.fit.fraunhofer.de).

PM4Py is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

PM4Py is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with PM4Py. If not, see <https://www.gnu.org/licenses/>.

pm4py.algo.analysis.woflan.graphs.utility.compute_incidence_matrix(net)[source]#

Given a Petri Net, the incidence matrix is computed. An incidence matrix has n rows (places) and m columns (transitions). :param net: Petri Net object :return: Incidence matrix

pm4py.algo.analysis.woflan.graphs.utility.split_incidence_matrix(matrix, net)[source]#

We split the incidence matrix columnwise to get the firing information for each transition :param matrix: incidence matrix :param net: Petri Net :return: Dictionary, whereby the key is an np array that contains the firing information and the value is the name of the transition

pm4py.algo.analysis.woflan.graphs.utility.compute_firing_requirement(net)[source]#
pm4py.algo.analysis.woflan.graphs.utility.enabled_markings(firing_dict, req_dict, marking)[source]#
pm4py.algo.analysis.woflan.graphs.utility.convert_marking(net, marking, original_net=None)[source]#

Takes an marking as input and converts it into an Numpy Array :param net: PM4Py Petri Net object :param marking: Marking that should be converted :param original_net: PM4Py Petri Net object without short-circuited transition :return: Numpy array representation

pm4py.algo.analysis.woflan.graphs.utility.check_for_dead_tasks(net, graph)[source]#

We compute a list of dead tasks. A dead task is a task which does not appear in the Minimal Coverability Graph :param net: Petri Net representation of PM4Py :param graph: Minimal coverability graph. NetworkX MultiDiGraph object. :return: list of dead tasks

pm4py.algo.analysis.woflan.graphs.utility.check_for_improper_conditions(mcg)[source]#

An improper condition is a state in the minimum-coverability graph with an possible infinite amount of tokens :param mcg: networkx object (minimal coverability graph) :return: True, if there are no improper conditions; false otherwise

pm4py.algo.analysis.woflan.graphs.utility.check_for_substates(mcg)[source]#

Checks if a substate exists in a given mcg :param mcg: Minimal coverability graph (networkx object) :return: True, if there exist no substate; False otherwise