読者です 読者をやめる 読者になる 読者になる

bekkou68の日記

開発しているサービス, IT技術, 英語など。

銀行に客(単数)が決まった時間に来て決まった時間居る - Customer Arrives and Stays Fixed Time at Bank

SimPy Python

シナリオ - Scenario

シミュレーションは時間 0 から 100 まで行います。
Tom は時間 10 に銀行に着きます。
Tom は時間 20 の間、銀行に居ます。


Simulation starts from time 0 to 100.
Tom arrives bank at time 10.
Tom stays there for time 20.

実装 - Implementation

"""
FileName:
    01100_CustomerArrivesFixedStaysFixed.py
Abstract:
    Customer arrives and stays for fixed time.
Scenario:
    Simulation starts from time 0 to 100.
    Tom arrives bank at time 10.
    Tom stays there for time 20.
Author:
    bekkou68
"""
from SimPy.Simulation import *

# Simulation Data --------------------------------------------------

SIMULATION_MAX_TIME = 100.0 # Simulation lasts time 100.0.
CUSTOMER_NAME = "Tom"       # Customer has name, Tom!
ARRIVE_TIME = 10.0          # Customer arrives at time 10.0.
STAY_TIME = 20.0            # Customer stays Bank time 20.0.

# Model --------------------------------------------------

class Customer(Process):
    def visit(self, stayTime):
        print "%8.3f ... %s: I arrives at Bank." % (now(), self.name)
        yield hold, self, stayTime
        print "%8.3f ... %s: I must leave from Bank." % (now(), self.name)

# Simulation --------------------------------------------------

initialize()

customer = Customer(name=CUSTOMER_NAME)
activate(customer, customer.visit(STAY_TIME), at=ARRIVE_TIME)

print "%8.3f ... Simulation starts." % now()
simulate(until=SIMULATION_MAX_TIME)
print "%8.3f ... Simulation ends." % now()

実行 - Execution

python 01100_CustomerArrivesFixedStaysFixed.py
   0.000 ... Simulation starts.
  10.000 ... Tom: I arrives at Bank.
  30.000 ... Tom: I must leave from Bank.
  30.000 ... Simulation ends.


Tom が銀行を出てからは何も起きないので、シミュレーションは時間 30 で終了します。
Simulation ends time 30 because no events happen after Tom leaves from Bank.


とても単純なケースですね。
Too simple case.


モジュール名は、管理の簡単ため、数値からはじめています。
Module name was started to administrate easy.


以下は、参考文献です。
The following is reference.

The Bank: an example of a SimPy Simulation


−ω−