Мы используем метод обратной функции для моделирования равномерного и показательного распределений. Решаем уравнение . Для этого, подставив выражение для плотности равномерного распределения на место , вначале вычислим интеграл в левой части уравнения:
,
а затем для вычисления значений u равномерно распределенной в интервале (a,b) случайной величины через значения g случайной величины , равномерно распределенной в интервале (0,1) просто выразим переменную u через переменную g из уравнения :
Заметим, что полученная формула очевидна. Действительно, для пересчета равномерно распределенной в интервале (0,1) случайной величины в случайную величину, равномерно распределенную в интервале (a,b), мы должны вначале «растянуть» диапазон значений единичной длины в диапазон значений (b-a) умножая значения g на (b-a), а затем переместить полученный результат из интервала (0,1) в интервал (a,b), прибавив к нему значение a.
Запись полученной формулы в виде функции языка С:
float uniform (float a, float b) {return rand()*(b-a)+a;}
|
|
позволит нам программно генерировать случайные величины с равномерным распределением в любом заданном конечном интервале значений (a,b).
Глава 2 Имитационное моделирование процесса
Постановка задач (Вариант №2)
Провести имитационное моделирование работы парикмахерской. Количество парикмахеров в парикмахерской – n. Время моделирования –t часов. Интервал времени между двумя последовательными посещениями парикмахерской клиентами моделировать случайной величиной τ1 с дискретным равномерным распределением в диапазоне значений [ τ1min,…, τ1max ] минут. Время обслуживания одного клиента моделировать случайной величиной τ2 с распределением P(τ2). Цена обслуживания клиента определяется функцией времени обслуживания вида c= aτ2.
Если в момент прибытия очередного клиента парикмахеры заняты, то клиент помещается в очередь. Максимальная длина очереди 10 чел. Если длина очереди максимальна, то производится отказ в обслуживании очередного клиента.
Рассчитать:
§ количество обслуженных клиентов за период моделирования;
§ выручку парикмахерской R за период моделирования;
§ средний размер очереди;
§ число отказов r.
Параметры модели:
§ n=2;
§ t=8;
§ τ1min =1, τ1max =15;
§ P(τ2) = (10 12 13 14 15 16 17 18 19)
(0,05 0,05 0,05 0,05 0,05 0,2 0,2 0,2 0,15)
(первая строка - значение случайной величины в минутах, вторая - соответствующие вероятности);
§ а =3
Определить методом машинного эксперимента параметр τ1max, максимизирующий выручку R при условии r=0. Средство реализации модели – программа на языке С++.