
- •Содержаhие
- •2. Классические математические
- •3. Стохастические модели
- •4.4. Имитация случайных событий…………………..… 78
- •5. Обработка результатов
- •6. Моделирование вероятностных
- •7. Модели систем
- •8. Алгоpитмизация пpоцеccов
- •9. Унифицированный
- •Введение
- •1. Концепция моделирования
- •1.1. Понятие модели
- •1.2. Концепции определения моделей
- •2. Классические математические модели
- •2.1. Примеры моделей в виде дифференциальных уравнений
- •2.2. Классические модели в виде дифференциальных уравнений
- •2.3. Инерционные модели
- •2.4. Модели на основе передаточных функций
- •2.5. Конечные автоматы
- •3. Стохастические модели объектов
- •3.1. Математические модели случайных процессов
- •3.2. Классификация моделей случайных процессов
- •3.3. Модели марковских процессов
- •4. Имитация случайных событий
- •4.1. Понятие статистического моделирования
- •4.2. Датчики случайных чисел
- •4.3. Проверочные тесты
- •4.4. Имитация случайных событий
- •4.5. Имитация непрерывных случайных величин
- •4.6. Имитация марковского процесса
- •5. Обработка результатов моделирования на эвм
- •5.1. Выбор числа опытов
- •5.2. Значимость оценки
- •5.3. Формулы и алгоритмы для оценки результатов моделирования
- •6. Моделирование вероятностных автоматов
- •6.1. Аналитическое определение вероятностных автоматов
- •6.2. Табличное задание функций переходов и выходов
- •6.3. Имитационное моделирование вероятностных автоматов
- •7. Модели систем массового обслуживания
- •7.1. Общие сведения
- •7.2. Модель входного потока заявок и времени обслуживания
- •7.3. Модель Эрланга
- •7.4. Исследование модели пуассоновского процесса с помощью производящих функций
- •7.5. Модель для определения времени задержки в виде интегро-дифференциальных уравнений Линди-Такача-Севастьянова
- •7.6. Имитационное моделирование одноканальной смо
- •7.7. Имитационные модели многофазных смо
- •7.8. Имитационные модели многоканальных смо
- •7.9. Алгоритмизация имитационной модели смо произвольной структуры
- •8.1. Моделиpующие алгоpитмы
- •9. Унифицированный язык моделирования uml
- •9.1. Основные компоненты
- •9.2. Понятия и компоненты
- •9.3. Диаграммы вариантов использования
- •9.4. Диаграммы классов
- •Вертикальная координата : : Подвеска : : Машина
- •9.5. Типы связей между классами
- •9.6. Расширения понятия класса в uml
- •9.7. Связи между объектами
- •9.8. Диаграммы взаимодействия
- •9.9. Диаграммы состояний
- •9.10. Диаграммы деятельностей
- •10. Объектно-ориентированное моделирование
- •10.1. Определение объекта
- •10.2. Наследование
- •10.3. Полиморфизм
- •10.4. Типы данных и пакеты
- •Библиографический список
- •Аналитические и имитационные модели
6.3. Имитационное моделирование вероятностных автоматов
Для имитации процесса функционирования ВА необходимо задать:
- такты моделирования T, а также цикл по тактам моделирования от нуля до заданного числа тактов моделирования TZ;
- закон (правило) появления (генерации) входных параметров хtХ на входе ВА;
- модель функции переходов ||Р{zt(t)=z(t)/zt-1,хt}||;
- модель функции выходов ||Р(yt/zt-1,хt,zt)||;
- определить счетчики для набора статистических данных.
Закон генерации входных параметров может быть задан в детерминированном виде и в виде стохастического распределения.
Детерминированный закон определяет детерминированные правила появления входного параметра х в такте моделирования T.
Стохастический закон появления входного параметра х в такте моделирования T представляет собой распределение вероятностей W=|w1,w2,…,wm|, где wi - вероятность появления входного параметра хi.
Структурная схема алгоритма имитационной модели ВА при стохастическом законе появления входного параметра х приведена на рис. 6.1.
Рис. 6.1
Подпрограмма
WWOD,
как интерфейсная часть, предназначена
для ввода исходных данных для моделирования,
определенных выше. Подпрограмма WIWOD
составляет также интерфейсную часть
имитационной модели и предназначена
для вывода результатов моделирования.
В подпрограмме GENZ0,
исходя из значений вероятностей
,
генерируется в схеме случайных событий
(см. разд. 4.4) начальное состояние
z(t0)
ВА. Алгоритм подпрограммы GENZ0
приведен на рис. 6.2.
Рис. 6.2
Работает
алгоритм подпрограммы GENZ0
следующим образом. В блоке 1
вырабатывается датчиком случайных
чисел число Р,
равновероятно распределенное на отрезке
[0,1].
В блоках 2 – 4 число Р
сравнивается со значениями
,
,
и т.д. При первом выполнении условия
Р<
считается, что начальным состоянием ВА является состояние zj. Выходным параметром подпрограммы GENZ0 является параметр J – индекс состояния zj.
В подпрограмме GENX, исходя из значений вероятностей w1,w2,…,wm, генерируется входной параметр х. Алгоритм подпрограммы GENX приведен на рис. 6.3.
Рис. 6.3
Алгоритм подпрограммы GENX подобен алгоритму подпрограммы GENZ0. Также в блоке 1 вырабатывается датчиком случайных чисел число Р. В блоках 2 – 4 число Р сравнивается со значениями: w1, w1+w2, w1+w2+w3 и т.д. При первом выполнении условия Р<w1+w2+…+wi считается, что на вход ВА поступает параметр хi. Выходным параметром подпрограммы GENX является параметр I - индекс хi.
Подпрограмму STATX можно реализовать в виде счетчика KX[I], в котором подсчитываются частоты появления входного параметра хi, а также заполнением массива WX[T], который затем будет выведен на экран дисплея и на печать. Алгоритм подпрограммы STATX приведен на рис. 6.4.
Рис. 6.4
В подпрограмме OPRZ, входными параметрами которой является индекс J предшествующего состояния и индекс I входного параметра, определяется состояние в текущем такте T согласно заданным вероятностям функции переходов ||Р{zt(t)=z(t)/zt-1хt}||. Алгоритм подпрограммы OPRZ приведен на рис. 6.5. Работает алгоритм подпрограммы OPRZ следующим образом. В блоке 1 вырабатывается датчиком случайных чисел число Р, равновероятно распределенное на отрезке [0,1].
В блоках 2 – 4 число Р сравнивается со значениями:
P(z1/zj(t-1),хi(t)), P(z1/zj(t-1),хi(t))+P(z2/zj(t-1),хi(t)),
P(z1/zj(t-1),хi(t))+P(z2/zj(t-1),хi(t))+P(z3/z3(t-1),хi(t)) и т.д.
При первом выполнении условия Р<P(z1/zj(t-1),хi(t))+P(z2/zj(t-1),хi(t))+…+P(zk/zj(t-1),хi(t)), считается, что ВА перешел в состояние zk. Таким образом, выходным параметром подпрограммы OPRZ является параметр K – индекс состояния zk. В подпрограмме STATZ в счетчиках KZ[K] подсчитываются частоты нахождения ВА в состояниях zk, а также заполнением массива WZ[T], в котором фиксируется последовательность появления состояний ВА.
Рис. 6.5
Состояние массива WZ[T] затем будет выведено на экран дисплея и на печать. Алгоритм подпрограммы STATZ полностью идентичен алгоритму подпрограммы STATX (см. рис. 6.4).
Подпрограмма OPRY предназначена для определения выходного параметра. Входными параметрами для этой подпрограммы являются:
- индекс J предшествующего состояния (состояния в такте (T-1);
- индекс I входного параметра в текущем такте T;
- индекс K состояния ВА в такте T.
Схема алгоритма подпрограммы OPRY зависит от задания функции переходов. Если функция переходов задана в виде матрицы ||Р(yt/zt-1,хt,zt)||, то схема алгоритма подпрограммы OPRY будет иметь вид, показанный на рис. 6.6.
Рис. 6.6
Отличительная особенность работы алгоритма подпрограммы OPRY состоит в том, что происходит в блоках 2 – 4 сравнение случайного числа Р со значениями:
P(y1/zl(t-1),хi(t)zk(t)),
P(y1/zl(t-1),хi(t)zk(t))+P(y2/zl(t-1),хi(t)zk(t)),
P(y1/zl(t-1),хi(t)zk(t))+P(y2/zl(t-1),хi(t)zk(t))+
+P(y3/zl(t-1),хi(t)zk(t)) и т.д.
При первом выполнении условия
Р<P(y1/zl(t-1),хi(t)zk(t))+P(y2/zl(t),хi(t)zk(t))+…+
+P(yl/zl(t-1),хi(t)zk(t))
считается, что ВА имеет на выходе выходной параметр yl. Таким образом, выходным параметром подпрограммы OPRY является параметр L – индекс выходного параметра yl ВА.
Если функция выходов ВА задана в виде матрицы ||Р(yt/zt-1,zt)||, то в блоке 3 подпрограммы OPRY переменная D определяется как D=D+P[J,I]. В блоках 2 – 4 происходит сравнение случайного числа Р со значениями:
P(y1/zl(t-1),хi(t)), P(y1/zl(t-1),хi(t))+P(y2/zl(t-1),хi(t)),
P(y1/zl(t-1),хi(t))+P(y2/zl(t-1),хi(t))+P(y3/zl(t-1),хi(t))) и т.д.
При первом выполнении условия
Р<P(y1/zl(t-1),хi(t))+P(y2/zl(t-1),хi(t))+…+P(yl/zl(t-1),хi(t)),
считается, что на выходе ВА выходной параметр yl. Выходным параметром подпрограммы OPRY является L.
Если функция выходов ВА задана в виде матрицы ||Р(yt/,хt,zt)||, то в блоке 3 подпрограммы OPRY переменная D определяется как D=D+P[I,K]. В блоках 2 – 4 происходит сравнение случайного числа Р со значениями:
P(y1/хi(t),zk(t)), P(y1//хi(t),zk(t))+P(y2//хi(t),zk(t)),
P(y1//хi(t),zk(t))+P(y2//хi(t),zk(t))+P(y3//хi(t),zk(t)) и т.д.
При выполнении условия
Р<P(y1//хi(t),zk(t))+P(y2//хi(t),zk(t))+…+P(yl//хi(t),zk(t))
считается, что на выходе ВА выходной параметр yl.
Алгоритм подпрограммы STAT приведен на рис. 6.7.
Рис. 6.7
В подпрограмме STATY в счетчиках KY[L] подсчитываются частоты появления на выходе ВА параметра yl, В массиве WY[T] фиксируется последовательность выходных параметров yl. Состояние массива WY[T] затем будет выведен на экран дисплея и на печать. В блоке 3 определяется индекс состояния zj(t+1)=zk(t), (J=K), т.к. состояние ВА zk(t) в текущем такте T будет рассматриваться как предшествующее состояние для последующего такта T+1.