待ち行列シミュレーション結果のまとめ

課題2 の sample2.cpp を ρ=0.1〜0.9 で複数回実行した出力を読み込み、理論値 (M/M/1 または M/G/1 P-K) と比較する。

1. シミュレーション結果の読み込み

rho = … , lambda = … , mu = … / L = … / W = … の組を自動抽出。複数回の実行結果をそのまま連結して貼り付けて OK。

2. サービス時間分布(理論値の計算用)

平均パケット数 L
平均滞在時間 W(Little の式)

3. 結果

シミュレーション L 理論値 L(ρ)
シミュレーション W 理論値 W(ρ)
ρλμ L (sim)L (理論)誤差 % W (sim)W (理論)誤差 %

4. バッファ状態のトレース(server1 の待ち行列長 Q(t))

sample2.cpp の先頭で #define TRACE_QUEUE 1 にして再ビルド・実行すると queue_trace.csv が出力される。 ファイルを読み込んでから時間窓を指定。
Q(t)(階段状)

バッファ動作アニメーション

ソース → バッファ(server1 の待ち行列)→ サーバ → 離脱。バッファには現在の Q(t) 個のパケットが表示される。到着時はバッファが緑に、離脱時はサーバが赤に一瞬光る。