pm4py.algo.simulation.playout.process_tree.variants package#

PM4Py – A Process Mining Library for Python

Copyright (C) 2024 Process Intelligence Solutions UG (haftungsbeschränkt)

This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or any later version.

This program 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 Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License along with this program. If not, see this software project’s root or visit <https://www.gnu.org/licenses/>.

Website: https://processintelligence.solutions Contact: info@processintelligence.solutions

Submodules#

pm4py.algo.simulation.playout.process_tree.variants.basic_playout module#

PM4Py – A Process Mining Library for Python

Copyright (C) 2024 Process Intelligence Solutions UG (haftungsbeschränkt)

This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or any later version.

This program 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 Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License along with this program. If not, see this software project’s root or visit <https://www.gnu.org/licenses/>.

Website: https://processintelligence.solutions Contact: info@processintelligence.solutions

class pm4py.algo.simulation.playout.process_tree.variants.basic_playout.Parameters[source]#

Bases: object

NO_TRACES = 'num_traces'#
pm4py.algo.simulation.playout.process_tree.variants.basic_playout.apply(tree: ProcessTree, parameters: Dict[str | Parameters, Any] | None = None) EventLog[source]#

Generate a log by a playout operation

Parameters#

tree

Process tree

parameters

Parameters of the algorithm, including: - Parameters.NO_TRACES: number of traces of the playout

Returns#

log

Simulated log

pm4py.algo.simulation.playout.process_tree.variants.extensive module#

PM4Py – A Process Mining Library for Python

Copyright (C) 2024 Process Intelligence Solutions UG (haftungsbeschränkt)

This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or any later version.

This program 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 Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License along with this program. If not, see this software project’s root or visit <https://www.gnu.org/licenses/>.

Website: https://processintelligence.solutions Contact: info@processintelligence.solutions

class pm4py.algo.simulation.playout.process_tree.variants.extensive.Parameters(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)[source]#

Bases: Enum

MIN_TRACE_LENGTH = 'min_trace_length'#
MAX_TRACE_LENGTH = 'max_trace_length'#
MAX_LOOP_OCC = 'max_loop_occ'#
ACTIVITY_KEY = 'pm4py:param:activity_key'#
MAX_LIMIT_NUM_TRACES = 'max_limit_num_traces'#
RETURN_SET_STRINGS = 'return_set_strings'#
pm4py.algo.simulation.playout.process_tree.variants.extensive.get_playout_leaf(node, playout_dictio, min_trace_length, max_trace_length, max_loop_occ, min_rem_dict, max_rem_dict, max_limit_num_traces)[source]#

Performs the playout of a leaf (activity or invisible), returning the traces allowed by the tree

pm4py.algo.simulation.playout.process_tree.variants.extensive.get_playout_xor(node, playout_dictio, min_trace_length, max_trace_length, max_loop_occ, min_rem_dict, max_rem_dict, max_limit_num_traces)[source]#

Performs the playout of a XOR node, returning the traces allowed by the tree

pm4py.algo.simulation.playout.process_tree.variants.extensive.get_min_remaining_length(traces)[source]#

Minimum remaining length (for sequential, parallel cut detection)

Parameters#

traces

Traces

pm4py.algo.simulation.playout.process_tree.variants.extensive.get_max_remaining_length(traces)[source]#

Maximum remaining length (for sequential, parallel cut detection)

Parameters#

traces

Traces

pm4py.algo.simulation.playout.process_tree.variants.extensive.flatten(x)[source]#

Flattens a list of tuples

pm4py.algo.simulation.playout.process_tree.variants.extensive.get_sequential_compositions_children(traces, min_trace_length, max_trace_length, mr, mar, max_limit_num_traces)[source]#

Returns alls the possible sequential combinations between the children of a tree

