fbpx
Wikipedia

SimPy

SimPy stands for “Simulation in Python”, is a process-based discrete-event simulation framework based on standard Python.[1] It enables users to model active components such as customers, vehicles, or agents as simple Python generator functions. SimPy is released as open source software under the MIT License. The first version was released in December 2002.[2]

SimPy, a free discrete-event simulation package based on Python
Original author(s)Klaus G. Müller, Tony Vignaux
Developer(s)Ontje Lünsdorf, Stefan Scherfke
Initial releaseSeptember 17, 2002 (2002-09-17)
Stable release
4.1.1 / November 12, 2023; 6 months ago (2023-11-12)
Repository
  • gitlab.com/team-simpy/simpy
Written inPython
Operating systemCross-platform
TypeDiscrete event simulation
LicenseMIT
Websitesimpy.readthedocs.org

Overview edit

Its event dispatcher is based on Python's generators and can be used for asynchronous networking or to implement multi-agent systems (with both, simulated and real communication). Simulations can be performed “as fast as possible”, in real time (wall clock time) or by manually stepping through the events. Though it is theoretically possible to do continuous simulations with SimPy, it lacks features to support them. However, for simulations with a fixed step size where processes don't interact with each other or with shared resources, a simple while loop is sufficient.[3]

Additionally, SimPy provides different types of shared resources to simulate congestion points that have limited capacity, such as servers, checkout counters, and tunnels. In version 3.1 and above, SimPy offers monitoring capabilities to assist in collecting statistics about processes and resources.

SimPy 3.0 requires Python 3.,[4] while SimPy 4.0 requires Python 3.6+. SimPy distribution contains tutorials,[5] documentation, and examples.

Example edit

The following is a SimPy simulation [6] showing a clock process that prints the current simulation time at each step:

>>> import simpy >>> >>> def clock(env, name, tick): ...  while True: ...  print(name, env.now) ...  yield env.timeout(tick) ... >>> env = simpy.Environment() >>> env.process(clock(env, 'fast', 0.5)) <Process(clock) object at 0x...> >>> env.process(clock(env, 'slow', 1)) <Process(clock) object at 0x...> >>> env.run(until=2) fast 0 slow 0  fast 0.5  slow 1  fast 1.0  fast 1.5 

References edit

  1. ^ Iwata, Curtis; Mavris, Dimitri (2013-01-01). "Object-Oriented Discrete Event Simulation Modeling Environment for Aerospace Vehicle Maintenance and Logistics Process". Procedia Computer Science. 2013 Conference on Systems Engineering Research. 16: 187–196. doi:10.1016/j.procs.2013.01.020. ISSN 1877-0509.
  2. ^ Xiong, Xinli; Ma, Linru; Cui, Chao (2020-01-13). "Simulation Environment of Evaluation and Optimization for Moving Target Defense: A SimPy Approach". Proceedings of the 2019 9th International Conference on Communication and Network Security. ICCNS '19. New York, NY, USA: Association for Computing Machinery: 114–117. doi:10.1145/3371676.3371692. ISBN 978-1-4503-7662-4.
  3. ^ Olaitan, Oladipupo; Geraghty, John; Young, Paul; Dagkakis, Georgios; Heavey, Cathal; Bayer, Martin; Perrin, Jerome; Robin, Sebastien (2014-01-01). "Implementing ManPy, a Semantic-free Open-source Discrete Event Simulation Package, in a Job Shop". Procedia CIRP. 8th International Conference on Digital Enterprise Technology - DET 2014 Disruptive Innovation in Manufacturing Engineering towards the 4th Industrial Revolution. 25: 253–260. doi:10.1016/j.procir.2014.10.036. ISSN 2212-8271.
  4. ^ "SimPy History & Change Log — SimPy 4.0.2.dev1+g2973dbe documentation".
  5. ^ Zinoviev, Dmitry (February 2018). "Discrete Event Simulation. It's Easy with SimPy!". PragPub (104): 1–16.
  6. ^ Scherfke, Stefan (July 25, 2014). "Discrete-event simulation with SimPy" (PDF). p. 5. Retrieved August 10, 2016.

