私は、パケットの到着と送信試行のイベントがポアソン分布に従うネットワーク シミュレータを開発しています。私はクヌースのアルゴリズムを適応させています:
public class Poisson {
private double λ;
private Random rand;
/** Creates a variable with a given mean. */
public Poisson(double λ) {
this.λ = λ;
rand = new Random();
}
public int next() {
double L = Math.exp(-λ);
double p = 1.0;
int k = 0;
do {
k++;
p *= rand.nextDouble();
} while (p > L);
return k - 1;
}
}
私の仕様では、ノードはポアソン過程でフロアをランダムに再スケジュールすると述べています。平均到着間隔は、平均 Ts = 2.5ms で指数分布します。λ = 2.5 を使用するのは正しいですか?
新着イベントを作成したいときは、次のようにします。
Event evt = new Event(EventType.ARRIVAL_EVENT,
MasterClock.getTime + poisson.next());
eventList.add(evt);
シミュレーターは、パフォーマンスを測定するために負荷が増加するたびに、数回実行されていると思われます。最初は、到着率は λ に等しいと思っていましたが、λ が大きいほど、1 秒あたりのパケット数は少なくなります。到着率とλの関係は?非常に長い投稿で申し訳ありませんが、ネットワーク シミュレーションの有効なソースがなく、多くの大学の書籍やインターネット全体を検索することに本当にイライラしています...
よろしくお願いいたします。