Я разрабатываю сетевой симулятор, в котором события для прибытия пакетов и попыток передачи следуют за распределением Пуассона. У меня есть адаптация алгоритма Кнута:
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);
Симулятор предположительно работает несколько раз, каждый раз с повышенной нагрузкой для измерения производительности. Сначала я думал, что скорость поступления равна λ, но чем больше λ, тем меньше пакетов в секунду я получаю. Какова связь между скоростью прибытия и λ?
Я извиняюсь за очень длинный пост, но я действительно расстроен поиском во многих университетских книгах и по всему Интернету без действительного источника для сетевого моделирования ...
Заранее благодарю за помощь.