Главная
Блог разработчиков phpBB
 
+ 17 предустановленных модов
+ SEO-оптимизация форума
+ авторизация через соц. сети
+ защита от спама

Моделирование простейшего потока

Anna | 17.06.2014 | нет комментариев
Всего с поддержкой 2-х слов дозволено охарактеризовать такие вещи, как

  • поток вызовов на телефонной станции
  • поток автомобилей на дороги
  • поток абонентов, звонящих в техподдержку

и многое другое. Всё это именуется «примитивный поток».

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

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

Математическая модель простейшего потока требует от него нескольких свойств.

  1. Стационарность. Это обозначает, что вероятность попадания того либо другого числа событий на определенный отрезок времени зависит только от длины участка и не зависит от того, где размещен данный участок.
  2. Неимение последействия. Это обозначает следующее: если два интервала времени не пересекаются, то число событий, попавших на один из них, не зависит от числа событий, попавших на иной участок.
  3. Ординарность.Поток является ординарным, если вероятность попадания на один довольно малыйотрезок времени 2-х и больше событий пренебрежимо поменьше его длины.

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

Скажем, поток автомобилей на дороги в сутки не является простейшим, т. к. он не является стационарным: днём автомобилей поменьше, чем утром и вечером, в то время как тот же поток в час пик теснее дозволено считать простейшим.

Основным тут является то, что волнующее нас число подчиняется дискретному Пуассоновскому разделению.

Алгорифм

Пускай нам задано значение параметра a — среднее число звонков в техподдержку, к примеру, и нам нужно сгенерировать случайную величину X, подчиняющуюся закону разделения Po(a)

В классе Random языка C#, тот, что я предпочел в качестве примера, есть способ Sample(), тот, что генерирует случайное число от 0 до 1, равномерно на этом отрезке распределённое.

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

Пускай у нас имеется некоторое число самостоятельных случайных чисел, равномерно распределённых на отрезке [0;1]. Тогда наименьшее число X, такое, что произведение X наших случайных чисел сурово поменьше, чем exp(-a), подчиняется Пуассоновскому разделению с параметром a

В итоге мы получаем дальнейший алгорифм:

class Poisson: Random {
 public static uint Generate(double a){
  uint X = 0;
  double Prod = 1;
  double U = base.Sample();
  Prod *= U;
  while (Prod >= Math.exp(-a)) {
   X  ;
   U = base.Next();
   Prod *= u;
   }
   return X;
  }
 }
}

Вычислительная трудность этого алгорифма составляет O(a), впрочем тут нам доводится неоднократно генерировать случайную величину, когда, на самом деле, дозволено обойтись каждого лишь одной:

 public static uint Generate(double a){
  uint X = 0;
  double Prod = Math.Exp(-a);
  double Sum = Prod;
  double U = base.Sample();
  while (U > Sum) {
   X  ;
  Prod *= a/Convert.ToDouble(X);
  Sum  = Prod;
  }
 return X;
 }

Трудность этого алгорифма также составляет O(a).

 

Источник: programmingmaster.ru

Оставить комментарий
БАЗА ЗНАНИЙ
СЛУЧАЙНАЯ СТАТЬЯ
СЛУЧАЙНЫЙ БЛОГ
СЛУЧАЙНЫЙ МОД
СЛУЧАЙНЫЙ СКИН
НОВЫЕ МОДЫ
НОВЫЕ СКИНЫ
НАКОПЛЕННЫЙ ОПЫТ
Форум phpBB, русская поддержка форума phpBB
Рейтинг@Mail.ru 2008 - 2017 © BB3x.ru - русская поддержка форума phpBB