LINUX.ORG.RU

Пуассон. Трафик-генератор. Разобраться.


0

1

Добрый день.

Никак не получается разобраться с Пуассоном.

Задача следующая: Нужно генерить поток трафика с заданной интенсивностью (например, 100 Мбит/c) по закону Пуассона. Интервал между выдачей пакетов - 10 мс. Общее время моделирования - 1 минута.

Нашел формулу: http://book.itep.ru/4/45/image651.gif

Что есть лямбда, k и T в моем случае? Как посчитать количество пакетов, выдаваемых каждые 10 мс?


совет: купи/скачай книжку по мат. стату. Пол дня и дурацких вопросов станет гораздо меньше.

ugoday ★★★★★
()

zeonid> Что есть лямбда, k и T в моем случае?

вопрос неправильно ставишь. Спрашивать надо «что такое p(k)?»

demidrol ★★★★★
()
Ответ на: комментарий от zeonid

Там всё это должно быть написано. Дажее в вики всё это есть.

ugoday ★★★★★
()
Ответ на: комментарий от anonymous

>>Как посчитать количество пакетов, выдаваемых каждые 10 мс?

Очевидно, один пакет.

Если так, у нас будет равномерное распределение. И скорость выдачи 100*длина пакета/1 секунду.

zeonid
() автор топика
Ответ на: комментарий от AIv

>lambda - это параметр, в Вашем случае зависящий от трафика, свкажности

и размера пакета.

Размер пакета колеблется от 64 до 1500 байт.

zeonid
() автор топика
Ответ на: комментарий от zeonid

>Размер пакета колеблется от 64 до 1500 байт.

Но фиксированный на данном этапе моделирования.

zeonid
() автор топика
Ответ на: комментарий от AIv

>то есть один пакет в 10мс, но переменного размера?

Размер пакета фиксированный, а количество передаваемых пакетов за 10 мс. варьируется так, чтобы процесс генерации за определенный промежуток времени подчинялся пуассоновскому распределению.

zeonid
() автор топика
Ответ на: комментарий от zeonid

Ну тогда lambda это среднее количество пакетов в одной выдаче, т.е. траффик*dt/размер пакета

Дальше строим функцию G, обратную Г(к+1,lambda)/к! и для каждой выдачи применяем ее к равномерно распределенному случайному источнику лежащему в интервале от нуля до единицы - получаем число пакетов в выдаче.

AIv ★★★★★
()

Нужно генерить поток трафика с заданной интенсивностью

по закону Пуассона

Параграфы не слишком вяжутся. Может вместо интенсивности имелся заданный объем, который нужно прогнать за минуту? Иначе, в пределе, если скорость трафика фиксированная, то распределение равномерное будет.

baverman ★★★
()

Тебе пуассоновский поток нужен, или что?

anonymous
()
Ответ на: комментарий от AIv

Дальше строим функцию G, обратную Г(к+1,lambda)/к! и для каждой выдачи применяем

Что-то ты перемудрил. Достаточно на каждом шаге выдавать p(k)*общий-объем-который-надо-пропустить.

baverman ★★★
()
Ответ на: комментарий от baverman

Так и есть. Под интенсивностью предполагалась средняя интенсивность - общий_трафик / время.

zeonid
() автор топика
Ответ на: комментарий от baverman

Да ну? А что тогда такое к по твоему и где его взять для построения p(k)?

Я тер.вер. не помню, поэтому сделал бы табулированную ф-ю, но наверное есть какое то аналитическое представление, как для гаусса, только его найти надо.

AIv ★★★★★
()

КОроче, Вам нужен источник целых случайных чисел (число пакетов в выдаче) с пуассоновским распределением. Хотите ваяйте сами (это не так сложно, алгоритм я привел выше), хотите ищите готовый в какой нить библиотеке - их должно быть.

AIv ★★★★★
()
Ответ на: комментарий от AIv

А что тогда такое к по твоему и где его взять для построения p(k)?

Способ не красивый и не очень точный, но задача ТС этого и не требует:

k это метки на шкале времени, положим max(k) == 20, сооветствующий минуте, тогда каждый [k, k+1) интервал мы должны выгнать p(k)*V траффика. Получить значения для 10ms отчетов можно теми же трапециями.

baverman ★★★
()
Ответ на: комментарий от baverman

Способ просто неправильный. Т.е. на больших временах получим естественно пуассона, но локально будет черти чего. Вы путаете ф-ю распределения и события по которым она строится. От большой выборки переход к -фии распределения однозначен, от ФР к одному событию без случ. источника перейти нельзя.

Вроде пуассон через биномиальное распределение связан с гауссом (нормальным распределнием) а генератор гаусса есть во всех приличных библиотеках (ну на крайний случай я знаю как его сделать правильно, 5 строчек на С). Так что если ТС лень строить табличную ф-ю - пусть найдет эту связь а дальше совсем все просто;-)

