- •Определение модели, моделирования, свойств интерполяции и экстраполяции. Классификация моделей по критерию подобия и соотношению точности/абстрактности.
- •Иерархические уровни моделирования вс. Структурные примитивы уровней моделирования.
- •*Математический аппарат моделирования вс на различных уровнях декомпозиции
- •Подходы к описанию функциональных структур. Типы элементов функциональных структур смо, используемых для моделирования вс.
- •Вероятностное моделирование. *Использование метода Монте-Карло для реализации неравномерных распределений.
- •Абстрактные конечные автоматы 1-го и 2-го рода. Матрицы переходов и выходов. Представление графом.
- •*Простые временные сети Петри. Способы задания. Моделирование элементарного цикла обслуживания простой временной сетью Петри.
- •*Ингибиторные сети Петри. Моделирование элементарного цикла обслуживания ингибиторной сетью Петри. Пример моделирования системы или процесса ингибиторной сетью Петри.
- •*Типы сетей Петри, используемые для моделирования вс. Пример моделирования процесса параллельного обслуживания заявок с пакетированием сетью Петри.
- •*Моделирование вс с использованием теории массового обслуживания. Классификация смо. Типы элементов функциональных структур смо, используемых для моделирования вс.
- •*Аналитические модели массового обслуживания.
- •*Обслуживание с ожиданием. Постановка задачи. Свойства экспоненциального распределения времени обслуживания. Обслуживание как Марковский процесс.
- •Обслуживание с потерями. Обслуживание с ограниченным временем ожидания. Постановка задачи. Обслуживание как Марковский процесс.
- •Обслуживание с потерями. Обслуживание с ограниченным временем пребывания. Постановка задачи. Обслуживание как Марковский процесс.
- •Обслуживание с потерями. Моделирование приоритетного обслуживания с использованием теории массового обслуживания.
- •*Имитационные модели массового обслуживания. Элементы имитационных моделей.
- •*Способы управления модельным временем.
- •Алгоритмы имитационного моделирования для событийного управления модельным временем.
- •Алгоритмы имитационного моделирования для пошагового управления модельным временем.
-
Алгоритмы имитационного моделирования для пошагового управления модельным временем.
При пошаговом управлении модельным временем трудоемкость анализа имитационной модели определяется количеством уравнений в итоговой системе и количеством тактов, на которое разделен моделируемый интервал времени. Для моделирования в этом случае используются итерационные алгоритмы функционального моделирования дискретных систем.
Для решения систем уравнений вида V=(V,X), где V – вектор базисных переменных; X – вектор входных переменных модели; – оператор преобразования дискретных переменных, применяются итерационные алгоритмы. Анализ начинается с задания вектора входных воздействий X и вектора начального приближения V0 для искомого вектора V.
ПРИМЕРЫ синхронного анализа логической схемы с использованием итерационных алгоритмов. |
Алгоритм простой итерации состоит в выполнении итераций по следующей формуле:
Vi= (Vi-1, X), |
(10) |
где Vi - значение вектора V на i-й итерации. Если Vi=Vi-1, то решение найдено; если ViVi-1, то выполняется новая итерация; если итерационный процесс не сходится, то это свидетельствует об ошибках моделирования или реального объекта, вызывающих неустойчивость состояния. Практически считается, что процесс не сходится, если условие Vi=Vi-1 не достигается на заранее заданном количестве итераций.
Рассмотрим постановку задачи моделирования СМО с ОА типа G/G/1 (см. рис. 30) для пошагового управления модельным временем.
Вектор входных переменных модели для СМО, представленной на рис. 30, имеет вид:
={tвх1, tвх2},
где tвх1 и tвх2 – время поступления заявок входных потоков на обслуживание в очередь ОА1 и ОА2 соответственно. Вектор базисных координат может быть определен как:
={t2, t3, tвых, L1, L2, L3},
где t2 – время поступления заявки из рецикла на повторное обслуживание в очередь ОА2; t3 – время поступления заявки на обслуживание в очередь ОА3; tвых – время выхода заявки из системы; L1, L2, L3 – длины очередей соответствующих ОА.
Пусть на k-тый момент модельного времени значение вектора базисных координат известно и может быть использовано в качестве начального приближения для расчетов в следующем такте модельного времени:
Пусть в k+1 момент модельного времени значение вектора входных переменных составило:
Требуется определить значение вектора базисных координат в k+1 такте модельного времени. В отсутствии обратных связей (рециклов) в схеме СМО такой расчет потребовал бы однократного пересчета всех базисных координат с учетом нового значения вектора входных переменных, т. е. с учетом значений времен поступления очередных заявок входного потока, округленных до целого числа тактов модельного времени, и времен обслуживания в ОА СМО. При наличии обратных связей, как в заданной СМО, вычисление окончательного значения вектора базисных координат потребует нескольких итераций, так как переменные t2 и tвых взаимосвязаны. Система уравнений модели заданной СМО имеет вид:
где i – функции, зависящие от закона распределения времени обслуживания в АО и дисциплины очереди.
Согласно формуле (10) в правые части уравнений модели на каждой итерации в этом алгоритме подставляются значения базисных координат, полученных на предыдущей итерации. На первой итерации такими значениями являются значения базисных координат из начального приближения вектора, следовательно:
и так далее. Следует обратить внимание, что, например, для расчета базисной координаты в правую часть соответствующего уравнения подставляется значение несмотря на то, что к моменту расчета уже известно и значение . Такая организация расчетов потребует, очевидно, большего количества итераций, но, при этом, в алгоритме нет необходимости выполнять проверку: определено ли значение очередной базисной координаты уже на этой итерации, или еще нет.
Признаком того, что решение найдено, в этом итерационном метода, как и во всех прочих, является совпадение результата последней итерации с предыдущей.
Уменьшить количество вычислений удается при построении итерационного процесса с использованием алгоритма Зейделя, в котором при вычислении очередного из элементов вектора Vi в правую часть уравнений системы там, где это возможно, подставляются не элементы вектора Vi-1, а те элементы вектора Vi, которые уже вычислены к данному моменту, т. е. итерации выполняются по формуле:
Vi= (Vi,Vi-1, X).
Количество итераций в алгоритме Зейделя существенно зависит от порядка, в котором реализуются уравнения модели. В алгоритме Зейделя без ранжирования уравнения модели перечисляются в произвольном порядке. В алгоритме Зейделя с ранжированием уравнения располагаются в том порядке, в каком соответствующие уравнениям элементы схемы образуют путь прохождения заявок. Тогда для анализа схем без обратных связей потребуется всего одна итерация. В схемах с обратной связью метод Зейделя с ранжированием уравнений порождает несколько итераций, но их количество существенно меньше, чем в методе простой итерации.
Ранжирование уравнений производится следующим образом: уравнение модели (элемент СМО) получает ранг j, если все аргументы этого уравнения (входы элемента) ранжированы и максимальный среди рангов аргументов (входов) равен j-1. Переменная модели получает ранг j, если она является левой частью уравнения (является выходом элемента), имеющего ранг j. Выполнение алгоритма начинается с того, что всем входным переменным присваивается ранг j=0. Если в схеме имеются контуры ОС, одна из цепей каждого контура должна быть предварительно разорвана и части разорванных цепей, подключенные к входам элементов, получают ранг j=0. Затем определяют уравнения первого ранга, переменные первого ранга, элементы второго ранга и т. д. В итоге уравнения располагаются в порядке возрастания рангов.
Выполним ранжирование уравнений системы, описывающей СМО, приведенную на рис. 30 и рассмотренную выше, в примере моделирования по методу простой итерации. Присвоим нулевой ранг входным переменным:
Как видно, в четвертом уравнении теперь фигурирует единственная непроранжированная переменная: L1, которая фигурирует и в правой, и в левой части. Ей присваивается ранг, на 1 больший минимального в уравнении, т. е. в данном случае равный 1. Этим же рангом помечаются все вхождения переменной L1 в другие уравнения:
Как видно, после выполнения последнего шага дальнейшее ранжирование становиться невозможным без условного разрыва обратной связи. Условный разрыв позволяет отнести переменную tвых к нулевому рангу. В результате в первом уравнении все переменные в правой части оказываются проранжированными, поэтому t2 в этом уравнении, а также в правых частях второго и пятого уравнений, получает ранг 1:
В пятом уравнении теперь фигурирует единственная непроранжированная переменная: L2, которая фигурирует и в правой, и в левой части. Ей присваивается ранг, на 1 больший минимального в уравнении, т. е. в данном случае равный 2. Этим же рангом помечаются все вхождения переменной L2 в другие уравнения, что позволяет определить ранг переменной t3 равным 3. С учетом вхождений этой переменной получим:
В шестом уравнении теперь фигурирует единственная непроранжированная переменная: L3, которая фигурирует и в правой, и в левой части. Ей присваивается ранг, на 1 больший минимального в уравнении, т. е. в данном случае равный 4. Этим же рангом помечаются вхождение переменной L3 в третье уравнение, что позволяет определить действительный (без условного разрыва обратной связи) ранг переменной tвых равным 5. Окончательный результат ранжирования имеет вид:
Расположим уравнения по возрастанию рангов:
Если сопоставить ранжированный порядок уравнений со схемой на рис. 30, легко убедиться, что порядок вычислений в этом случае соответствует логике прохождения заявок по СМО и порядку изменения переменных модели. Понятно, что для такой простой схемы расположить уравнения в правильном порядке можно и без процедуры ранжирования. Однако в сложных схемах с большим количеством ОА и обратных связей эта задача не тривиальна, и приходиться прибегать к ранжированию.
Наименьший объем вычислений обеспечивает событийный алгоритм. Основная идея событийного метода заключается в выполнении вычислений по уравнениям только активизированных элементов, т. е. элементов, у которых хотя бы на одном входе произошло событие (изменилась входная переменная). В алгоритме событийного метода на каждой итерации имеется своя группа активизированных элементов. Использование метода позволяет существенно сократить затраты машинного времени при анализе имитационных моделей СМО [3, 10, 29].