Я разрабатываю сетевой симулятор, в котором события для прибытия пакетов и попыток передачи следуют распределению Пуассона. У меня есть адаптация алгоритма Кнута:
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,5 мс. Правильно ли я использую λ = 2,5?
Когда я хочу создать новое событие прибытия, я делаю что-то вроде:
Event evt = new Event(EventType.ARRIVAL_EVENT,
MasterClock.getTime + poisson.next());
eventList.add(evt);
Предполагается, что симулятор запускается несколько раз, каждый раз с повышенной нагрузкой для измерения производительности. Сначала я думал, что скорость поступления равна λ, но чем больше λ, тем меньше пакетов в секунду я получаю. Какова связь между скоростью прибытия и λ? Прошу прощения за очень длинный пост, но я действительно разочарован поиском во множестве университетских книг и по всему Интернету без действительного источника для моделирования сети...
Спасибо заранее за вашу помощь.