Изменения Пуассона, связь λ и скорости поступления, моделирование сети Java - PullRequest
2 голосов
/ 05 октября 2011

Я разрабатываю сетевой симулятор, в котором события для прибытия пакетов и попыток передачи следуют за распределением Пуассона. У меня есть адаптация алгоритма Кнута:

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);

Симулятор предположительно работает несколько раз, каждый раз с повышенной нагрузкой для измерения производительности. Сначала я думал, что скорость поступления равна λ, но чем больше λ, тем меньше пакетов в секунду я получаю. Какова связь между скоростью прибытия и λ? Я извиняюсь за очень длинный пост, но я действительно расстроен поиском во многих университетских книгах и по всему Интернету без действительного источника для сетевого моделирования ...

Заранее благодарю за помощь.

Ответы [ 2 ]

3 голосов
/ 05 октября 2011

Это может показаться странным, но для вашего процесса Пуассона вам нужно не распределение Пуассона, а экспоненциальное распределение. Посмотрите на Википедию .

Время между прибытиями, которое вы моделируете в своем коде, соответствует экспоненциальному распределению параметра lambda = 1 / 2.5 (лямбда - обратная величина от среднего значения). Вы можете легко получить случайную экспоненциальную переменную с -Math.log (1.0 - rand.nextDouble ()) / lambda.

Существует два вида процесса Пуассона: описанный выше вид сохраняет фиксированное количество событий (1) и временной интервал изменяется. Другое представление сохраняет фиксированный интервал времени, но число событий в этом интервале является случайной величиной (и следует распределению Пуассона).

0 голосов
/ 05 октября 2011

Ts = 2,5 мс.Правильно ли я использую λ = 2,5

Нет.Ts - время . λ - скорость поступления , в пунктах в секунду.См. Уильям Сталлингс, Анализ очередей.

...