심피

SimPy
Python 기반의 무료 이산 이벤트 시뮬레이션 패키지인 SimPy
SimPy logo.svg
원본 작성자클라우스 G. 뮐러, 토니 비뇨
개발자온테 룬스도르프, 스테판 셔프케
최초 공개.2002년 9월 17일 (2002-09-17)
안정적 해제
4.0.1 / 2020년 4월 15일; 23개월(2020-04-15)
리포지토리
기록 위치파이톤
운영 체제크로스 플랫폼
유형이산 이벤트 시뮬레이션
면허증MIT
웹사이트simpy.readthedocs.org

심피(SimPy)는 표준 파이썬을 기반으로 한 프로세스 기반 이산 이벤트 시뮬레이션 프레임워크다.이 회사의 이벤트 디스패처는 파이썬의 발전기를 기반으로 하며 비동기 네트워킹이나 다중 에이전트 시스템(모사 및 실제 통신 모두 포함) 구현에도 사용할 수 있다.

SimPy의 프로세스는 간단한 Python 생성기 기능으로 고객, 차량 또는 에이전트와 같은 활성 구성요소를 모델링하는 데 사용된다.심피는 또한 제한된 용량 정체 지점(서버, 계산대, 터널 등)을 모델링하기 위해 다양한 유형의 공유 리소스를 제공한다.버전 3.1부터는 리소스 및 프로세스에 대한 통계를 수집하는 데 도움이 되는 모니터링 기능도 제공할 예정이다.

심피 3.0은 파이썬 2에서 3으로 바뀐다.[1]

시뮬레이션은 "가능한 한 빨리", 실시간(월 클럭 시간) 또는 수동으로 이벤트를 단계별로 진행함으로써 수행될 수 있다.

SimPy로 지속적인 시뮬레이션을 하는 것은 이론적으로 가능하지만, 그것을 실행할 수 있는 기능은 없다.그러나 SimPy는 프로세스가 서로 상호 작용하지 않거나 공유 리소스와 상호 작용하지 않는 고정된 단계 크기로 시뮬레이션에 지나치게 의존하고 있다. 즉 간단한 사용while이 사건을 반복하다

SimPy 분포에는 자습서,[2] 상세 문서 및 많은 예제가 포함되어 있다.

Simpy 4.0은 Python 3.6+가 필요하다.

심피는 MIT 라이선스에 따라 오픈소스 소프트웨어로 출시된다.첫 번째 버전은 2002년 12월에 발매되었다.

심피의 주요 목표 중 하나는 사용하기 쉬운 것이다.간단한 SimPy 시뮬레이션의 예: 각 단계에서 현재 시뮬레이션 시간을 인쇄하는 클럭 프로세스:[3]

>>>수입하다 심피 >>> >>>반항하다 시계를 맞추다(부러워하다, 이름을 붙이다, 진드기를 치다): ...    하는 동안에 진실의: ...        인쇄하다(이름을 붙이다, 부러워하다.지금 당장) ...        양보하다 부러워하다.타임아웃(진드기를 치다) ... >>>부러워하다 = 심피.환경() >>>부러워하다.과정(시계를 맞추다(부러워하다, '빠르다', 0.5)) < 0x의 공정(클록) 객체...> >>>부러워하다.과정(시계를 맞추다(부러워하다, '느림', 1)) < 0x의 공정(클록) 객체...> >>>부러워하다.달리다(까지=2) 단식 0 느린 0 단식 0.5 느린 1 빠른 1.0 단식 1.5 

참조

  1. ^ "SimPy History & Change Log — SimPy 4.0.2.dev1+g2973dbe documentation".
  2. ^ Zinoviev, Dmitry (February 2018). "Discrete Event Simulation. It's Easy with SimPy!". PragPub (104): 1–16.
  3. ^ Scherfke, Stefan (July 25, 2014). "Discrete-event simulation with SimPy" (PDF). p. 5. Retrieved August 10, 2016.