Как рассчитать следующий интервал вхождения пакета, если вы знаете, что он следует распределению Пуассона? - PullRequest
2 голосов
/ 02 января 2012

Предположим, что у вас есть несколько компьютерных станций, эти компьютерные станции отправляют пакеты в сеть.

Теперь время передачи пакета занимает S секунд. количество пакетов, которое будут отправлять все компьютерные станции, следует распределению Пуассона

таким образом, вероятность того, что L пакетов будет сгенерировано в заданное время кадра, равна Pr [k] = (λ ^ (L) * e ^ (- λ)) / (L!)

Теперь я хочу смоделировать это, вычисляя на каждом шаге следующий интервал вхождения, который является интервалом, когда следующий пакет будет сгенерирован станцией.

Я нашел какой-то код и взял уравнение:

            next_occurrence_interval= 1/λ  * log(1/(1-rand))

Если я правильно помню, rand дает случайное число от 0 до 1. Я пытаюсь понять, что это такое и откуда это уравнение, так что я смогу использовать его в своей программе сетевого моделирования, которая Я пытаюсь запрограммировать.

Ответы [ 2 ]

0 голосов
/ 02 января 2012

Это экспоненциальное распределение. Используйте формулу -ln (1 - random()) / λ,, где λ - среднее число событий в единицу времени.

0 голосов
/ 02 января 2012

Это процесс Пуассона, который описывает процесс, в котором события происходят независимо с заданной средней скоростью.Кажется, я помню, это означает, что времена прохождения будут следовать экспоненциальному распределению.

Теперь давайте посмотрим на вашу формулу.Обратите внимание: поскольку rand возвращает одинаковое число от 0 до 1, 1-rand - это то же самое.Эта часть не имеет значения!То есть rand эквивалентно 1-ранду.

Хорошо, так что теперь, посмотрите на найденное вами выражение.Как я уже сказал, то, что вы написали, эквивалентно

next_occurrence_interval = 1/λ  * log(1/rand)
  =  1/λ  * (log(1) - log(rand))
  =  1/λ  * (-log(rand))

Примерно сейчас вы МОЖЕТЕ начать распознавать это как способ генерирования экспоненциально распределенного случайного числа.

...