pm4py.algo.simulation.playout.process_tree.variants.extensive.get_playout_parallel(node, playout_dictio, min_trace_length, max_trace_length, max_loop_occ, min_rem_dict, max_rem_dict, max_limit_num_traces)[source]#

Performs the playout of an AND node, returning the traces allowed by the tree

pm4py.algo.simulation.playout.process_tree.variants.extensive.get_playout_sequence(node, playout_dictio, min_trace_length, max_trace_length, max_loop_occ, min_rem_dict, max_rem_dict, max_limit_num_traces)[source]#

Performs the playout of a sequence node, returning the traces allowed by the tree

pm4py.algo.simulation.playout.process_tree.variants.extensive.get_playout_loop(node, playout_dictio, min_trace_length, max_trace_length, max_loop_occ, min_rem_dict, max_rem_dict, max_limit_num_traces)[source]#

Performs the playout of a loop node, returning the traces allowed by the tree

pm4py.algo.simulation.playout.process_tree.variants.extensive.get_playout(node, playout_dictio, min_trace_length, max_trace_length, max_loop_occ, min_rem_dict, max_rem_dict, max_limit_num_traces)[source]#

Performs a playout of an ode of the process tree, given the type

pm4py.algo.simulation.playout.process_tree.variants.extensive.apply(tree: ProcessTree, parameters: Dict[str | Parameters, Any] | None = None) EventLog[source]#

Performs an extensive playout of the process tree

Parameters#

tree

Process tree

parameters

Possible parameters, including: - Parameters.MIN_TRACE_LENGTH => minimum length of a trace (default: 1) - Parameters.MAX_TRACE_LENGTH => maximum length of a trace (default: min_allowed_trace_length) - Parameters.MAX_LOOP_OCC => maximum number of occurrences for a loop (default: MAX_TRACE_LENGTH) - Parameters.ACTIVITY_KEY => activity key - Parameters.MAX_LIMIT_NUM_TRACES => maximum number to the limit of traces; the playout shall stop when the number is reached (default: 100000)

Returns#

log

Event log

pm4py.algo.simulation.playout.process_tree.variants.topbottom module#

PM4Py – A Process Mining Library for Python

Copyright (C) 2024 Process Intelligence Solutions UG (haftungsbeschränkt)

This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or any later version.

This program 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 Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License along with this program. If not, see this software project’s root or visit <https://www.gnu.org/licenses/>.

Website: https://processintelligence.solutions Contact: info@processintelligence.solutions

class pm4py.algo.simulation.playout.process_tree.variants.topbottom.Parameters(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)[source]#

Bases: Enum

ACTIVITY_KEY = 'pm4py:param:activity_key'#
NO_TRACES = 'num_traces'#
pm4py.algo.simulation.playout.process_tree.variants.topbottom.apply(tree: ProcessTree, parameters: Dict[str | Parameters, Any] | None = None) EventLog[source]#

Gets the top-bottom playout of a process tree

Parameters#

tree

Process tree

parameters
Parameters of the algorithm, including:
  • Parameters.ACTIVITY_KEY: activity key

  • Parameters.NO_TRACES: number of traces that should be returned

Returns#

log

Event log

pm4py.algo.simulation.playout.process_tree.variants.topbottom.get_ex_seq_in_time(tree, ex_time)[source]#

Gets the maximum number of execution sequences, doing the playout, in the given amount of time

Parameters#

tree

Process tree

ex_time

Maximum execution time

Returns#

ex_sec

Execution sequences

pm4py.algo.simulation.playout.process_tree.variants.topbottom.get_num_ex_sequences(tree, num)[source]#

Gets the specified amount of execution sequences

Parameters#

tree

Process tree

num

Number of execution sequences

Returns#

ex_sec

Execution sequences

pm4py.algo.simulation.playout.process_tree.variants.topbottom.get_ex_seq(tree)[source]#

Gets a trace from a process tree (top-bottom)

Parameters#

tree

Process tree

Returns#

ex_seq

Execution sequence