AIv ★★★★★
()
Ответ на: комментарий от baverman

Точнее я гоню, и способ СОВСЕМ неправильный, потому что получим в итоге не пуассона а что то совсем третье, с двумя гоорбами. ФР и события это вещи свосем разные.

AIv ★★★★★
()
Ответ на: комментарий от AIv

Вы путаете ф-ю распределения и события по которым она строится.

Ничего подобного. Где вообще в задаче ТС сказано про случайные величины? Мой способ дешев и сердит. Что в условии мне мешает принять распределение Пуассона за функцию трафика?

baverman ★★★
()
Ответ на: комментарий от baverman

1) С-но задача моделирования трафика подразумевает что пакеты приходят случайно, иначе не надо и пуассона приплетать, это классика жанра.

2) Вы можете принять за ф-ю трафика (число пакетов от времени) все что угодно, но если Вы примете пуассона, то итоговое распределение будет иметь два-три максимума и на пуассона будет совершенно непохоже. Хотите - верьте, хотите - проверьте. Я готов даже поспорить - мой старый ноут Dell Latitude LS 12" против скажем 20 бутылок шампанского Asti Martini. Неэтично с моей стороны конечно - все таки я лет 15 методом стохатического аналога считаю, но Вы так забавно упорствуете в своих заблуждениях;-))))

AIv ★★★★★
()
Ответ на: комментарий от AIv

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

ТС: смотри пуассоновский поток.

baverman ★★★
()
Ответ на: комментарий от baverman

А, не хотите значит спорить;-)

Не всплыла потому что я с пуассоном никогда дела не имел, в физике как то все больше гаусс или какие то сугубо табулированные вещи. Но я не исключал, что она есть, смю выше что ли. И с-но эта формула и есть аналитеическое представление обратной ф-ии от Г....

Кстати, Раз уж Вы нашли ее - так озвучьте (или ссылочку)? Любопытно ж...

AIv ★★★★★
()
Ответ на: комментарий от baverman

> Трапеции не прокатили, слишком грубое приближение, соглашусь

Не в трапециях дело, а в ошибочности предложенного Вами алгоритма. Что мешает аналитически задать эту несчастную p(k) в Вашей интерпретации?

AIv ★★★★★
()
Ответ на: комментарий от AIv

http://stratum.ac.ru/textbooks/modelir/lection28.html

Там, правда, без матана совсем, как раз для ТС. И так как события случайны по времени, надо будет их еще агрегировать по 10ms.

Что мешает аналитически задать эту несчастную p(k)

Я обязательно подумаю и представлю решение по моему способу. Сейчас что-то совсем бредовое выходит. Ну или признаю ошибочность.

baverman ★★★
()
Ответ на: комментарий от baverman

Ссылка угу. Сначала не понравилось, но подумал и понял что подходит;-) Ну в общем -1/log( xi ), где xi случ распределенная величина в интервале (0:1) спасет автора темы (c точностью до нормировки);-)

Ждем-с решения по Вашему способу;-)

AIv ★★★★★
()

Вот это не то что нужно?

import random

TOTAL=60.0
MEAN=0.01
LAMBDA=1.0 / MEAN

t = 0.0

while t < TOTAL:
    t += random.expovariate(LAMBDA)
    print(t)

anonymous
()
Ответ на: комментарий от anonymous

Блин, не прочитал про заданную интенсивность.

anonymous
()
Ответ на: комментарий от AIv

Экспоненциальное распределение имеют интервалы между пакетами в пуассоновском потоке, разве нет?

anonymous
()
Ответ на: комментарий от baverman

ЧТо б Вы лишний раз не мучались - если ф-я трафика непрерывна, любой миниумум ее производной должен давать максимум на плотности вероятности. У пуассона этот макс один, он сидит условно в середине области определения (если выкинуть правый хвост), значит искомая ф-я монотонна и имеет один мин производной.

AIv ★★★★★
()
Ответ на: комментарий от anonymous

Вот этого я уже не скажу, таких тонкостей не помню;-) Сходу непохоже - ф-я 1/log(xi) как раз для интервала в пуассоновском потоке, а для экспоненц. распределения был бы log(xi).

AIv ★★★★★
()
Ответ на: комментарий от AIv

Посыпаю голову пеплом.

Вы путаете ф-ю распределения и события по которым она строится.

Именно так, после ознакомления с соответствующей литературой осознал свою ошибку.

ЧТо б Вы лишний раз не мучались

Лишний раз никогда не вредно почитать и подумать самому, поэтому благодарю за такую возможность.

baverman ★★★
()
Ответ на: комментарий от baverman

Фихед. Вам спасибо за формулу с логарифмом, и за содержательную дискуссию - мне полезно было еще раз осознать всю эту бодягу;-)

AIv ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.