pm4py.algo.simulation.montecarlo.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.montecarlo.variants.petri_semaph_fifo 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.montecarlo.variants.petri_semaph_fifo.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'#
TIMESTAMP_KEY = 'pm4py:param:timestamp_key'#
TOKEN_REPLAY_VARIANT = 'token_replay_variant'#
PARAM_NUM_SIMULATIONS = 'num_simulations'#
PARAM_FORCE_DISTRIBUTION = 'force_distribution'#
PARAM_ENABLE_DIAGNOSTICS = 'enable_diagnostics'#
PARAM_DIAGN_INTERVAL = 'diagn_interval'#
PARAM_CASE_ARRIVAL_RATIO = 'case_arrival_ratio'#
PARAM_PROVIDED_SMAP = 'provided_stochastic_map'#
PARAM_MAP_RESOURCES_PER_PLACE = 'map_resources_per_place'#
PARAM_DEFAULT_NUM_RESOURCES_PER_PLACE = 'default_num_resources_per_place'#
PARAM_SMALL_SCALE_FACTOR = 'small_scale_factor'#
PARAM_MAX_THREAD_EXECUTION_TIME = 'max_thread_exec_time'#
pm4py.algo.simulation.montecarlo.variants.petri_semaph_fifo.simulate_case(case_id, net, im, fm, smap, start_time, places_interval_trees, transitions_interval_trees, cases_ex_time, list_cases, small_scale_factor)[source]#

Generator that simulates a single case. Instead of sleeping, it yields its current virtual (simulation) time.

pm4py.algo.simulation.montecarlo.variants.petri_semaph_fifo.run_simulation_generators(sim_gens)[source]#

Runs the simulation generators concurrently (in virtual time) using a priority queue.

pm4py.algo.simulation.montecarlo.variants.petri_semaph_fifo.apply(log, net, im, fm, parameters=None)[source]#

Performs a Monte Carlo simulation of an accepting Petri net using a generator-based scheduler.

Parameters:

log : Event log. net : Petri net. im : Initial marking. fm : Final marking. parameters : Dictionary of simulation parameters.

Returns:

A tuple (simulated_log, simulation_result) where simulation_result is a dictionary:

simulation_result = {

“output_places_interval_trees”: places_interval_trees, “output_transitions_interval_trees”: transitions_interval_trees_named, “cases_ex_time”: cases_ex_time, “median_cases_ex_time”: median(cases_ex_time), “case_arrival_ratio”: case_arrival_ratio, “total_cases_time”: max_timestamp - min_timestamp,

}