うん、難しい数学の話はよくわからんので、無し。(´・ω・`)
工学屋としてはいいから結果と道具を寄越せ、理屈は任せるスタンスで。
(ある程度は理解しないとあかんけどねぇ・・。)
んで、何かというと WebSphereのコネクションプールとか、スレッドプールとかの
キューイングネットワークの設定するときによく使われる窓口理論なんだけど式がややこしいあれ。
なんとか過程とか分布とかいわれても統計学やってないとさっぱりだと思う。
ならばシミュレーションしてみよう。
理屈はよくわからんが、どのぐらい必要かわかればよいのだ(ぉ
(1)pythonを用意しよう
(2)pip install simpy
あとはsimpyのチュートリアルとにらめっこして、youtubeのチュートリアルを見て
コネコネしてみる。
・コネコネしていてわかったこと
シミュレーション単位はミリ秒でやったほうがよい。少数秒でやるとpythonの処理の遅延でうまくシミュレートできない。
random.expovariate(1.0/transactionTime) の意味は 収束させたい数(transactionTime)の逆数を引数に入れる。
間隔が指数分布になっていると到着率がポアソン分布になるので、結果がマルコフ過程に\(^o^)/ウボア
リソースの獲得待ちはwithで
with self.res.request() as req:
yield req
時間を消費するのを待つところ
yield env.timeout(generate_timimg)
このgenerate_timimgの扱いがよくわかってない(´・ω・`)
これも指数分布にしていいのか、なんでもいいのか、固定値なのか、で結果変わります。
15分分シミュレーションするなら、以下のように(ミリ秒単位)
env.run(until=1000*60*15) # 15分シミュレーション(unit=msec)
珍しく備忘録だな、こりゃ。(゚Д゚)
posted by koteitan at 11:30|
Comment(0)
|
python
|

|