simpy, python, symbolic, mathematics, library, sympy, discontinued, social, bookmarking, service, simpy, stands, simulation, python, process, based, discrete, event, simulation, framework, based, standard, python, enables, users, model, active, components, suc. For the Python symbolic mathematics library see SymPy For the discontinued social bookmarking service see Simpy SimPy stands for Simulation in Python is a process based discrete event simulation framework based on standard Python 1 It enables users to model active components such as customers vehicles or agents as simple Python generator functions SimPy is released as open source software under the MIT License The first version was released in December 2002 2 SimPy a free discrete event simulation package based on PythonOriginal author s Klaus G Muller Tony VignauxDeveloper s Ontje Lunsdorf Stefan ScherfkeInitial releaseSeptember 17 2002 2002 09 17 Stable release4 1 1 November 12 2023 6 months ago 2023 11 12 Repositorygitlab wbr com wbr team simpy wbr simpyWritten inPythonOperating systemCross platformTypeDiscrete event simulationLicenseMITWebsitesimpy wbr readthedocs wbr orgOverview editIts event dispatcher is based on Python s generators and can be used for asynchronous networking or to implement multi agent systems with both simulated and real communication Simulations can be performed as fast as possible in real time wall clock time or by manually stepping through the events Though it is theoretically possible to do continuous simulations with SimPy it lacks features to support them However for simulations with a fixed step size where processes don t interact with each other or with shared resources a simple while loop is sufficient 3 Additionally SimPy provides different types of shared resources to simulate congestion points that have limited capacity such as servers checkout counters and tunnels In version 3 1 and above SimPy offers monitoring capabilities to assist in collecting statistics about processes and resources SimPy 3 0 requires Python 3 4 while SimPy 4 0 requires Python 3 6 SimPy distribution contains tutorials 5 documentation and examples Example editThe following is a SimPy simulation 6 showing a clock process that prints the current simulation time at each step gt gt gt import simpy gt gt gt gt gt gt def clock env name tick while True print name env now yield env timeout tick gt gt gt env simpy Environment gt gt gt env process clock env fast 0 5 lt Process clock object at 0x gt gt gt gt env process clock env slow 1 lt Process clock object at 0x gt gt gt gt env run until 2 fast 0 slow 0 fast 0 5 slow 1 fast 1 0 fast 1 5References edit Iwata Curtis Mavris Dimitri 2013 01 01 Object Oriented Discrete Event Simulation Modeling Environment for Aerospace Vehicle Maintenance and Logistics Process Procedia Computer Science 2013 Conference on Systems Engineering Research 16 187 196 doi 10 1016 j procs 2013 01 020 ISSN 1877 0509 Xiong Xinli Ma Linru Cui Chao 2020 01 13 Simulation Environment of Evaluation and Optimization for Moving Target Defense A SimPy Approach Proceedings of the 2019 9th International Conference on Communication and Network Security ICCNS 19 New York NY USA Association for Computing Machinery 114 117 doi 10 1145 3371676 3371692 ISBN 978 1 4503 7662 4 Olaitan Oladipupo Geraghty John Young Paul Dagkakis Georgios Heavey Cathal Bayer Martin Perrin Jerome Robin Sebastien 2014 01 01 Implementing ManPy a Semantic free Open source Discrete Event Simulation Package in a Job Shop Procedia CIRP 8th International Conference on Digital Enterprise Technology DET 2014 Disruptive Innovation in Manufacturing Engineering towards the 4th Industrial Revolution 25 253 260 doi 10 1016 j procir 2014 10 036 ISSN 2212 8271 SimPy History amp Change Log SimPy 4 0 2 dev1 g2973dbe documentation Zinoviev Dmitry February 2018 Discrete Event Simulation It s Easy with SimPy PragPub 104 1 16 Scherfke Stefan July 25 2014 Discrete event simulation with SimPy PDF p 5 Retrieved August 10 2016 Retrieved from https en wikipedia org w index php title SimPy amp oldid 1226691857, wikipedia, wiki, book, books, library,

article

, read, download, free, free download, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, picture, music, song, movie, book, game, games.