8149

Моделирование систем. Учебное пособие

Книга

Информатика, кибернетика и программирование

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

Русский

2013-02-05

1011.5 KB

358 чел.

Учебное пособие соответствует программе семестрового курса лекций по моделированию систем. Содержит общие сведения о моделировании систем, рассмотрены математические схемы моделирования, а также формализация и алгоритмизация процесса функционирования систем. В учебном пособии дано описание программной среды GPSS и руководство пользователя СПО GPSS/PC.

Пособие предназначено для студентов дневной и заочной форм обучения, обучающихся по направлению: 220200 – автоматизация и управление и специальности  220201 – управление и информатика в технических системах и по направлению бакалавриата: 220200 – автоматизация и управление.

“Понять – значит построить модель”.

У.Томсон (Кельвин)

ВВЕДЕНИЕ

Моделирование – это методология научной и практической деятельности людей, основанная на построении, исследовании и использовании моделей.

Моделирование решает задачи изучения и исследования объектов и систем, предсказания их функционирования и поведения.

При управлении модели позволяют оценивать ненаблюдаемые переменные процесса функционирования системы, прогнозировать состояние процесса при имеющихся или выбираемых управлениях и синтезировать алгоритмы и стратегии управления.

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

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

С развитием вычислительной техники наиболее эффективным и универсальным методом исследования систем стало компьютерное (машинное) моделирование, сущность которого состоит в проведении на ЭВМ экспериментов с моделью, представляющей собой программный комплекс, описывающий формально и алгоритмически поведение элементов системы в процессе её функционирования, т.е. их взаимодействие друг с другом и внешней средой.

Краткое изложение основ теории моделирования является основной задачей данного учебного пособия.

 


“Определите значения слов,     

И вы избавите человечество

От половины его заблуждений”.

 Р.Декарт

1. ОБЩИЕ СВЕДЕНИЯ О МОДЕЛИРОВАНИИ СИСТЕМ

1.1. Основные понятия и определения

Важными понятиями моделирования систем являются понятия “система”, “внешняя среда”, “модель” и “моделирование” [8].

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

Внешняя среда – это множество существующих вне системы элементов любой природы, оказывающих влияние на систему или находящихся под её влиянием.

Функционирование системы – проявление функций системы во времени, означает переход системы из одного состояния в другое, т.е. движение в пространстве состояний.

Состояние системы – минимально-необходимый набор переменных величин, способных однозначно определять положение системы в любой момент времени.

Модель – изображение системы на основе принятых гипотез и аналогий. Другими словами, модель (лат. modulus мера) – это объект-заместитель объекта-оригинала, обеспечивающий изучение некоторых свойств оригинала.

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

Аналогии – суждения о каком-либо частичном сходстве двух объектов.

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

Процесс создания модели – это диалектический процесс, заключающийся в раскрытии неопределенностей системы и постоянном усложнении модели с ростом знаний об исследуемом объекте. Схематично процесс создания модели представлен на рис. 1.1, где модель, являющаяся изображением системы, представлена бесконечно большой ёмкостью, заполняемой информацией об изучаемом объекте. При этом одной системе может соответствовать несколько моделей.

В качестве модели может выступать словесное описание объекта, рисунок, музыкальное произведение и т.д. Перечисленные модели обладают тем недостатком, что они неоднозначно интерпретируются. Поэтому в технике для однозначного понимания при создании моделей используется язык математики. Математическая модель представляет собой совокупность математических объектов и отношений, которые отображают объекты и отношения, существующие в некоторой области реального мира (предметной области).

Рис. 1.1. Схема процесса создания модели

Моделирование – представление объекта моделью для получения информации об этом объекте путём проведения экспериментов с его моделью.

Эффективность экспериментальных исследований сложных систем крайне низка, поскольку проведение натурных экспериментов с реальной системой

  •  требует больших материальных затрат;
  •  значительного времени;
  •  может нарушить установленный порядок работы;
  •  невозможно поддержание одних и тех же условий работы в течение всего времени проведения экспериментов;
  •  результаты неоднозначны при повторном проведении экспериментов, так как изменяются условия их проведения;
  •  часто эксперимент вообще  повторить невозможно;
  •  исследования нештатных ситуаций невозможны без риска разрушения системы;
  •  невозможность рассмотрения множества альтернативных вариантов;
  •  если составной частью системы являются люди, они работают по иному, чувствуя, что за ними наблюдают (хауторнский эффект).

Эксперимент – это процедура организации и наблюдения каких-либо явлений, которые осуществляются в условиях, близких к естественным, либо имитируют их.

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

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

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

Теория моделирования – это теория замещения объектов-оригиналов объектами-моделями и исследование свойств объектов на их моделях.

Требования, предъявляемые к модели. Такими требованиями прежде всего являются: адекватность, полнота-простота и эффективность.

Основное требование, которому должна удовлетворять модель, это адекватность объекту. Модель адекватна объекту, если результаты моделирования подтверждаются на практике и могут служить основой для прогнозирования процессов, протекающих в исследуемых объектах. Адекватность модели зависит от цели моделирования и принятых критериев.

Противоречивое требование полноты и простоты модели разрешается её целевым назначением. Для правильно построенной модели характерным является то, что она выявляет лишь те закономерности, которые нужны исследователю в соответствии с поставленной целью, и не рассматриваются несущественные для данного исследования свойства системы. Оригинал и модель должны быть одновременно сходны по одним признакам, существенным с точки зрения решаемой задачи, и различны по другим, что позволяет выделить наиболее важные изучаемые свойства. В этом смысле модель выступает как некоторый “заместитель” оригинала, обеспечивающий фиксацию и изучение лишь нужных свойств реального объекта. Для правильного выявления существенных свойств реального объекта пользуются законом Парето [15]: в каждой группе или совокупности существует жизненно важное меньшинство и тривиальное большинство; ничего действительно важного не происходит, пока не затронут жизненно важное меньшинство.

Эффективность модели оценивается рядом критериев, в том числе значимостью, точностью и достоверностью результатов моделирования, временем построения и работы с моделью, затратами машинных ресурсов (времени и памяти), стоимостью разработки и эксплуатации модели. Другими словами, эффективность определяется как некоторая разность между показателями ценности результатов, полученных в итоге эксплуатации модели, и теми затратами, которые были вложены в её разработку и создание.

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

Моделирование эффективное средство познания природы. Процесс моделирования предполагает наличие: объекта исследования; исследователя, перед которым поставлена конкретная задача; модели, создаваемой для получения информации об объекте. Причём по отношению к модели исследователь является экспериментатором, только в данном случае эксперимент проводится не с реальным объектом, а с его моделью.

При управлении модели позволяют оценивать ненаблюдаемые переменные процесса, прогнозировать состояние процесса при имеющихся или выбираемых управлениях и синтезировать оптимальные законы управления.

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

 Принципы моделирования. Основными принципами моделирования являются [3].

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

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

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

Принцип агрегирования. Модель объекта представляется агрегатами (подсистемами), которые пригодны для описания стандартными математическими схемами.

Принцип параметризации. Модель должна иметь в своем составе подсистемы, характеризующиеся параметрами.

Роль ЭВМ при моделировании. В настоящее время универсальным и эффективным техническим средством решения инженерных задач на базе моделирования является ЭВМ. Модель в этом случае представляет собой программный комплекс. Машинный эксперимент с моделью даёт возможность:

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

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

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

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

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

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

В настоящее время разработано большое количество систем моделирования, например, Mathcad, Matlab, VisSim, GPSS [1, 2, 3, 4, 5, 16].

Использование средств вычислительной техники для целей моделирования часто создаёт иллюзию гарантии исследования системы любой сложности. При этом игнорируется тот факт, что в основу любой модели положено трудоёмкое по затратам времени и материальных ресурсов предварительное изучение явлений, имеющих место в объекте-оригинале. И от того, насколько детально изучены реальные явления, насколько правильно проведена их формализация и алгоритмизация, зависит в конечном итоге успех моделирования конкретной системы. Компьютер при этом выступает лишь как инструмент моделирования.

 

1.2. Принципы подхода в моделировании систем

В  моделировании систем используются классический (индуктивный) и системный (дедуктивный) подходы [8].

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

Процесс синтеза модели на основе классического подхода схематично представлен на рис. 1.2 и включает следующие этапы:

  1.  Декомпозиция реальной системы, подлежащей моделированию, на отдельные подсистемы.
  2.  Выбор исходных данных для моделирования, включающих:
    •  назначение;
      •  условия работы;
        •  внешнюю среду;
        •  ограничения.
  3.  Постановка целей, отображающих отдельные стороны процесса  моделирования системы.
  4.  Формирование на базе целей и исходных данных компонент будущей модели.
  5.  Совокупность компонент объединяется в модель.

Рис. 1.2. Процесс синтеза модели на основе классического подхода:

Д – исходные данные; Ц – цели; К – компонента модели

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

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

Процесс синтеза модели на основе системного подхода схематично представлен на рис. 1.3 и включает следующие этапы:

  1.  На основе цели функционирования системы, которая определяется вопросами, на которые исследователь хочет получить ответы с помощью модели, и исходных данных, включающих назначение модели, условия работы системы, внешнюю среду для системы и накладываемые ограничения, формируются требования к модели системы.
  2.  Определение подсистем модели на базе сформированных требований.
  3.  Подбор элементов подсистем модели на основе данных для их реализации.
  4.  Выбор составляющих элементов будущей модели на основе сформированных критериев выбора.
  5.  Получившаяся таким образом модель является интегрированным целым.

Рис. 1.3. Процесс синтеза модели на основе системного подхода:

Ц – цель моделирования; Д – исходные данные; КВ – критерии выбора

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

Таким образом, в основе системного подхода лежит рассмотрение системы как интегрированного целого, причём это рассмотрение при разработке начинается с главного: формулировки цели функционирования.

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

1.3. Классификация видов моделирования систем

В основе классификации видов моделирования систем лежат различные признаки, такие как

  •  степень полноты модели;
  •  характер изучаемых процессов в системе;
  •  форма представления системы.

Классификация видов моделирования систем приведена на рис. 1.4 [8].

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

Рис. 1.4. Классификация видов моделирования систем

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

B зависимости от характера изучаемых процессов в системе все виды моделирования могут быть разделены на детерминированные и стохастические, статические и динамические, дискретные, непрерывные и дискретно-непрерывные.

Детерминированное моделирование отображает детерминированные процессы, т.e. процессы, в которых предполагается отсутствие всяких случайных воздействий; стохастическое моделирование отображает вероятностные процессы и события.

Статическое моделирование служит для описания поведения объекта в какой-либо момент времени, a динамическое моделирование отражает поведение объекта во времени.

Дискретное моделирование служит для описания процессов, которые предполагаются дискретными, соответственно непрерывное моделирование позволяет отразить непрерывные процессы в системах, a дискретно-непрерывное моделирование используется для случаев, когда хотят выделять наличие как дискретных, так и непрерывных процессов.

B зависимости от формы представления объекта (системы) можно выделить мысленное и реальное моделирование.

Мысленное моделирование – это моделирование объектов без их практической реализации. Реальное моделирование заключается в проведении исследования на реальном объекте целиком или его части.

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

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

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

 Аналоговое моделирование основывается на применении аналогий различных уровней.

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

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

Языковое моделирование основывается на фиксированном наборе понятий. В основе языкового моделирования лежит тезаурус – словарь, который очищен от неоднозначности, т.е. в нём каждому слову может соответствовать лишь единственное понятие.

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

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

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

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

Для аналитического моделирования характерно то, что процессы функционирования исследуемой системы записываются в виде некоторых функциональных соотношений (алгебраических, интегро-дифференциальных, конечно-разностных и т.п.) или логических условий. Аналитическая модель может быть исследована следующими методами:

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

Наиболее полное исследование процесса функционирования системы можно провести, если известны явные зависимости, связывающие искомые характеристики с начальными условиями, параметрами и переменными системы. Однако такие зависимости удаётся получить только для сравнительно простых систем. При усложнении систем исследование их аналитическим методом наталкивается на значительные трудности.

Имитационное моделирование основано на прямом описании моделируемого объекта, используя структурное подобие объекта и модели, т.е. каждому существенному, с точки зрения решаемой задачи, элементу объекта ставится в соответствие элемент модели.

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

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

Комбинированное (аналитико-имитационное) моделирование при анализе и синтезе систем позволяет объединить достоинства аналитического и имитационного моделирования. При построении комбинированных моделей проводится декомпозиция процесса функционирования объекта на составляющие подпроцессы, и для тех из них, где это возможно, используются аналитические модели, а для остальных подпроцессов строятся имитационные модели. Такой комбинированный подход позволяет охватить качественно новые классы систем, которые не могут быть исследованы с использованием только аналитического и имитационного моделирования в отдельности.

При реальном моделировании используется возможность исследования различных характеристик либо на реальным объекте целиком, либо на его части. Отличие эксперимента от реального протекания процесса заключается в том, что в нём могут появиться отдельные критические ситуации. В ходе эксперимента вводятся новые факторы и возмущающие воздействия в процессе функционирования объекта.

Реальное моделирование подразделяется на натурное и физическое.

Натурным  моделированием называют проведение исследования  на реальном объекте с последующей обработкой результатов эксперимента на основе теории подобия. При функционировании объекта в соответствии с поставленной целью удаётся выявить закономерности протекания реального процесса. Разновидности натурного моделирования, как комплексные испытания, производственный эксперимент и натурный эксперимент, обладают высокой степенью достоверности.

Физическое моделирование отличается от натурного тем, что исследование проводится на установках, которые сохраняют природу явлений и обладают физическим подобием. В процессе физического моделирования задаются некоторые характеристики внешней среды и исследуется поведение либо реального объекта, либо его модели при заданных или создаваемых искусственно воздействиях внешней среды. Физическое моделирование может протекать в реальном и нереальном (псевдореальном) масштабах времени, а также может рассматриваться без учёта времени.

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

С точки зрения математического описания объекта и в зависимости от его характера модели можно разделить на модели аналоговые (непрерывные), цифровые (дискретные) и аналого-цифровые (комбинированные). Под аналоговой моделью понимается модель, которая описывается уравнениями, связывающими непрерывные величины. Под цифровой понимается модель, которая описывается уравнениями, связывающими дискретные величины, представленные в цифровом виде. Под аналого-цифровой понимается модель, которая может быть описана уравнениями, связывающими непрерывные и дискретные величины.

Особый вид моделирования – кибернетическое моделирование, в котором отсутствует непосредственное подобие между реальным объектом и моделью. В этом случае стремятся отобразить лишь некоторую функцию и рассматривают реальный объект как “чёрный ящик”, имеющий ряд входов и выходов, и моделируются некоторые связи между выходами и входами. Чаще всего при использовании кибернетических моделей проводят анализ поведенческой стороны объекта при различных воздействиях внешней среды. Таким образом, в основе кибернетических моделей лежит отношение некоторых информационных процессов управления, что позволяет оценить поведение реального объекта.


“Высшее назначение математики -

Находить порядок в хаосе,

Который нас окружает “.

Н.Винер

2.  МАТЕМАТМЧЕСКИЕ  СХЕМЫ  МОДЕЛИРОВАНИЯ  СИСТЕМ

2.1. Понятие математической схемы

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

Математическая схема представляет собой звено при переходе от содержательного к формальному описанию процесса функционирования системы с учётом воздействия внешней среды, т.е. имеет место цепочка «описательная модель – математическая схема – математическая модель» [8]. Схематично процесс формализации представлен на рис. 2.1.

Рис. 2.1. Схема процесса формализации

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

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

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

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

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

Типовые  математические  схемы, включающие  D–схемы, F–схемы, P–схемы, Q–схемы и A–схемы, не обладают общностью, но имеют преимущества простоты и наглядности.

2.2. Математическая схема общего вида

При использовании математической схемы общего вида модель объекта моделирования, т.е. исследуемой системы, представляется в виде множества величин, описывающих процесс функционирования реальной системы и образующих четыре непересекающихся подмножества (рис. 2.2):

  •  подмножество совокупности входных воздействий на систему

  •  подмножество совокупности воздействий внешней среды на систему

  •  подмножество совокупности внутренних (собственных) параметров системы

  •  подмножество совокупности выходных характеристик системы

При моделировании системы входные воздействия X, воздействия внешней среды V и внутренние параметры системы H являются независимыми  (экзогенными)  переменными,  а  выходные  характеристики   Y  зависимыми (эндогенными) переменными.

Рис. 2.2. Модель, построенная на основе математической схемы общего вида

Процесс функционирования системы описывается во времени оператором, который в общем случае преобразует экзогенные переменные в эндогенные в соответствии с соотношением вида [8]

Y(t) = Fs(X, V, H, t).                                           (2.1)

 

Зависимость (2.1) называется законом функционирования системы и обозначается Fs. В общем случае закон функционирования системы Fs может быть задан в виде функции, функционала, логических условий, в алгоритмической и табличной формах или в виде словесного правила соответствия.

2.3. Типовые математические схемы

2.3.1. Непрерывно-детерминированные модели (D–схемы)

Использование  Dсхем позволяет формализовать процесс функционирования непрерывно-детерминированных систем и оценить их основные характеристики. Математические схемы данного вида отражают динамику изучаемой системы, т.е. её поведение во времени, поэтому называются  Dсхемами (англ. Dynamic System).

В качестве непрерывно-детерминированных моделей динамических систем используются дифференциальные уравнения, передаточные функции и описание в пространстве состояний [13].

Дифференциальные уравнения и передаточные функции образуют математические модели вход-выход (модели типа «ВВ»), описывающие связи входных и выходных сигналов динамической системы.

Чтобы получить математическое описание динамической системы, необходимо составить дифференциальные уравнения всех элементов, образующих систему. Таким образом, получим систему дифференциальных уравнений, описывающую исследуемую систему. Полученная система дифференциальных уравнений путём исключения промежуточных переменных может быть разрешена относительно любой координаты системы. Обычно она решается относительно выходной величины y(t). В этом случае получается следующее дифференциальное уравнение

D(p)y(t) = R(p)g(t) + N(p)f(t),                                  (2.2)

где алгебраизированный символ дифференцирования;

y(t))  выходная характеристика системы;

g(t))   входное воздействие на систему;

f(t)   воздействие внешней среды на систему;

 ; ;  полиномы степени

n, m, k  от символа дифференцирования p, причём  nm,k;

ai, bi, ci  постоянные коэффициенты.

Уравнение, описывающие динамику системы, может быть представлено в другой форме. Для этого перепишем уравнение (2.2) в операторном виде, перейдя от функций времени к их изображениям по Лапласу.

В результате получим:

,                                (2.3)

где   s оператор Лапласа;

Y(s), G(s), F(s) –  изображения  по  Лапласу  выходной  характеристики,

                           входного воздействия и воздействия внешней среды на

                           систему;

;    передаточные функции системы по

                                                входному воздействию и воздействию

                                                внешней среды;

 ; ;   –  полиномы степени

n, m, k  от оператор Лапласа s, причём  nm,k;

ai, bi, ci  постоянные коэффициенты.

Таким образом, поведение системы может быть исследовано на основе выражений (2.2) и (2.3), которые представляют собой математические модели динамических систем типа вход-выход.

Описание в пространстве состояний образует математические модели вход-состояние-выход (модели типа «ВСВ»).

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

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

 ,                                                               (2.4)

где  X – вектор состояния системы;

 Y – вектор выходных управляемых величин;

 U – вектор внешних воздействий (входных и возмущающих);

А, В, С, D  матрицы системы.

Система уравнений (2.4) является стандартным описанием динамических систем в пространстве состояний и представляет собой математическую модель вход-состояние-выход.

Уравнения (2.4) несут большой объём информации о динамических свойствах системы. Первое уравнение из (2.4) определяет динамические характеристики системы, а второе является уравнением выхода.

Матрица системы A, элементы которой определяются структурной схемой системы и значениями её параметров, характеризует динамические свойства системы, её свободное движение. Матрица управления B характеризует влияние внешних воздействий на переменные состояния системы, т.е. определяет чувствительность системы к внешним воздействиям (входным и возмущающим). Матрица наблюдения C характеризует связь  выходной величины системы с вектором состояния. Обычно не все составляющие вектора состояния являются наблюдаемыми сигналами, т.е. могут быть измерены с помощью каких-либо датчиков, в то время как выходной сигнал всегда наблюдаем. Матрица связи D устанавливает связь выходной величины системы с внешним воздействием.

Таким образом, четверка матриц A, B, C, D полностью определяет динамическую систему.

2.3.2. Дискретно-детерминированные модели (F–схемы)

Использование  Fсхем позволяет формализовать процесс функционирования дискретно-детерминированных систем, для которых характерно наличие дискретных состояний и дискретный характер работы во времени [8].

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

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

Абстрактный конечный автомат (англ. Finite Automata) математически задаётся Fсхемой:

F = < X, Y, Z, φ, ψ, z0  >,                                         (2.5)

где   X конечное множество входных воздействий (входной алфавит);

Y – конечное множество выходных величин (выходной алфавит);

Z – конечное множество внутренних состояний (алфавит состояний);

z0  – начальное состояние, z0   Z;

φ(z, x) – функция переходов;

ψ(z, x) – функция выходов.

Автомат, задаваемый Fсхемой, функционирует в дискретном времени t = nT,  где  T  –  период дискретности (такт, т.е. равный интервал времени);   n = 0, 1, 2, 3… – номер такта.

На каждом такте дискретного времени F–автомат находится в определённом состоянии z(n) из множества Z состояний автомата, причём в начальный момент времени  t = 0 он всегда находится в начальном состоянии z(0) = z0.  В момент времени t = nT, будучи в состоянии z(n), автомат способен воспринимать на входе сигнал x(n)  X и выдавать на выходе сигнал          y(n) = ψ[z(n), x(n)], переходя в состояние z(n+1) = φ[z(n), x(n)], z(n)  Z,       y(n)  Y.

Таким образом, работа конечного автомата происходит по следующей схеме: в каждый n-й такт на вход автомата, находящегося в состоянии z(n), подаётся некоторый входной сигнал x(n), на который он реагирует переходом в (n+1)-м такте в новое состояние z(n+1)  и выдачей некоторого выходного сигнала y(n).

Классификация конечных автоматов. F–автоматы разделяются по математическому описанию, по числу состояний и по характеру отсчёта дискретного времени.

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

F–автомат первого рода, называемый автоматом Мили, описывается следующими уравнениями:

 ,  n = 0, 1, 2, 3                                (2.6)

Для F–автомата второго рода уравнения имеют вид:

 ,  n = 0, 1, 2, 3                                (2.7)

Автомат второго рода, для которого функция выходов не зависит от входной переменной x(n), называется автоматом Мура:

 ,  n = 0, 1, 2, 3                                (2.8)

По числу состояний различают конечные автоматы с памятью и без памяти. Автоматы с памятью имеют более одного состояния, а автоматы без памяти обладают лишь одним состоянием. Автоматы без памяти ставят  в соответствие каждому входному сигналу x(n) определённый выходной сигнал y(n), реализуя функцию вида y(n) = ψ[x(n)],  n = 0, 1, 2, 3… .

По характеру отсчёта дискретного времени конечные автоматы делятся на синхронные и асинхронные. В синхронных Fавтоматах моменты времени, в которые автомат «считывает» входные сигналы, определяются принудительно синхронизирующими сигналами. После очередного синхронизирующего сигнала с учётом считанного входного воздействия и в соответствии с уравнениями (2.6) – (2.8) происходит переход в новое состояние и выдача сигнала на выходе, после чего автомат может воспринимать следующее значение входного сигнала. Таким образом, реакция автомата на каждое значение входного сигнала заканчивается за один такт, длительность которого определяется интервалом времени между соседними синхронизирующими сигналами. Асинхронный Fавтомат считывает входной сигнал непрерывно и поэтому, реагируя на достаточно длинный входной сигнал постоянной величины x(n), он может, как следует из (2.6) – (2.8), несколько раз изменять состояние, выдавая соответствующее число выходных сигналов, пока не перейдёт в устойчивое состояние, которое уже не может быть изменено данным входным сигналом [8].

 Способы задания работы автоматов. Чтобы задать конечный       F–автомат, требуется описать все элементы множества F = <X, Y, Z, φ, ψ, z0 >, т.е. входной, выходной алфавиты и алфавит состояний, а также функции переходов и выходов. Причём среди множества состояний необходимо выделить состояние z0, в котором автомат находится в момент времени t = 0. Существует несколько способов задания работы F–автоматов, но наиболее часто используются табличный, графический и матричный.  

Табличный способ задания конечного автомата основан на использовании таблиц переходов и выходов, строки которых соответствуют входным сигналам автомата, а столбцы – его состояниям. При этом обычно первый слева столбец соответствует начальному состоянию z0. На пересечении i-ой строки и k-го столбца таблицы переходов помещается соответствующее значение φ(zk, xi) функции переходов, а в таблице выходов – соответствующее значение ψ(zk, xi) функции выходов. Для F–автомата Мура обе таблицы совмещаются в отмеченную таблицу переходов, в которой над каждым состоянием zk автомата, обозначающим столбец таблицы, ставится соответствующее этому состоянию значение ψ(zk) выходного сигнала.

Описание работы F–автоматов Мили иллюстрируется таблицей 2.1, а пример табличного способа задания F–автомата Мили с тремя состояниями (z0, z1, z2), двумя входными (x1, x2) и двумя выходными (y1, y2) сигналами приведён в таблице 2.2.

Т а б л и ц а  2.1

Таблица переходов и входов автомата Мили

Входы  xi

Состояния  zk

z0

z1

zk

Переходы

x1

φ(z0, x1)

φ(z1, x1)

φ(zk,x1)

x2

φ(z0, x2)

φ(z1, x2)

φ(zk,x2)

….

…..

….

….

….

….

….

Выходы

x1

ψ(z0, x1)

ψ(z1, x1)

ψ(zk,x1)

x2

ψ(z0, x2)

ψ(z1, x2)

ψ(zk,x2)

….

…..

….

….

….

….

….

Т а б л и ц а  2.2

Таблица переходов и входов автомата Мили с тремя состояниями (z0, z1, z2), двумя входными (x1, x2) и двумя выходными (y1, y2) сигналами

Входы  xi

Состояния  zk

z0

z1

z2

Переходы

x1

z2

z0

z0

x2

z0

z2

z1

Выходы

x1

y1

y1

y2

x2

y1

y2

y1

Описание работы F–автоматов Мура иллюстрируется таблицей 2.3, а пример табличного способа задания F–автомата Мура с пятью состояниями (z0, z1, z2, z3, z4), двумя входными (x1, x2) и тремя выходными (y1, y2, y3) сигналами приведён в таблице 2.4.

Графический способ задания конечного автомата использует понятие направленного графа. Граф автомата представляет собой набор вершин, соответствующих различным состояниям автомата и соединяющих вершины дуг графа, соответствующих тем или иным переходам автомата. Если входной сигнал xk вызывает переход из состояния zi в состояние zj, то на графе автомата дуга, соединяющая вершину zi с вершиной zj, обозначается xk. Для того чтобы задать функцию выходов, дуги графа необходимо отметить соответствующими выходными сигналами.

Т а б л и ц а  2.3

Отмеченная таблица переходов автомата Мура

Входы  xi

Состояния  zk

ψ(z0)

ψ(z1)

….

ψ(zk)

z0

z1

….

zk 

x1

φ(z0, x1)

φ(z1, x1)

φ(zk,x1)

x2

φ(z0, x2)

φ(z1, x2)

φ(zk,x2)

Т а б л и ц а  2.4

Отмеченная таблица переходов автомата Мура с пятью состояниями (z0, z1, z2, z3, z4), двумя входными (x1, x2) и тремя выходными (y1, y2, y3) сигналами

Входы  xi

Состояния  zk

y1

y1

y3

y2

y3

z0

z1

z2

z3

z4

x1

z1

z4

z4

z2

z2

x2

z3

z1

z1

z0

z0

Для автоматов Мили эта разметка производится так: если входной сигнал xk действует на состояние zi, то, согласно сказанному, получается дуга, исходящая из zi и помеченная xk; эту дугу дополнительно отмечают выходным сигналом y = ψ(zi, xk). На рис. 2.3  приведён заданный ранее таблицей 2.2 граф F–автомата Мили.  

Рис. 2.3. Граф автомата Мили

Для автоматов Мура аналогичная разметка графа такова: если входной сигнал xk, действуя на некоторое состояние zi автомата, вызывает переход в состояние zj, то дугу, направленную в zj и помеченную xk, дополнительно отмечают выходным сигналом y = ψ(zj, xk). На рис. 2.4 приведён заданный ранее таблицей 2.4  граф F–автомата Мура.  

Рис. 2.4. Граф автомата Мура

Матричный способ задания конечного автомата часто является более удобной формой. При этом матрица соединений автомата есть квадратная матрица C = [cij], строки которой соответствуют исходным состояниям, а столбцы состояниям перехода.

В случае F–автомата Мили элемент cij = xk/ys, стоящий на пересечении  i-ой строки и j-го столбца, соответствует входному сигналу xk, вызвавшему переход из состояния zi в состояние zj, и выходному сигналу ys, выдаваемому при этом переходе. Для автомата Мили, рассмотренного выше, матрица соединений имеет вид

      .                                            (2.9)

Если переход из состояния zi в состояние zj происходит под действием нескольких сигналов, элемент матрицы cij представляет собой множество пар «вход-выход» для этого перехода, соединённых знаком дизъюнкции.

Для F–автомата Мура элемент cij = xk/ys равен множеству входных сигналов на переходе (zi, zj), а выход описывается вектором выходов, i-я компонента которого – выходной сигнал, отмечающий состояние zi. Для автомата Мура, рассмотренного выше, матрица соединений и вектор выходов имеют вид

 ;      .                            (2.10)

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

Рассмотрим таблицу переходов и граф асинхронного конечного автомата. Для F–автомата состояние zk называется устойчивым, если для любого входа xi   X, для которого φ(zk, xi) = zk имеет место ψ(zk, xi) = yk. Таким образом, F–автомат называется асинхронным, если каждое его состояние zk   Z устойчиво.

Ниже приведён пример асинхронного автомата Мура, заданного таблично (табл.2.5)  и графически (рис.2.5).

Т а б л и ц а  2.5

Отмеченная таблица переходов асинхронного автомата Мура с тремя состояниями (z0, z1, z2), тремя входными (x1, x2, x3) и тремя выходными (1y, y2, y3) сигналами

xi

                                 yk

y1

y3

y2

z0

z1

z2

x1

z2

z2

z2

x2

z1

z1

z2

x3

z0

z1

z0

Рис. 2.5. Граф асинхронного автомата Мура

В таблице переходов асинхронного автомата некоторое состояние zk стоит на пересечении строки xi и столбца  zs (s  k), и это состояние zk обязательно должно встретиться в этой же строке в столбце zk. В графе асинхронного автомата, если в некоторое состояние имеются переходы из других состояний под действием каких-то сигналов, то в вершине zk должна быть петля, отмеченная символами тех же входных сигналов.

Понятие F–автомата является математической абстракцией, удобной для описания широкого класса процессов функционирования реальных объектов, для которых характерно наличие дискретных состояний и дискретный характер работы во времени. Но широта применения не означает универсальности F–схем. Этот подход не пригоден для описания процессов в динамических системах с наличием переходных процессов, для формализации которых используются решётчатые функции и разностные уравнения, Z–преобразование и описание в пространстве состояний [14].

2.3.3. Дискретно-стохастические модели (P–схемы)

Использование  Pсхем позволяет формализовать процесс функционирования дискретных систем, проявляющих статистически закономерное случайное поведение.

Вероятностный автомат (англ. Probabilistic Automata) определяется как дискретный потактовый преобразователь информации с памятью, функционирование которого в каждом такте зависит только от состояния памяти в нём и может быть описано статистически [8].

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

Введём математическое понятие Pавтомата, используя понятия, введённые для Fавтомата. Рассмотрим множество G, элементами которого являются всевозможные пары (xi, zs), где xi и zs – элементы входного множества X и множества состояний Z соответственно. Если существуют две такие функции φ и ψ, что с их помощью осуществляются отображения GZ и  GY, то говорят, что F = < X, Y, Z, φ, ψ, z0 > определяет автомат детерминированного типа.

Введём в рассмотрение более общую математическую схему. Пусть    Ф – множество всевозможных пар вида (zk, yj), где yj – элементы выходного множества Y. Потребуем, чтобы любой элемент множества G индуцировал на  множестве Ф некоторый закон распределения следующего вида:

Элементы из Ф

(xi, zs)

(z1, y1)

b11

(z1, y2)

b12

(zK, yJ-1)

bK(J-1)

(zK, yJ)

bKJ

При этом , где bkj – вероятность перехода автомата в состояние zk и появления на выходе сигнала yj, если он был в состоянии zs, и на его вход в этот момент времени поступил сигнал xi. Число таких распределений, представленных в виде таблиц, равно числу элементов множества G. Обозначим множество этих таблиц через B. Тогда четвёрка элементов P = < X, Y, Z, B >  называется вероятностным автоматом              (Pавтоматом).

Пусть элементы множества G индуцируют некоторые законы распределения на множествах Y и Z, что можно представить соответственно в виде:

Элементы из Y

(xi, zs)

y1

q1

y2

q2

yJ-1

qJ-1

yJ

qJ

Элементы из Z

(xi, zs)

z1

z1

z2

z2

zK-1

zK-1

zK

zK

При этом  и , где zk  и qk  –  вероятности перехода     P–автомата в состояние zk и появление выходного сигнала yk при условии, что  P–автомат находился в состоянии zs и на его вход поступил входной     сигнал xi. 

Если  для  всех  k  и  j  имеет место  соотношение  qkzj = bkj,  то такой  Pавтомат называется вероятностным автоматом Мили. Это требование означает выполнение условия независимости распределений для нового состояния P–автомата и его выходного сигнала.

Пусть теперь определение выходного сигнала P–автомата зависит лишь от того состояния, в котором находился автомат в данном такте работы. Другими словами, пусть каждый элемент выходного множества Y индуцирует распределения вероятностей выходов, имеющих следующий вид:

Элементы из Y

zk

y1

s1

y2

s2

yK-1

sI-1

yK

sI

Здесь , где si  –  вероятность появления выходного сигнала yi при условии, что P–автомат находился в состоянии zk.

Если для всех k и i имеет место соотношение zksi = bki, то такой            P–автомат называется вероятностным автоматом Мура. Понятие            P–автоматов Мили и Мура введено по аналогии с детерминированным        F–автоматом.

Частным случаем P–автомата, задаваемого как  P = < X, Y, Z, B >, являются автоматы, у которых либо переход в новое состояние, либо выходной сигнал определяются детерминированно. Если выходной сигнал P–автомата определяется детерминированно, то такой автомат называется  Yдетерминированным вероятностным автоматом. Аналогично,               Zдетерминированным вероятностным автоматом называется P–автомат, у которого выбор нового состояния является детерминированным.

Способы задания работы P–автоматов такие же, как и для                    F автоматов.

В качестве примера рассмотрим Y–детерминированный вероятностный автомат, заданный таблицей переходов (табл. 2.6) и таблицей выходов (табл.2.7). До начала работы P–автомат всегда находится в начальном состоянии z0 и в нулевой такт времени начинает изменять своё состояние в соответствии с заданным распределением.

Т а б л и ц а  2.6

Таблица переходов Yдетерминированного вероятностного автомата

       zj         

zi              .

zj

z0

z1

z2

z3

z4

z0

z1

z2

z3

z4

0

0

0

0

0

0.5

0

0

0

1

0

0

0.75

0.4

0

0

1

0

0

0

0.5

0

0.25

0.6

0

Т а б л и ц а  2.7

Таблица выходов Yдетерминированного вероятностного автомата

Z

z0

z1

z2

z3

z4

Y

0

0

1

1

0

Для рассматриваемого P–автомата матрица соединений и вектор выходов имеют вид

 ;     .                            (2.11)

В матрице соединений Y–детерминированного вероятностного автомата элемент cij = pij определяется  вероятностью перехода P–автомата в состояние zj из состояния zi при поступлении входного сигнала, а выход описывается вектором выходов, i-я компонента которого – выходной сигнал, отмечающий состояние zi.

Описанный Y–детерминированный P–автомат можно задать в виде ориентированного графа (рис. 2.6), вершины которого сопоставляются состояниям автомата, а дуги – возможным переходам из одного состояния в другое. Дуги имеют веса, соответствующие вероятностям перехода pij, а около вершин графа пишутся значения выходных сигналов, индуцируемых этими состояниями.

Рис. 2.6. Граф Y–детерминированного вероятностного автомата

Оценим суммарную финальную вероятность пребывания этого           P–автомата в состояниях z2 и z3. При этом начальное состояние z0 можно не учитывать, так как начальное распределение не оказывает влияния на значения финальных вероятностей. Тогда матрица вероятностей перехода автомата будет иметь вид

,

откуда получаем систему уравнений, определяющих вероятности финального пребывания автомата в состояниях pj ()

.

Добавим к этим уравнениям условие нормировки  p1 + p2 + p3 + p4 = 1.

Тогда, решая систему уравнений, получим p1 =  p3 = p4 = 5/23,  p2 = 8/23. Таким образом, p2 + p3 = 13/23 = 0,5652. Другими словами, при бесконечной работе заданного в этом примере Y–детерминированного вероятностного автомата на его выходе формируется двоичная последовательность с вероятностью появления единицы, равной 0,5652.

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

2.3.4. Непрерывно-стохастические модели (Q–схемы)

Использование  Qсхем позволяет формализовать процессы функционирования систем, которые, по своей сути, являются процессами обслуживания.

Q–схемы применяются в качестве типовых математических схем систем массового обслуживания (англ. Queueing System) [8].

В качестве процесса обслуживания могут быть представлены различные по своей физической природе процессы функционирования экономических, производственных, технических и других систем, например: потоки поставок продукции предприятию, потоки деталей и комплектующих изделий на сборочном конвейере цеха, заявки на обработку информации ЭВМ от удалённых терминалов и т.д. Характерным для работы подобных объектов является стохастический характер процесса их функционирования, проявляющийся:

  •  в случайном появлении заявок (требований) на обслуживание;
  •  в завершении обслуживания в случайные моменты времени.

Рассмотрим основные понятия систем массового обслуживания (СМО), необходимые для использования Q–схем, как при аналитическом, так и при имитационном подходе.

Элементы СМО. В СМО фигурируют:

1. Средства обслуживания – обслуживающие аппараты (ОА) или каналы обслуживания (К). Средства обслуживания являются статическими элементами Q–схем.

2. Обслуживаемые заявки – транзакты. Являются динамическими элементами Q–схем.

3. Очереди.

Состояние СМО характеризуется:

1. Состояниями всех обслуживающих аппаратов, каждый из которых может находиться в состоянии “занят” или “свободен”.

2. Состояниями всех транзактов, каждый из которых может находиться в состоянии “обслуживание” или “ожидание”.

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

Переменные СМО. Переменные величины разделяются на независимые и системные.

Независимые величины СМО характеризуются двумя случайными переменными:

а) интервал прибытия – интервал времени между последовательными моментами прибытия заявок в систему;

б) время обслуживания – время, требуемое обслуживающему аппарату для выполнения обслуживания.

Системные величины СМО являются предметом исследования системы и назначаются исследователем, например:

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

б) число заявок, которые попали на обслуживание сразу же по прибытии;

в) среднее время пребывания заявок в очереди;

г) средние длины очередей;

д) максимальная длина очереди;

е) нагрузка обслуживающего аппарата, являющаяся функцией времени, которое потрачено ОА на обслуживание в течение заданного промежутка времени и т.д.

На рис. 2.7 приведён пример системы обслуживания одним обслуживающим аппаратом и очередью. Система функционирует следующим образом. Заявка из источника заявок приходит на обслуживание. Если обслуживающий аппарат свободен, то заявка занимает его, и начинается процесс обслуживания. Если обслуживающий аппарат занят, то заявка поступает в очередь, где ожидает окончания обслуживания предыдущей заявки. Обслуженная заявка освобождает обслуживающий аппарат и покидает систему. Заявки, приходящие на обслуживание, образуют поток заявок; заявки, поступающие на обслуживание, образуют поток обслуживания; а заявки, покидающие систему по окончании обслуживания, образуют выходной поток. Эти потоки характеризуются интенсивностью  прихода заявок на обслуживание, интенсивностью  обслуживания и интенсивностью  ухода заявок из системы.

 

Рис. 2.7. Система обслуживания одним обслуживающим аппаратом и очередью

Для графического изображения СМО введена символика Q–схем. Для начертания  Q–схем используются следующие основные элементы.

1.                                  Источник заявок;                  

2.                                  Материальные потоки (движение транзактов);

 

3.                                  Информационные потоки (управляющие сигналы);

4.                                  Клапан;

5.                                  Накопитель;

6.                                  Канал обслуживания;

  1.  Узел − правило, в соответствии с которым

                                            направляются транзакты.

В качестве примера графического изображения Q–схемы на рис. 2.8 приведена система обслуживания со страховым заделом.

Движение заявок через Q–схему представляет собой материальные потоки. А для управления системы обслуживания используются информационные потоки.

Рис. 2.8. Система обслуживания со страховым заделом:

И – источник заявок; Н1 и Н2 – накопители; К – канал обслуживания;

1, 2, 3 – клапаны

Все изменения, происходящие в системе, характеризуются событиями, которые образуют потоки событий.

Потоком событий называется последовательность событий, происходящих одно за другим в случайные моменты времени. Различают следующие потоки событий [8].

Поток однородных событий – это поток, который характеризуется только моментами поступления этих событий (вызывающими моментами) и задаётся последовательностью {tn} = {0  t1  t2  tn …}, где  – момент наступления n–го события – неотрицательное вещественное число. Однородный поток событий также может быть задан в виде последовательности промежутков времени между n–м и (n–1)–м событиями {n}, которая однозначно связана с последовательностью вызывающих моментов {tn}, где интервал прибытия n = tn tn-1, n  1, t0 = 0, т.е. 1 = t1.

Поток неоднородных событий – это последовательность {tn, fn}, где  tn – вызывающие моменты;  fn  – набор признаков события. Например, применительно к процессу обслуживания для неоднородного потока заявок может быть задана принадлежность к тому или иному источнику заявок, наличие приоритета, возможность обслуживания тем или иным типом канала и т.п.

Поток с ограниченным последействием – это поток, в котором интервалы прибытия  1, 2, … являются случайными величинами, независимыми между собой.

Ординарный поток событий – это поток, для которого вероятность того, что на малый интервал времени t, примыкающий к моменту времени t, попадает больше одного события P>1(t, t), пренебрежительно мала по сравнению с вероятностью того, что на этот же интервал времени t попадает ровно одно событие  P1(t, t), т.е. P1(t, t) >> P>1(t, t).

Стационарный поток событий – поток, для которого вероятность появления того или иного числа событий на интервале времени зависит лишь от длины этого интервала и не зависит от того, где на оси времени взят этот интервал. Для стационарного потока его интенсивность не зависит от времени и представляет собой постоянное значение, равное среднему числу событий, поступающих в единицу времени (t) = = const.

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

Q = < W, U, Y, H, Z, R, A  >,                                (2.12)

где   W поток заявок;

U – поток обслуживания;

Y – выходной поток;

H – собственные параметры;

Z – внутреннее состояние;

R  – оператор сопряжения;

A – оператор алгоритмов поведения заявок.

Поток заявок wi Î W, т.е. интервалы времени между моментами появления заявок (вызывающие моменты) на входе системы, образует множество неуправляемых переменных.

Поток обслуживания ui Î U, т.е. интервалы времени между началом и окончанием обслуживания заявок обслуживающими аппаратами системы, образует множество управляемых переменных.

Выходной поток yi Î Y, т.е. интервалы времени между моментами выхода заявок из системы, образует множество выходных переменных. Выходной поток составляют обслуженные заявки и заявки, покинувшие систему по различным причинам необслуженными (например, из-за переполнения накопителей).

Внутреннее состояние zi Î Z определяется множеством состояний всех элементов, образующих систему. Процесс функционирования системы обслуживания можно представить как процесс изменения состояний его элементов во времени zi (t). Переход в новое состояние для элемента системы означает изменение количества заявок, которые в нём находятся (в канале Ki и в накопителе Hi). Таким образом, состояние для элемента системы имеет вид  , где   – состояние накопителя Hi  ( = 0 – накопитель пуст,  = 1 – в накопителе имеется одна заявка, …,  =  – накопитель полностью заполнен); – ёмкость накопителя Hi, измеряемая числом заявок, которые в нём могут поместиться;  – состояние канала Ki  ( = 0 – канал свободен,  = 1 – канал занят и т.д.).

Оператор сопряжения R отражает взаимосвязь элементов структуры системы (каналов и накопителей) между собой. Q–схемы образуются композицией многих обслуживающих аппаратов. Если каналы обслуживания соединены параллельно (рис. 2.9), то имеет место многоканальное обслуживание (многоканальная Qсхема).

Рис. 2.9. Схема параллельного соединения каналов обслуживания:

а с общей очередью; б с раздельными очередями

Если каналы обслуживания соединены последовательно (рис. 2.10), то имеет место многофазное обслуживание (многофазная Qсхема).

Рис. 2.10. Схема последовательного соединения каналов обслуживания

Связи между элементами Q–схемы изображают в виде стрелок ( линий потока, отражающих направление движения заявок). Различают разомкнутые и замкнутые Q–схемы. В разомкнутой Qсхеме выходной поток обслуженных заявок не может снова поступить на какой-либо элемент, т.е. обратная связь отсутствует, а в замкнутых Qсхемах имеются обратные связи, по которым заявки двигаются в направлении, обратном движению вход-выход.

Собственные (внутренние) параметры H Q–схемы включают:

  •  количество фаз LФ;
  •  количество каналов в каждой фазе  LKj ();
  •  количество накопителей каждой фазы  LHk ();
  •  ёмкость i-го накопителя .

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

  •  система с потерями ( = 0, т.е. накопитель у обслуживающего аппарата отсутствует, а имеется только канал обслуживания Ki);
  •   система с ожиданием ( → ∞, т.е. накопитель Hi имеет бесконечную ёмкость и очередь заявок не ограничивается);
  •  система смешанного типа (с ограниченной ёмкостью накопителя Hi).

Вся совокупность собственных параметров Q–схемы образует множество H.

Оператор алгоритмов (дисциплин) поведения заявок  A определяет набор правил поведения заявок в системе в различных неоднозначных ситуациях. В зависимости от места возникновения таких ситуаций различают алгоритмы (дисциплины) ожидания заявок в накопителе Hi и обслуживания заявок каналом Ki каждого обслуживающего аппарата Q–схемы. Неоднородность заявок, отражающая процесс в той или иной реальной системе, учитывается с помощью введения классов приоритетов.

Алгоритмы (дисциплины) ожидания заявок в накопителе определяются приоритетами. В зависимости от динамики приоритетов в     Q–схемах различают статические и динамические приоритеты. Статические приоритеты назначаются заранее и не зависят от состояния Q–схемы, т.е. они являются фиксированными в пределах решения конкретной задачи моделирования. Динамические приоритеты возникают при моделировании в зависимости от возникающих ситуаций. Исходя из правил выбора заявок из накопителя Hi на обслуживание каналом  Ki, можно выделить относительные и абсолютные приоритеты. Относительный приоритет означает, что заявка с более высоким приоритетом, поступившая в накопитель Hi, ожидает окончания обслуживания предшествующей заявки каналом Ki и только после этого занимает канал. Абсолютный приоритет означает, что заявка с более высоким приоритетом, поступившая в накопитель Hi, прерывает обслуживание каналом Ki  заявки с более низким приоритетом и сама занимает канал (при этом вытесненная из Ki заявка может либо покинуть систему, либо может быть снова записана на какое-то место в Hi).

Алгоритмы (дисциплины) обслуживания заявок представляют собой набор правил, по которым заявки покидают накопитель Hi и канал  Ki: для накопителя Hi  – либо правила переполнения, по которым заявки в зависимости от заполнения Hi покидают систему, либо правила ухода, связанные с истечением времени ожидания заявки в Hi, для канала                 Ki – правила выбора маршрутов или направлений ухода. Кроме того, для заявок необходимо задать правила, по которым они остаются в канале  Ki или не допускаются до обслуживания каналом  Ki, т.е. правила блокировок каналов. При этом различают блокировки  канала  Ki по выходу и по входу. Такие блокировки отражают наличие управляющих связей в Q–схеме, регулирующих поток заявок в зависимости от состояний Q–схемы. Весь набор возможных алгоритмов поведения заявок в Q–схеме представляется в виде оператора поведения заявок A.

Аналитическое решение Q–схемы, заданной  Q = < W, U, Y, H, Z, R, A  >, возможно только при следующих упрощениях:

  •  входные потоки W и потоки обслуживания U – стационарные, ординарные, ограниченного последействия;
  •  оператор сопряжения элементов структуры R – однофазное одноканальное обслуживание в разомкнутой системе;
  •  множество собственных параметров H – обслуживание с бесконечной ёмкостью накопителя;
  •  оператор алгоритмов обслуживания заявок A – бесприоритетное обслуживание без прерываний и блокировок.  

Таким образом, возможности оценки характеристик с использование аналитических моделей теории массового обслуживания являются весьма ограниченными по сравнению с требованиями практики исследования и проектирования систем, формируемых в виде Q–схем. Несравненно большими возможностями обладают имитационные модели, позволяющие исследовать Q–схему, заданную Q = < W, U, Y, H, Z, R, A  > без ограничений. На работу с Q–схемами при машинной реализации моделей ориентированы языки имитационного моделирования, например:  SIMULA, SIMSCRIPT, GPSS и др.

2.3.5. Обобщённые модели (A–схемы)

Наиболее известным общим подходом к формальному описанию процессов функционирования систем является подход, предложенный Н.П.Бусленко. Этот подход позволяет описывать поведение непрерывных и дискретных, детерминированных и стохастических систем, т.е. по сравнению с рассмотренными является обобщённым (универсальным) и базируется на понятии агрегатной системы (англ. Aggregate System), представляющей собой формальную схему общего вида, которая называется Aсхемой [8].

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

При агрегатном описании сложный объект (система) разбивается на конечное число NA частей (подсистем), сохраняя при этом связи, обеспечивающие их взаимодействие. Если некоторые из полученных подсистем оказываются, в свою очередь, ещё достаточно сложными, то процесс их разбиения продолжается до тех пор, пока не образуются подсистемы, которые в условиях рассматриваемой задачи моделирования могут считаться удобными для математического описания. В результате такой декомпозиции сложная система представляется в виде многоуровневой конструкции из взаимосвязанных элементов, объединённых в подсистемы различных уровней [8].

В качестве элемента Aсхемы выступает агрегат A, а связь между агрегатами (внутри системы и с внешней средой) осуществляется с помощью оператора сопряжения R элементов в Aсхему.

Совокупность NA агрегатов  представляет агрегатную систему или Aсхему. Для описания реальной системы в виде Aсхемы необходимо получить по рассмотренным ранее методикам описание отдельных агрегатов An и связей между ними, задаваемых оператором сопряжения R. Взаимодействие Aсхемы с внешней средой рассматривается как обмен сигналами между внешней средой и элементами Aсхемы. В соответствии с этим внешняя среда представляется в виде фиктивного элемента системы A0.

Для установления связей между агрегатами каждый  как элемент Aсхемы снабжается множеством входных  (, In – число входов n–ого агрегата; , NA – число агрегата в Aсхеме) и множеством выходных  (, Jn – число выходов n–ого агрегата) контактов, через которые осуществляется обмен сигналами между элементами Aсхемы и внешней средой.

Введённая пара множеств ,  является математической моделью элемента An, используемого для формального описания сопряжения его с элементами Aсхемы и внешней средой.

Оператор сопряжения R сопоставляет входному контакту  n-ого агрегата  выходной контакт  k-ого агрегата, т.е.  = R().

Таким образом, совокупность множеств ,  и оператор  сопряжения R образуют схему сопряжения элементов в систему.

Графически A–схема изображается в виде структурной схемы.

Aсхемы отображают наши представления о взаимодействии реальных объектов в рамах механизма обмена сигналами.

Ниже приведён пример Aсхемы, структура которой представлена на рис. 2.11, а оператор сопряжения R задан таблично (табл. 2.8).  

При табличном способе задания оператора сопряжения R Aсхемы используется таблица, в которой  на пересечении строк с номерами агрегатов n и столбцов с номерами входных контактов i располагаются пары чисел k,l, указывающие номер агрегата k и номер контакта l, с которым соединен контакт .

Таким образом, рассмотренные примеры использования типовых математических схем (D, F, P, Qи Aсхем) позволяют формализовать достаточно широкий класс больших систем, с которыми приходится иметь дело в практике исследования и проектирования реальных объектов.  

Рис. 2.11. Структура агрегатной системы

Т а б л и ц а  2.8

Оператор сопряжения R 

n

i

1

2

3

4

5

0

1,1

3,1

4,1

5,1

6,1

1

0,1

2

1,3

0,2

0,3

3

1,2

2,1

4

3,2

2,1

2,2

5

2,2

6

5,2

0,4


“Всегда стройте все снизу вверх”.

Ф.Рузвельт

3.  ФОРМАЛИЗАЦИЯ И АЛГОРИТМИЗАЦИЯ ПРОЦЕССА
ФУНКЦИОНИРОВАНИЯ  СИСТЕМ

3.1. Последовательность разработки и машинной реализации моделей

В настоящее время наиболее эффективным методом исследования систем является машинное моделирование, без которого невозможно решение многих задач.

Моделирование с использованием компьютера позволяет исследовать механизм явлений, протекающих в реальном объекте с большими или малыми скоростями, когда в натурных экспериментах с объектом трудно (или невозможно) проследить за изменениями, протекающими в течение короткого времени, или когда получение достоверных результатов сопряжено с длительным экспериментом.

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

Основные требования, предъявляемые  к модели процесса функционирования системы.

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

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

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

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

5. Информационное обеспечение должно предоставлять возможность эффективной работы модели с базой данных систем определённого класса.

6. Программные и технические средства должны обеспечивать эффективную (по быстродействию и памяти) машинную реализацию модели и удобное общение с ней пользователя.

7. Должно быть реализовано проведение целенаправленных (планируемых) машинных экспериментов с моделью системы с использованием аналитико-имитационного подхода при наличии ограничений.

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

Моделирование систем на ЭВМ целесообразно использовать в следующих случаях:

а) для исследования системы до того, как она спроектирована, с целью оценки эффективности будущей системы, а также определения чувствительности характеристик системы к изменениям структуры, алгоритмов и параметров объекта моделирования и внешней среды;

б) на этапе проектирования системы для анализа и синтеза различных вариантов системы и выбора среди конкурирующих такого варианта, который удовлетворял бы заданному критерию оценки эффективности системы при принятых ограничениях;

в) после завершения проектирования и внедрения системы, т.е. при её эксплуатации, для получения информации, дополняющей результаты натурных испытаний реальной системы, и для получения прогнозов эволюции системы во времени.

Основными этапами моделирования систем являются [8]:

  •  построение концептуальной модели системы и её формализация;
  •  алгоритмизация модели системы и её машинная реализация;
  •  получение и интерпретация результатов моделирования системы.

Взаимосвязь перечисленных этапов моделирования систем и их составляющих (подэтапов) представлена в виде сетевого графика (рис. 3.1).

Рис. 3.1. Взаимосвязь этапов моделирования систем

К подэтапам относятся: 1.1 – постановка задачи машинного моделирования системы; 1.2 – анализ задачи моделирования системы; 1.3 – определение требований к исходной информации об объекте моделирования и организация её сбора; 1.4 – выдвижение гипотез и принятие предложений; 1.5 – определение параметров и переменных модели; 1.6 – установление основного содержания модели; 1.7 – обоснование критериев оценки эффективности системы; 1.8 – определение процедур аппроксимации; 1.9 – описание концептуальной модели системы; 1.10 – проверка достоверности концептуальной модели; 1.11 – составление технической документации по первому этапу; 2.1 – построение логической схемы модели; 2.2 – получение математических соотношений; 2.3 – проверка достоверности модели системы; 2.4 – выбор вычислительных средств для моделирования; 2.5 – составление плана выполнения работ по программированию; 2.6 – построение схемы программы; 2.7 – проверка достоверности схемы программы; 2.8 – проведение программирования модели; 2.9 – проверка достоверности программы; 2.10 – составление технической документации по второму этапу; 3.1 – планирование машинного эксперимента с моделью системы; 3.2 – определение требований к вычислительным средствам; 3.3 – проведение рабочих расчётов; 3.4 – анализ результатов моделирования системы; 3.5 – представление результатов моделирования; 3.6 – интерпретация результатов моделирования; 3.7 – подведение итогов моделирования и выдача рекомендаций; 3.8 – составление технической документации по третьему этапу.

Таким образом, процесс моделирования системы сводится к выполнению перечисленных подэтапов, сгруппированных в виде трёх этапов. На этапе построения концептуальной модели MK и её формализации проводится исследование моделируемого объекта с точки зрения выделения основных составляющих процесса его функционирования, определяются необходимые аппроксимации и получается обобщённая схема модели системы, которая преобразуется в машинную модель MM на втором этапе моделирования путём последовательной алгоритмизации и программирования модели. Последний этап моделирования системы сводится к проведению согласно разработанному плану рабочих расчётов на ЭВМ с использованием выбранных программно-технических средств, получению и интерпретации результатов моделирования системы. Очевидно, что при построении модели и её машинной реализации при получении новой информации возможен пересмотр ранее принятых решений.

3.2. Построение концептуальной модели системы и её формализация

На первом этапе машинного моделирования – построения концептуальной модели MK системы и её формализации – формулируется модель и строится её формальная схема, т.е. основным назначением этого этапа является переход от содержательного описания объекта к его математической модели, другими словами, процессу формализации.

Моделирование систем на ЭВМ в настоящее время – наиболее универсальный и эффективный метод оценки характеристик систем. Наиболее ответственным и наименее формализованными моментами в этой работе являются проведение границы между системой и внешней средой, упрощение описания системы и построение сначала концептуальной, а затем формальной модели системы. Модель должна быть адекватной, иначе невозможно получить положительные результаты моделирования, т.е. исследование процесса функционирования системы на неадекватной модели вообще теряет смысл. Под адекватной моделью понимается модель, которая с определённой степенью приближения на уровне понимания моделируемой системы разработчиком модели отражает процесс её функционирования во внешней среде.

Наиболее рационально строить модель функционирования системы по блочному принципу. При этом могут быть выделены три автономные группы блоков модели. Блоки первой группы представляют собой имитатор воздействий внешней среды на систему; блоки второй группы являются собственно моделью процесса функционирования исследуемой системы; блоки третьей группы – вспомогательные, служат для машинной реализации блоков двух первых групп, а также для фиксации и обработки результатов моделирования.

 Механизм перехода от описания процесса функционирования некоторой гипотетической системы к модели этого процесса включает следующие этапы [8].

1. Для наглядности вводится представление об описании свойств процесса функционирования системы, т.е. об её концептуальной модели MK как совокупности некоторых элементов, условно изображённых квадратами так, как показано на рис. 3.2. Эти квадраты представляют собой описание некоторых подпроцессов исследуемого процесса функционирования системы, воздействия внешней среды и т.д.

Рис. 3.2. Концептуальная модель системы

2. Переход от описания системы к её модели в этой интерпретации сводится к исключению из рассмотрения некоторых второстепенных элементов описания (элементы 5–8, 39–41, 43–47). Предполагается, что они не оказывают существенного влияния на ход процессов, исследуемых с помощью модели.

3. Часть элементов (14, 15, 28, 29, 42) заменяется связями h1, отражающими внутренние свойства системы.

4. Часть элементов (10, 11, 24, 25, 38) образует входное воздействие x.  

5. Выделяют элементы (1–4), характеризующие воздействие внешней среды v1.      

6. Возможны комбинированные замены: элементы (9, 18, 19, 32, 33) заменены внутренней связью h2 и воздействием внешней среды v2.

7. Группируют элементы (22, 23, 36, 37), отражающие воздействие системы на внешнюю среду y.

8. Оставшиеся элементы системы группируют в блоки S1, S2, S3, отражающие процесс функционирования исследуемой системы. Каждый из этих блоков достаточно автономен, что выражается в минимальном количестве связей между ними. Поведение этих блоков должно быть хорошо изучено, и для каждого из них построена математическая модель, которая, в свою очередь, может содержать ряд подблоков.

9, Построенная таким образом блочная модель (рис. 3.3) процесса функционирования исследуемой системы предназначена для анализа характеристики этого процесса, который может быть проведён при машинной реализации полученной модели.

Рис. 3.3. Блочная модель системы

После перехода от описания моделируемой системы к её модели MK, построенной по блочному принципу, необходимо построить математические модели процессов, происходящих в различных блоках. Математическая модель представляет собой совокупность соотношений (например, уравнений, логических условий, операторов), определяющих характеристики процесса функционирования системы в зависимости от структуры системы, алгоритмов поведения, параметров системы, воздействий внешней среды, начальных условий и времени. Математическая модель является результатом формализации процесса функционирования исследуемой системы, т.е. построения формального (математического) описания процесса с необходимой в рамках проводимого исследования степенью приближения к действительности.

Таким образом, формализации процесса функционирования любой системы должно предшествовать изучение составляющих его явлений. В результате появляется содержательное описание процесса, которое представляет собой первую попытку чётко изложить закономерности, характерные для исследуемого процесса, и постановку прикладной задачи. Содержательное описание является исходным материалом для последующих этапов формализации: построения формализованной схемы процесса функционирования системы и математической модели этого процесса. Для моделирования процесса функционирования системы на ЭВМ необходимо преобразовать математическую модель процесса в соответствующий моделирующий алгоритм и машинную программу.  

Основные подэтапы построения концептуальной модели  системы и её формализации представлены на рис. 3.1 [8]:

1.1. Постановка задачи машинного моделирования системы. Даётся чёткая формулировка задачи исследования конкретной системы, и основное внимание уделяется таким вопросам, как: а) признание существования задачи и необходимости машинного моделирования; б) выбор методики решения задачи с учётом имеющихся ресурсов; в) определение масштаба задачи и возможности разбиения её на подзадачи. Необходимо также ответить на вопрос о приоритетности решения различных подзадач, оценить эффективность возможных математических методов и программно-технических средств их решения.

1.2. Анализ задачи моделирования системы. Основная работа на этом подэтапе сводится к проведению анализа, включая: а) выбор критериев оценки эффективности процесса функционирования системы; б) определение экзогенных и эндогенных переменных модели; в) выбор возможных методов идентификации; г) выполнение предварительного анализа содержания второго этапа алгоритмизации модели системы и её машинной реализации; д) выполнение предварительного анализа содержания третьего этапа получения и интерпретации результатов моделирования системы.

1.3. Определение требований к исходной информации об объекте моделирования и организация её сбора. После постановки задачи моделирования системы определяются требования к информации, из которой получают качественные и количественные исходные данные, необходимые для решения этой задачи. На этом подэтапе производится: а) выбор необходимой информации о системе и внешней среде; б) подготовка априорных данных; в) анализ имеющихся экспериментальных данных;         г) выбор методов и средств предварительной обработки информации о системе.

При этом необходимо помнить, что именно от качества исходной информации об объекте моделирования существенно зависят как адекватность модели, так и достоверность результатов моделирования.

1.4. Выдвижение гипотез и принятие предложений. Гипотезы при построении модели системы служат для заполнения «пробелов» в понимании задачи моделирования. При выдвижении гипотез и принятии предложений учитываются следующие факторы: а) объём имеющейся информации для решения задач; б) подзадачи, для которых информация недостаточна;           в) ограничения на ресурсы времени для решения задачи; г) ожидаемые результаты моделирования. В процессе работы с моделью системы возможно многократное возвращение к этому подэтапу в зависимости от полученных результатов моделирования и новой информации об объекте.

1.5. Определение параметров и переменных модели. Прежде чем перейти к описанию математической модели, необходимо определить параметры исследуемой системы  входные величины   воздействия внешней среды  выходные величины  Описание каждого параметра и переменной должно даваться в следующей форме: а) определение и краткая характеристика; б) символ обозначения и единица измерения; в) диапазон изменения; г) место применения в модели.

1.6. Установление основного содержания модели. На этом подэтапе определяется основное содержание модели и выбирается метод построения модели системы, который разрабатывается на основе принятых гипотез и предложений. При этом учитываются следующие особенности:                      а) формулировка задачи моделирования системы; б) структура системы и алгоритмы её поведения, воздействия внешней среды; в) возможные методы и средства решения задачи моделирования.

1.7. Обоснование критериев оценки эффективности системы. Для оценки качества процесса функционирования моделируемой системы необходимо выбрать некоторую совокупность критериев оценки эффективности, т.е. в математической постановке задача сводится к получению соотношения для оценки эффективности как функции параметров и переменных системы. Эффективность системы можно оценить с помощью интегральных или частотных критериев, выбор которых зависит от рассматриваемой задачи.

1.8. Определение процедур аппроксимации. Для аппроксимации реальных процессов, протекающих в системе, обычно используются три вида процедур: а) детерминированная; б) вероятностная; в) статистическая.

1.9. Описание концептуальной модели системы. На этом подэтапе построения модели системы: а) описывается концептуальная модель MK в абстрактных терминах и понятиях; б) даётся описание модели с использованием типовых математических схем; в) принимаются окончательные гипотезы и предложения; г) обосновывается выбор процедуры аппроксимации реальных процессов при построении модели. Таким образом, на этом подэтапе проводится подробный анализ задачи, рассматриваются возможные методы её решения и даётся детальное описание концептуальной модели MK, которая затем используется на втором этапе моделирования.

1.10. Проверка достоверности концептуальной модели. После того как концептуальная модель MK описана, необходимо проверить достоверность некоторых концепций модели, перед тем как перейти к следующему этапу моделирования системы. Проверять достоверность концептуальной модели достаточно сложно, так как процесс её построения является эвристическим, и такая модель описывается в абстрактных терминах и понятиях. Один из методов проверки концептуальной модели MK – применение операций обратного перехода, позволяющий проанализировать модель, вернуться к принятым аппроксимациям и, наконец, рассмотреть снова реальные процессы, протекающие в моделируемой системе. Проверка достоверности концептуальной модели MK  должна включать: а) проверку замысла модели; б) оценку достоверности исходной информации; в) рассмотрение постановки задачи моделирования; г) анализ принятых аппроксимаций; д) исследование гипотез и предложений. Только после тщательной проверки концептуальной модели MK  следует переходить к этапу машинной реализации модели, так как ошибка не позволит получить достоверные результаты моделирования.

1.11. Составление технической документации по первому этапу. В конце этапа построения концептуальной модели MK и её формализации составляется технический отчёт по этапу, который включает в себя:               а) подробную постановку задачи моделирования системы; б) анализ задачи моделирования системы; в) критерии оценки эффективности системы;          г) параметры и переменные модели системы; д) гипотезы и предложения, принятые при построении модели; е) описание модели в абстрактных терминах и понятиях; ж) описание ожидаемых результатов моделирования системы.

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

3.3. Алгоритмизация модели и её машинная реализация   

На втором этапе моделирования – этапе алгоритмизации модели и её машинной реализации – математическая модель, сформированная на первом этапе, воплощается в конкретную машинную модель. Этот этап представляет собой этап практической деятельности, направленный на реализацию идей и математических схем в виде машинной модели MM процесса функционирования системы.

Требования, предъявляемые  к «хорошей» машинной модели процесса функционирования системы. «Хорошая» модель должна быть [15]:

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

Процесс функционирования системы можно рассматривать как последовательную смену её состояний Z=Z(z1(t), z2(t), …, zn(t)) в n–мерном пространстве [8]. Очевидно, что задачей моделирования процесса функционирования исследуемой системы является построение функций Z, на основе которых можно провести вычисление интересующих характеристик процесса функционирования системы. Для этого должны иметься соотношения, связывающие функции Z с переменными, параметрами и временем, а также начальные условия Z0=Z(z1(t0), z2(t0), …, zn(t0)) в момент времени  t = t0.

Основными принципами построения моделирующих алгоритмов являются «принцип t» и «принцип z».

Принцип t («принцип приращения времени»)  – это наиболее универсальный принцип, позволяющий определить последовательные состояния процесса функционирования системы через заданные интервалы времени t. Но с точки зрения затрат машинного времени он иногда оказывается неэкономичным.

При рассмотрении процессов функционирования некоторых систем можно обнаружить, что для них характерны два типа состояний: 1) особые, присущие процессу функционирования системы только в некоторые моменты времени (моменты поступления входных или управляющих воздействий, возмущений внешней среды и т.п.); 2) неособые, в которых процесс находится всё остальное время. Особые состояния характерны тем обстоятельством, что функции состояний zi(t) () в эти моменты времени изменяются скачком, а между особыми состояниями изменение координат zi(t) происходит плавно и непрерывно или не происходит совсем. Таким образом, следя при моделировании системы только за её особыми состояниями в те моменты времени, когда эти состояния имеют место, можно получить информацию, необходимую для построения функций zi(t). Очевидно, что для описанного типа систем могут быть построены моделирующие алгоритмы по «принципу особых состояний». Обозначим скачкообразные (релейные) изменения состояния z как z, а «принцип особых состояний» – как «принцип z».

Принцип z даёт возможность для ряда систем существенно уменьшить затраты машинного времени на реализацию моделирующих алгоритмов по сравнению с «принципом t». Логика построения моделирующего алгоритма, реализующего «принцип z», включает в себя процедуру определения момента времени t, соответствующего следующему особому состоянию системы.

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

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

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

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

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

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

Для начертания перечисленных схем используется набор символов, определяемых ГОСТ «Единая система программной документации. Схемы алгоритмов и программ. Обозначения условные графические».

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

Подэтапы, выполняемые при алгоритмизации модели системы и её машинной реализации, представлены на рис. 3.1 [8]:

2.1 Построение логической схемы модели. Рекомендуется строить модель по блочному принципу, т.е. в виде некоторой совокупности стандартных блоков. Построение модели системы из таких блоков обеспечивает необходимую гибкость в процессе её эксплуатации, особенно на стадии машинной отладки. При построении блочной модели проводится разбиение процесса функционирования системы на отдельные достаточно автономные подпроцессы. Блоки разделяются на основные и вспомогательные. Каждый основной блок соответствует некоторому реальному подпроцессу, имеющему место в моделируемой системе, а вспомогательные блоки не отражают функции моделируемой системы и необходимы лишь для машинной реализации, фиксации и обработки результатов моделирования.

2.2. Получение математических соотношений. Одновременно с выполнением подэтапа построения логической схемы модели необходимо получить, если это возможно, математические соотношения в виде явных функций. Этот подэтап соответствует неявному заданию возможных математических соотношений на этапе построения концептуальной модели. При выполнении первого этапа ещё не может иметься информация о конкретном виде таких математических соотношений, а на втором этапе уже необходимо получить эти соотношения. Схема машинной модели MM должна представлять собой полное отражение заложенной в модели концепции и иметь: а) описание всех блоков модели с их наименованиями; б) единую систему обозначений и нумерацию блоков; в) отражение логики модели процесса функционирования системы; г) задание математических соотношений в явном виде. Таким образом, в общем случае построенная машинная модель MM  системы будет иметь комбинированный характер, т.е. отражать аналитико-имитационный подход, когда часть процесса в системе описана аналитически, а другая часть имитируется соответствующими алгоритмами.  

2.3. Проверка достоверности модели системы. Определение достоверности модели считается наиболее важной проблемой при моделировании систем. От решения этой проблемы зависит степень доверия к результатам, полученным методом моделирования. Проверка модели на рассматриваемом этапе должна дать ответ на вопрос, насколько логическая схема модели системы и используемые математические соотношения отражают замысел модели, сформированный на первом этапе. При этом проверяются: а) возможность решения поставленной задачи; б) точность отражения замысла в логической схеме; в) полнота логической схемы модели; г) правильность используемых математических соотношений. Только после того, как разработчик убеждается путём соответствующей проверки в правильности всех этих положений, можно считать, что имеется логическая схема модели системы, пригодная для дальнейшей работы по реализации модели на ЭВМ.

2.4. Выбор вычислительных средств для моделирования. На этом подэтапе необходимо окончательно решить вопрос о том, какие вычислительные средства целесообразно использовать для реализации модели системы. Вопрос о выборе сводится к обеспечению следующих требований: а) наличие необходимых программных и технических средств; б) доступность выбранного компьютера для разработчика модели;                 в) обеспечение всех этапов реализации модели; г) возможность своевременного получения результатов.

2.5. Составление плана выполнения работ по программированию. Такой план должен помочь при программировании модели, учитывая оценки объёма программы и трудозатраты на её составление. План должен включать: а) выбор языка (системы) программирования модели; б) указание типа ЭВМ и необходимых для моделирования устройств; в) оценку примерного объёма необходимой памяти; г) ориентировочные затраты машинного времени на моделирование; д) предполагаемые затраты времени на программирование и отладку программы.

2.6. Построение схемы программы. Это одна из основных задач на этапе машинной реализации модели. При этом особое внимание должно быть уделено особенностям выбранного для реализации модели языка. Наличие логической схемы модели позволяет построить схему программы, которая должна отражать: а) разбиение модели на блоки; б) особенности программирования модели; в) проведение необходимых изменений;              г) возможность тестирования программы; д) оценку затрат машинного времени; е) форму представления входных и выходных данных.

2.7. Проверка достоверности схемы программы. Эта проверка является второй на этапе машинной реализации модели системы. Очевидно, нет смысла продолжать работу по реализации модели, если нет уверенности в том, что в схеме программы, по которой будет вестись дальнейшее программирование, допущены ошибки, которые делают её неадекватной логической схеме модели, а, следовательно, и неадекватной самому объекту моделирования. При этом проводится проверка соответствия каждой операции, представленной в схеме программы, аналогичной ей операции в логической схеме модели.

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

2.9. Проверка достоверности программы. Это последняя проверка на этапе машинной реализации модели, которую необходимо проверить:           а) обратным переводом программы в исходную схему; б) проверкой отдельных частей программы при решении различных тестовых задач;          в) объединением всех частей программы и проверкой её в целом на контрольном примере моделирования варианта системы. На этом подэтапе необходимо также проверить оценки затрат машинного времени на моделирование. Полезно также получить достаточно простую аналитическую аппроксимацию зависимости затрат машинного времени от количества реализаций, что позволит разработчику модели правильно сформулировать требования к точности и достоверности результатов моделирования.  

2.10. Составление технической документации по второму этапу. Для завершения этапа машинной реализации модели MM необходимо составить техническую документацию, содержащую: а) логическую схему модели и её описание; б) адекватную схему программы и принятые обозначения;             в) полный текст программы; г) перечень входных и выходных величин с пояснениями; д) инструкцию по работе с программой; е) оценку затрат машинного времени на моделирование с указанием требуемых ресурсов ЭВМ.

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

3.4. Получение и интерпретация результатов моделирования   

На третьем этапе моделирования – этапе получения и интерпретации результатов моделирования – компьютер используется для проведения рабочих расчётов по составленной и отлаженной программе. Результаты этих расчётов позволяют проанализировать и сформулировать выводы о характеристиках процесса функционирования моделируемой системы [8].

При реализации моделирующих алгоритмов на компьютере вырабатывается информация о состояниях процесса функционирования исследуемых систем  z(t)Z. Эта информация является исходным материалом для определения оценок искомых характеристик, получаемых в результате машинного эксперимента, т.е. критериев оценки. Под критерием оценки понимается любой количественный показатель, по которому можно судить о результатах моделирования системы. Критериями оценки могут служить показатели, получаемые на основе процессов, действительно протекающих в системе или получаемых на основе специально сформулированных функций этих процессов.

Прежде чем приступить к последнему этапу моделирования системы, необходимо для его успешного проведения  иметь план действий, сводящийся к выполнению следующих подэтапов, представленных на       рис. 3.1 [8]:

3.1. Планирование машинного эксперимента с моделью системы. Перед выполнением рабочих расчётов на компьютере должен быть составлен план проведения эксперимента с указанием комбинации переменных и параметров, для которых должно проводиться моделирование системы. Планирование машинного эксперимента призвано дать в итоге максимальный объём необходимой информации при минимальных затратах машинных ресурсов. При этом различают стратегическое и тактическое планирование машинного эксперимента. При стратегическом планировании эксперимента ставится задача построения оптимального плана эксперимента для достижения цели, поставленной перед моделированием. Тактическое планирование машинного эксперимента преследует частные цели оптимальной реализации каждого конкретного эксперимента из множества необходимых, заданных при стратегическом планировании.

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

3.3. Проведение рабочих расчётов. После составления программы модели и плана проведения машинного эксперимента с моделью системы можно приступить к рабочим расчётам на компьютере, которые включают в себя: а) подготовку набора исходных данных; б) подготовку исходных данных для ввода в ЭВМ: в) проверку исходных данных, подготовленных для ввода; г) проведение расчётов на ЭВМ; д) получение выходных данных, т.е. результатов моделирования. Проведение машинного моделирования рационально выполнять в два этапа: контрольные, а затем рабочие расчёты. Контрольные расчёты выполняются для проверки машинной модели MM и определения чувствительности результатов к изменению исходных данных.

3.4. Анализ результатов моделирования системы. Чтобы эффективно проанализировать выходные данные, полученные в результате расчётов на ЭВМ, необходимо знать, что делать с результатами рабочих расчётов и как их интерпретировать. Эти задачи могут быть решены на основании предварительного анализа на двух первых этапах моделирования системы.

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

3.6. Интерпретация результатов моделирования. Получив и проанализировав результаты моделирования, их нужно интерпретировать по отношению к моделируемому объекту. Основное содержание этого подэтапа – переход от информации, полученной в результате машинного эксперимента с моделью, к информации применительно к объекту моделирования, на основании которой делаются выводы относительно характеристик процесса функционирования исследуемой системы.

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

3.8. Составление технической документации по третьему этапу. Эта документация должна включать в себя: а) план проведения машинного эксперимента; б) наборы исходных данных для моделирования;                      в) результаты моделирования системы; г) анализ и оценку результатов моделирования; д) выводы по полученным результатам моделирования; указание путей дальнейшего совершенствования машинной модели и возможных областей её приложения.

Полный комплект документации по моделированию конкретной системы должен содержать техническую документацию по каждому из трёх рассмотренных этапов.

Таким образом, процесс моделирования системы сводится к выполнению перечисленных этапов моделирования. На этапе построения концептуальной модели MK проводится исследование моделируемого объекта, определяются необходимые аппроксимации и строится обобщённая схема модели, которая преобразуется в машинную модель MM на втором этапе моделирования путём последовательного построения логической схемы модели и схемы программы. На последнем этапе моделирования проводят рабочие расчёты на ЭВМ и интерпретируют результаты моделирования системы. Рассмотренная последовательность этапов и подэтапов отражает общий подход к построению и реализации модели системы.

Подводя итог, перечислим некоторые полезные советы, которые можно назвать «заповедями» математического моделирования.

Заповеди математического моделирования оформлены в виде следующих принципов [1].

Принцип простоты. Не решай сложную задачу, не решив простую.

Принцип А.А.Андронова. Без ошибки нет модели, а потому негрубые модели – плохие.

Принцип Э.Хемингуэя. Можно пренебрегать чем угодно, нужно только знать, как это повлияет на результат.

Принцип надежности. Чем проще модель, тем реже она обманет.

Принцип А.Н.Крылова. Точность результатов не может быть выше точности исходных данных; точности промежуточных вычислений должны быть согласованы.

Принцип Р.Хемминга. Цель расчетов – не числа, а понимание. Прежде чем решать задачу, подумай, что делать с её решением.

Принцип Питера. ЭВМ многократно увеличивает некомпетентность вычислителя.


“Сегодня это действительно слишком просто:

Вы можете подойти к компьютеру

И практически без знания того, что вы   делаете,

Создавать разумное и бессмыслицу

С поистине изумительной быстротой “.

Дж.Бокс

4.  МОДЕЛИРОВАНИЕ СИСТЕМ МАССОВОГО ОБСЛУЖИВАНИЯ

4.1. Имитационное моделирование  

Имитационное моделирование (англ. Simulation)  – самый мощный инструмент исследования сложных систем, управление которыми связано с принятием решений в условиях неопределённости [15].

Имитационное моделирование – есть процесс конструирования модели реальной системы и постановки экспериментов на этой модели с целью:

  •  либо понять поведение реальной системы;
  •  либо оценить (в рамках ограничений, накладываемых некоторым критерием или совокупностью критериев) различные стратегии, обеспечивающие функционирование данной системы.

Имитировать (англ. Simulate) – значит вообразить, постичь суть явления, не прибегая к экспериментам на реальном объекте.

Имитационное моделирование является экспериментальной и прикладной методологией, имеющей целью:

  •  описать поведение системы;
  •  построить теории и гипотезы, которые могут объяснить наблюдаемое поведение системы;
  •  использовать эти теории для предсказания будущего поведения системы, т.е. тех воздействий, которые могут быть вызваны изменениями в системе или изменениями способов её функционирования.

Имитационное моделирование получило первоначальный толчок в ходе реализации авиакосмических программ. В настоящее время имитационное моделирование успешно используется во всех областях знаний, что следует из анализа полезности методов исследования в научной работе (табл. 4.1) [15].

Т а б л и ц а  4.1

Полезность методов исследования в научной работе (по данным США)

Методы

Относительная ценность

Теория вероятностей и статистические оценки

Экономический анализ

Имитационное моделирование

Линейное программирование

Управление запасами

Теория массового обслуживания

Сетевые модели

Модели замены

Теория игр

Динамическое программирование

Методы поиска

Нелинейное программирование

0,182

0,150

0,143

0,120

0,097

0,085

0,072

0,042

0,040

0,031

0,020

0,018

1,000

ЭВМ открывает широкие возможности исследования систем путём имитационного моделирования.

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

Решение этой задачи аналитическими методами у большинства людей вызывает затруднение. С помощью метода имитационного моделирования подобную проблему может решить практически каждый. Для её решения требуется поставить искусственный эксперимент, имитирующий процесс прибытия покупателей в магазин и процесс обслуживания. Для реализации модели в данном случае требуется: десять фишек, на каждой из которых номер от 1 до 10; игральный кубик (6 положений); таблица (табл. 4.2).

Проведение эксперимента с данной моделью включает в себя следующие действия:

  •  вытягиваем фишку, номер на которой определяет интервал прибытия в магазин очередного покупателя (первый покупатель пришёл к открытию магазина);
  •  бросаем игральный кубик и получаем время его обслуживания;
  •  полученные результаты заносим в таблицу (первые три колонки табл. 4.2);
  •  обрабатываем результаты эксперимента и заполняем оставшиеся колонки таблицы.

Т а б л и ц а  4.2

Имитационное моделирование работы магазина

Покупа-

тель

Интервал

прибытия,

мин.

Время

обслу-

живания, мин.

Текущее

модель-

ное время, мин.

Начало

обслужи-

вания,

мин.

Конец

обслу-жива-ния,

мин.

Время

пребыва-

ния поку-  пателя в магазине,

мин.

Время

простоя

продавца,

мин.

1

-

1

0

0

1

1

0

2

3

4

3

3

7

4

2

3

7

4

10

10

14

4

3

4

3

2

13

14

16

3

0

5

9

1

22

22

23

1

6

Всего:   13                11

В результате получаем:

среднее время пребывания покупателя в магазине составляет

 мин.;

коэффициент простаивания продавца

.

Для получения статистически значимых результатов число экспериментов должно быть не менее ста.

В настоящее время широчайшие возможности для имитационного моделирования предоставляет вычислительная техника.

Достоинства и недостатки имитационного моделирования [15]. Имитационные модели представляют собой модели типа “чёрный ящик”. Это значит, что они обеспечивают выдачу выходного сигнала, если на их взаимодействующие подсистемы поступает входной сигнал. Поэтому для получения необходимой информации или результатов необходимо осуществлять “прогон” имитационных моделей, а не “решать” их.

Применять имитационное моделирование целесообразно при наличии любого из следующих условий:

1.  Не существует законченной математической постановки задачи, либо ещё не разработаны аналитические методы решения сформулированной математической модели.

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

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

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

5. Имитационное моделирование может оказаться единственной возможностью вследствие трудностей постановки экспериментов и наблюдения явлений в реальных условиях.

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

7. Широчайшие возможности в сфере создания тренажёров.

Недостатки имитационного моделирования:

1.  Недостаточное математическое изящество.

2. Разработка хорошей имитационной модели обходится дорого и требует много времени.

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

4. Результаты, которые даёт имитационная модель, обычно являются численными. В связи с этим возникает опасность “обожествления чисел”, т.е. приписывания  им большей значимости, чем они на самом деле имеют.

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

Приведённые соображения показывают, что, хотя имитационное моделирование является чрезвычайно ценным и полезным методом решения сложных задач, этот метод не панацея для решения всех проблем.

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

Компоненты – составные части модели. Обычно они соответствуют элементам реальной системы или её подсистемы.

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

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

Функциональные зависимости – соотношения, описывающие поведение переменных и параметров в пределах компонента или выражающие связи между компонентами системы. Эти соотношения или операционные характеристики по своей природе являются либо детерминированными, либо стохастическими. Оба типа соотношений обычно выражаются в форме математического уравнения, которое устанавливает зависимость между эндогенными переменными и экзогенными, и строятся на основе гипотез или с помощью статистического, либо математического анализа.

Ограничения – величины, которые или устанавливают пределы изменения значений переменных, или ограничивают условия распределения и расходования тех или иных средств (энергии, запасов, времени и т.п.). Ограничения бывают искусственными и естественными. Искусственные ограничения вводятся разработчиком, их можно изменять (например, требования, предъявляемые к системе). Естественные ограничения присущи системе и определяются законами природы.

Целевая функция или функция критерия – это точное отображение целей либо задач системы и необходимых правил их выполнения. Различают два типа целей: сохранение и приобретение. Цели сохранения связаны с сохранением или поддержанием каких-либо ресурсов (временных, материальных, энергетических и т.п.) или состояний (комфорта, безопасности, уровня занятости и т.п.). Цели приобретения связаны с приобретением новых ресурсов (прибыли, персонала, заказчиков и т.п.) или достижением определённых состояний, к которым стремится организация или руководитель (захват части рынка и т.п.). Выражение для целевой функции должно быть однозначным определением целей и задач, с которыми должны соизмеряться принимаемые решения.

Критерий  – мерило оценки, правило или вид проверки, при помощи которого составляется правильное суждение о чём-либо. Функция критерия (целевая функция) направлена на оптимизацию или удовлетворение заданного критерия и должна быть составной частью модели.

Искусство моделирования состоит в способности анализировать проблему, выделять из неё путём абстрагирования её существенные черты, выбирать и должным образом модифицировать основные предположения, а затем отрабатывать и совершенствовать модель до тех пор, пока она не станет давать полезные для практики результаты [15].

Конструирование модели по Моррису рекомендует выполнить следующие действия.

1.  Разложить общую задачу исследования системы на ряд более простых задач.

2. Чётко сформулировать цели.

3. Подыскать аналоги.

4, Рассмотреть специальный численный пример, соответствующий данной задаче.

5. Выбрать определённые обозначения.

6. Записать очевидные соотношения.

7. Если полученная модель поддаётся математическому описанию, расширить её. В противном случае упростить:

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

Процесс имитации исследуемой системы включает ряд этапов, взаимосвязь которых отражена на блок-схеме (рис. 4.1).

Рис. 4.1. Блок-схема процесса имитации

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

Формулирование модели (абстрагирование) – переход от реальной системы к некоторой логической схеме.

Подготовка данных – отбор данных, необходимых для построения модели, и представление их в соответствующей форме.

Трансляция модели –  описание модели на выбранном языке моделирования.

Оценка адекватности – повышение до приемлемого уровня степени уверенности, с которой можно судить относительно корректности выводов о реальной системе, полученных на основании обращения к модели. Это важнейший этап. Проверка, выполненная без должной тщательности, может привести к катастрофическим последствиям. Способы оценки имитационной модели:

  •  верификация – убеждение экспериментатора, что модель ведёт себя так, как было задумано;
  •  проверка соответствия между поведением модели и поведением реальной системы;
  •  проблемный анализ – формулирование статистически значимых выводов на основе данных, полученных путём машинного моделирования.

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

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

2. Объяснение соотношения между переменной отклика и контролируемыми в системе факторами.

Тактическое планирование –  определение способа проведения каждой серии испытаний, предусмотренных планом эксперимента. При этом решаются следующие задачи:

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

2. Возможно большее уменьшение дисперсии решений при одновременном сокращении необходимых размеров выборки.

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

Интерпретация – построение выводов по данным, полученным путём имитации.

Реализация – практическое использование модели и (или) результатов моделирования.

Документирование – регистрация хода осуществления проекта и его результатов, а также документирование процесса создания и использования модели.

В заключение отметим рекомендуемое распределение времени проектирования модели: 25 %  – на постановку задачи; 20%  – сбор и анализ данных; 30% – разработка модели; 25% – на реализацию.

4.2. Среда и функциональная структура языка моделирования GPSS

GPSS (General Purpose Simulation System) – общецелевая система моделирования, представляет собой язык и машинную программу [16]. Машинная программа интерпретирует модель, написанную на языке GPSS, предоставляя тем самым пользователю возможность проведения экспериментов с этой моделью на ЭВМ.

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

Организация и принцип функционирования GPSS. GPSS построен в предположении, что моделью системы является описание её элементов и логических правил их взаимодействия в процессе функционирования моделируемой системы. Далее предполагается, что для моделируемых систем можно выделить небольшой набор абстрактных элементов, называемых объектами. Причём набор логических правил тоже ограничен и может быть описан небольшим числом стандартных операций.

Основой GPSS являются программы, описывающие функционирование конечного набора объектов, и специальная диспетчеризирующая программа – симулятор, которая выполняет следующие функции:

  •  обеспечение заданных маршрутов продвижения динамических объектов, называемых далее транзактами (сообщениями);
  •  планирование событий, происходящих в модели, путём регистрации времени наступления каждого события и выполнения их в нарастающей временной последовательности;
  •  регистрацию статистической информации о функционировании модели;
  •  продвижение модельного времени в процессе моделирования системы.

Объекты GPSS подразделяются на 7 категорий и 14 типов (табл. 4.3) и позволяют, с одной стороны, описать их взаимодействие сравнительно несложными  наборами операций, с другой – достаточно просто и наглядно представить процесс функционирования исследуемой системы, формализованной в виде Q–схемы [9].

Т а б л и ц а  4.3

Категории и типы объектов GPSS

Категории GPSS

Типы объектов GPSS

1. Динамическая

1. Транзакты

2. Операционная

2. Блоки 

3. Аппаратная

3. Устройства

4. Ключи

5. Памяти

4. Вычислительная

6, 7. Переменные: арифметические, булевские

8. Функции

5. Статистическая

9. Очереди

10. Таблицы

6. Запоминающая

11. Ячейки

12. Матрицы ячеек

7. Группирующая

13. Списки пользователя

14. Группы

Динамическими объектами являются транзакты (сообщения), которые представляют собой единицы исследуемых потоков и производят ряд определённых действий, продвигаясь по фиксированной структуре, представляющей  собой совокупность объектов других категорий.

Операционные объекты, т.е. блоки, задают логику функционирования модели системы и определяют пути движения транзактов между объектами аппаратной категории.

 Объекты аппаратной категории – это абстрактные элементы (устройства, логические ключи и памяти), на которые может быть декомпозировано оборудование реальной системы. Воздействуя на эти объекты, транзакты могут изменять их состояние и влиять на движение других транзактов.

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

К статистическим объектам относятся очереди и таблицы, вводимые для оценки характеристик поведения системы.

Основными объектами являются блоки и транзакты.

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

Транзакты представляют собой описание динамических процессов в реальных системах. Они могут описывать реальные физические объекты, например автомобили в очереди у бензозаправочной колонки. Кроме того, транзакты могут описывать и нефизические (программные) объекты, например, канальные программы, порядок выбора в коммутационных схемах и т.д. Транзакты можно «генерировать» и «уничтожать» в процессе моделирования системы. Работа GPSS модели заключается в перемещении транзактов от блоков к блокам.

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

Каждому объекту соответствуют атрибуты, описывающие его состояние в данный момент времени. Значения атрибутов могут быть арифметическими или логическими. Большая часть атрибутов недоступна для программиста. Атрибуты, которые надо адресовать, называются стандартными числовыми атрибутами (СЧА) (табл. 4.4).

Т а б л и ц а  4.4

Стандартные числовые атрибуты

Типы объектов

Символи-ческое обозначе-ние

Диапазон изменения

Описание

Транзакты

PF

PH

PB

PL

PR

M1

MP

±(231 – 1)

±(215 – 1)

±(27 – 1)

±(224 – 1)

0…127

±(231 – 1)

±(231 – 1)

Текущее значение параметра

(формат F – «слово», H – «полуслово»,

B – «байт», L – «плавающая точка») транзакта, обрабатываемого в данный момент.

Приоритет обрабатываемого транзакта.

Транзактное время.

Параметрическое транзактное  время.

Блоки

N

W

224 – 1

215 – 1

Счетчик входов в блок

Счетчик текущего содержимого блока

Памяти

F

FR

FC

FT

S

R

SR

SA

SC

ST

SM

Логические

1 или 0

0…999

231 – 1

231 – 1

231 – 1

231 – 1

0…999

231 – 1

231 – 1

231 – 1

231 – 1

Состояние устройства

Коэффициент использования (в долях от 1000)

Счетчик входов

Среднее время/транзакт

Текущее содержимое памяти

Число свободных единиц памяти

Коэффициент использования (в долях от 1000)

Среднее содержимое памяти

Счетчик входов

Среднее время, транзакт

Максимальное содержимое памяти

Переменные

V

FV

BV

±(231 – 1)

10-78 … 1075

1 или 0

Значение арифметической переменной

Переменные с плавающей запятой

Значение булевой переменной

Функции

FN

±(231 – 1)

Значение функции

Продолжение табл. 4.4

Типы объектов

Символи-ческое обозначе-ние

Диапазон изменения

Описание

Очереди

Q

QA

QM

QC

QZ

QT

QX

231 – 1

231 – 1

231 – 1

231 – 1

231 – 1

231 – 1

231 – 1

Текущая длина очереди

Средняя длина очереди

Максимальная длина очереди

Общее число элементов в очереди

Число элементов, не задержанных в очереди

Среднее время пребывания в транзакта в очереди

Среднее время пребывания в очереди без учета нулевых входов

Таблицы

TB

TC

TD

±(231 – 1)

231 – 1

231 – 1

Среднее значение аргумента таблицы

Счетчик входов в таблицу

Среднее квадратичное отклонение аргумента

Ячейки

XF

XH

XB

XL

±(231 – 1)

±(215 – 1)

±(27 – 1)

±(224 – 1)

Текущее содержание  ячейки

(формат F – «слово», H – «полуслово»,

B – «байт», L – «плавающая точка»)

Матрицы ячеек

MX(a,b)

MH(a,b)

MB(a,b)

ML(a,b)

±(231 – 1)

±(215 – 1)

±(27 – 1)

±(224 – 1)

Текущее содержание  матрицы:

 a – строка, b – столбец.

(Формат X – «слово», H – «полуслово»,

B – «байт», L – «плавающая точка»)

Группы

G

215 – 1

Число членов группы в текущий момент

Список пользовате-ля

CA

CH

CM

CC

CT

215 – 1

215 – 1

215 – 1

231 – 1

231 – 1

Среднее число элементов в списке

Текущее число элементов в списке

Максимальное число элементов в списке

Общее число элементов в списке

Среднее время пребывания элементов в списке

Системные атрибуты

RN1…RN8

C1

AC1

TG

0…0,999999

0…999

231 – 1

231 – 1

231 – 1

Случайное число, используемое как аргумент функции

Случайное число в других случаях

Текущее значение относительного времен

Текущее значение абсолютного времен

Содержание счетчика завершения

Следующие СЧА не связаны только с одним отдельным объектом, а используются моделью в целом: C1 – текущее значение относительного времени с начала процесса моделирования; Kn или n   положительная константа; RNx  – одно из восьми случайных чисел (1 ≤ x ≤ 8), значения которых находятся в пределах 0…999.

У каждого блока имеется два СЧА: Wn – счётчик входов в блок или ожидающий счётчик, который содержит в себе номер текущего транзакта, находящегося в блоке n, Nn – общий счётчик транзактов, поступивших в блок с начального момента моделирования или с момента обнуления. Оба счётчика меняют своё содержимое автоматически.

При написании программы в среде GPSS следует  помнить об ограничениях на количество объектов в программе, которое накладывается версией языка GPSS (табл. 4.5).

Т а б л и ц а  4.5

Ограничение на количество объектов

Тип объекта

Стандартное число объектов

Транзакты

Блоки

Устройства

Памяти

Ключи

Очереди

1200

1000

300

300

1000

300

В зависимости от назначения блоки подразделяются на несколько групп.

1. Блоки, осуществляющие модификацию атрибутов транзактов:          а) временная задержка ADVANCE; б) генерация и уничтожение транзактов GENERATE, TERMINATE, SPLIT, ASSEMBLE; в) синхронизация движения нескольких транзактов MATCH, GATHER; г) изменение параметров транзактов ASSIGN, INDEX, MARK; д) изменение приоритета PRIORITY.

2. Блоки, изменяющие последовательность продвижения транзактов (блоки передачи управления): TRANSFER, LOOP, TEST, GATE.

3. Блоки, связанные с группирующей категорией: JOIN, REMOVE, EXAMITE, SCAN, ALTER.

4. Блоки, организующие использование объектов аппаратной категории: а) устройства (технические средства) SEIZE, RELEASE, FAVAIL, PREEMPT, RETURN, FUNAVAIL; б) памяти (запоминающие устройства) ENTER, LEAVE, SAVAIL, SUNAVAIL; в) ключи (логические переключатели) LOGIC.

5. Блоки, сохраняющие необходимые значения для дальнейшего использования: SAVEVALUE, MSAVEVALUE.

6. Блоки, обеспечивающие получение статистических результатов:      а) очереди QUEUE, DEPART; б) статистические таблицы TABULATE, TABLE.

7. Специальные блоки BUFFER, PRINT, EXECUTE, COUNTX’, CHANGE, TRACE, UNTRACE, SELECT’X’, HELP.

8. Блоки для организации цепей LINK, UNLINK.

9. Вспомогательные блоки WRITE, SAVE, LOAD, REPORT, UPDATE.

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

В GPSS все события делятся на две категории: основные и вспомогательные.

Основное событие – это такое событие, время возникновения которого можно запланировать заранее, то есть рассчитать его до фактического возникновения. К основным событиям относятся: приход заявок на обслуживание и окончание обслуживания.

Вспомогательное событие – это такое событие, время возникновения которого невозможно запланировать заранее. Они являются зависимыми, возникающими как следствие основных событий. К вспомогательным событиям относятся поступления заявок на обслуживание обслуживающими аппаратами («захват» обслуживающих аппаратов).

Список основных событий приведён в таблице 4.6, которая раскрывает логику функционирования системы моделирования GPSS. Для того чтобы вызвать событие, необходимо выполнить соответствующие логические операции обработки событий. Вторая колонка таблицы 4.6 как раз содержит список логических операций обработки двух видов основных событий.

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

Планирование основных событий производится в два этапа:

1. Розыгрыш случайного числа, соответствующего интервалу времени (прибытия или обслуживания).

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

Т а б л и ц а  4.6

Список основных событий и действий, которые они вызывают

Основные события

Действия, которые они вызывают

(вспомогательные события и планирование)

Приход заявки

1. Планирование следующего прихода.

2. Проверка состояния обслуживающего аппарата. Канал свободен?

   НЕТ: поступление заявки в очередь.

   ДА:   поступление заявки на обслуживание; это вызывает:

             а) переход обслуживающего аппарата из свободного

                 состояния в занятое;

             б) планирование события окончания обслуживания.

Окончание обслуживания

Проверка состояния очереди. Есть ли в очереди заявка, ожидающая обслуживания?

   НЕТ: переход обслуживающего аппарата из занятого состояния в

             свободное;

   ДА:   поступление заявки на обслуживание; это вызывает:

             а) продвижение заявки в очереди;

             б) планирование события окончания обслуживания.

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

Таймер модельного времени регистрирует только целые значения. Это означает, что события могут возникать только в «целые» моменты времени. Единицу времени, которая может быть отмечена таймером, определяет разработчик модели, которая ему удобна для того, чтобы правильно отразить события реальной системы в модели. Разработчик должен следить за тем, чтобы все данные, связанные со временем, были выражены через определённую минимальную единицу времени.

Система моделирования GPSS является интерпретатором для «следующего события». Иначе говоря, после того как модель полностью скорректирована в данный момент модельного времени, таймер продвигается к ближайшему значению времени, в которое происходит следующее событие (точнее, к следующему моменту времени, на которое запланировано возникновение события). Интервал модельного времени пропускается, если на этом интервале нет событий. Практически это означает, что время «прогона» модели не зависит от единицы времени, выбранной разработчиком модели.

Общая логическая блок-схема функционирования модели в среде моделирования GPSS приведена на рис. 4.2.

Рис. 4.2. Общая логическая блок-схема моделирования в среде GPSS

Завершение моделирования в среде GPSS происходит либо по времени, либо по поступлению заданного числа транзактов.

Особенности построения и работы моделей в среде GPSS. Модель на GPSS строится следующим образом [6, 9, 16].

1. Выбираются необходимые блоки из допустимого множества существующих в GPSS блоков.

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

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

4. После разработки блок-схемы модели создаётся текст программы. Эта процедура является, как правило, чисто механической.

Выстроенные в блок-схему блоки означают продвижение по ней транзактов. Конфигурация блок-схемы GPSS модели отражает направления, по которым происходит движение транзактов. В модели существует большое число транзактов, однако в один момент времени двигается только один транзакт. Каждое успешное вхождение транзакта в блок вызывает обращение к соответствующей подпрограмме. Следовательно, выполнение модели заключается в последовательном обращении к подпрограммам, являющемся следствием входа в определённые блоки перемещающихся транзактов.

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

При описании схем алгоритмов посредством языковых средств GPSS используются следующие типы строк: 1) строки описания блоков; 2) строки описания объектов; 3) управляющие строки; 4) строки комментарии (наличие символа «*» в 1-й позиции, указывает на то, что строка содержит только комментарии). Каждый блок блок-схемы GPSS модели определяется с помощью отдельной строки, имеющей следующий формат:

2       Поле метки          6

Символический адрес блока

8     Поле операции     18

Наименование типа блока

19   Поле операндов    31

Поле операндов

A,B,C,D,E,F,G

Запись начинается с 1-й позиции, а поля разделяются пробелами, Отсутствие метки также обозначается пробелом.

Все блоки GPSS определяются наименованием типа блока и операндами A, B, C, D, E, F, G, задающими выполняемые функции. Кроме того, каждый блок может иметь символический адрес, записываемый в поле метки блока. Поле метки расположено со 2 по 6 позиции экрана, поле операции (наименование блока) с 8 по 18, поле операндов с 19 позиции и до первого пробела в тексте. Комментарии, как правило, размещаются после 31 позиции.

Тип блока указывает функциональное назначение этого блока, а операнды задают информацию для его действия. Если некоторые операнды не используются, это отмечается запятой. В качестве аргументов в поле операндов используются: а) некоторые СЧА; б) положительные константы Kn; в) специальные обозначения, определяющие режим; г) метки, имена.

 Для задания дополнительной информации симулятору GPSS требуются операторы контроля управления.

Оператор SIMULATE обеспечивает “прогон” имитационных моделей. Допускаются две формы оператора: SIMULATE и SIMULATE m, где m – число минут машинного времени, по истечении которого моделирование прекращается.

Оператор START показывает симулятору GPSS, что все входные данные получены и можно начинать счёт.

Поле A определяет число транзактов, которые должны пройти через систему до выдачи окончательной статистики, называемой счётчиком числа завершений и обозначаемой TG1. Счёт заканчивается в тот момент, когда TG1 < 0. Значение TG1 уменьшается на величину, заданную в поле A блока TERMINATE, при каждом входе сообщения в этот блок.

Поле B может быть использовано для блокирования выдачи статистики в конце счёта. Для этого нужно записать в поле B мнемоническое обозначение NP. При наличии такой записи в поле B сбор статистической информации в процессе счёта не прекращается, блокируется только печать собранной информации по окончании счёта. Если поле B пусто, печать происходит как обычно.

Поле C можно использовать для задания интервала промежуточных выдач статистик. Счётчик интервала уменьшается на то же число единиц, что и счётчик завершения. Когда значение этого счётчика становится равным нулю или отрицательным, то производится выдача статистики в обычном формате и восстановление счётчика, после чего счёт продолжается.

Поле D может содержать указание на то, что при выдаче информации (как в конце выдачи промежуточных результатов, так и в конце счёта) нужно распечатывать списки текущих событий, будущих событий, список прерываний, а также списки пользователя. Значение «1» в поле D указывает на то, что пользователю нужна печать списков. В противном случае поле оставляют незаполненным.

Пользователю может понадобиться провести серию просчётов, т.е. несколько просчётов один за другим. Для облегчения задания такого режима введены три управляющих оператора, в различной степени возвращающих модель к исходному состоянию: RESET, стирающий всю накопленную статистику; CLEAR, который стирает всю статистику и все транзакты; JOP, стирающий всю статистику, все транзакты и все блоки. 

Оператор RESET. Результатом действия этого оператора является то, что стирается вся статистическая информация, накопленная в процессе моделирования. Счётчики числа входов в блоки сбрасываются до «0», но содержимое счётчиков ожидания не изменяется. Коэффициенты использования устройств сбрасываются до «0», счётчики числа входов в устройство устанавливаются в соответствие с текущим состоянием устройства. Счётчик равен «0», если устройство свободно, «1» – если оно занято или обслуживание сообщения прервано, и «2» – если устройство занято и обслуживает прерывание. Коэффициенты использования памятей также сбрасываются до «0», а счётчики числа входов в память устанавливаются в соответствие с текущим содержимым каждой памяти. Коэффициенты использования очередей сбрасываются до «0», и счётчики числа входов устанавливаются равными текущей длине соответствующих очередей. Счётчики всех нулевых задержек сбрасываются до «0», а максимальные значения длины очереди устанавливаются равными текущей длине очереди. Все счётчики числа наблюдений интервалов таблиц, все средние значения и т.д. также сбрасываются до «0». Содержимое ячеек SAVEVALUE и состояние логических переключателей не изменяются. Датчик случайных чисел не возвращается к исходному числу. Пользователь может также задать объекты (устройства, памяти, очереди и др.), атрибуты которых останутся без изменения после выполнения операций, соответствующих оператору RESET.   

Оператор CLEAR. В результате действия этого оператора стирается вся накопленная в процессе моделирования статистика и из системы удаляются все транзакты. Счётчики числа входов и счётчики ожидания всех блоков сбрасываются до «0». Коэффициенты использования всех устройств и счётчики числа входов сбрасываются до «0» и все устройства переводятся в состояние «не занято». Коэффициенты использования памятей, счётчики числа входов и текущее содержимое сбрасываются до «0» для всех памятей.      Коэффициенты использования очередей, счётчики числа входов, счётчики числа нулевых задержек, текущая и максимальная длина очереди  сбрасываются до «0». Стирается вся информация в таблицах и ячейках SAVEVALUE. Все логические переключатели устанавливаются в «0», из системы удаляются все транзакты, а абсолютное и относительное время устанавливается в «0». Затем запускаются все блоки GENERATE. Начальные интервалы задержки, записанные в поле C блока GENERATE, отсчитываются после завершения операций оператора CLEAR. Счётчикам пределов, заданным в поле D, присваиваются их исходные значения. Работа этих счётчиков также начинается после выполнения операций оператора CLEAR. Операции оператора CLEAR производятся в момент его появления, причём действие оператора CLEAR на следующего за ним оператора не распространяется. Перед первым оператором START модели оператор CLEAR не нужен. Датчик случайных чисел не возвращается к исходному числу.

Оператор JOP. Этот оператор помещается между последовательными рабочими вычислениями, являющимися частями одной работы. Он выполняет все функции оператора CLEAR, а также стирает все описания блоков, функций, переменных, таблиц и памятей. Перед первой работой оператор JOP не нужен. Оператор JOP возвращает датчик случайных чисел к исходному числу.

Оператор END. Этот оператор указывает на конец модели.

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

Возможности языка расширяет косвенная адресация и косвенное описание, в которых используются индексы, применяемые в качестве номера n аргумента блока и в качестве индекса n СЧА, указываемого в некоторой из строк описания. Для записи индекса используется знак «$» и число после него. Индекс определяется значением параметра, номер которого записан после $.

Косвенная адресация и косвенное описание могут быть использованы совместно и порознь практически для любых аргументов различных типов блоков.

4.3. Система программного обеспечения GPSS/PC

Система программного обеспечения GPSS/PC предназначена для имитационного моделирования систем массового обслуживания. В системе GPSS/PC языком моделирования является язык GPSS.

Наиболее распространенным методом описания систем является составление блок-диаграмм. Блок-диаграмма – это графическое представление операций, происходящих внутри системы. Другими словами, блок-диаграмма описывает взаимодействие событий внутри системы. Линии, соединяющие блоки, указывают маршруты потоков сообщений или описывают последовательность выполняемых событий. В случае нескольких вариантов действий от блока отходят несколько линий. Если же к блоку подходят несколько линий, то это означает, что выполняемая операция является общей для двух или более последовательностей блоков. Выбор логических путей может основываться на статистических или логических условиях, действующих в момент выбора.

В GPSS/PC имеется определенное количество типов блоков для задания объектов и операций над ними. Каждому блоку соответствует графическое изображение на блок-диаграмме. Стрелки между блоками указывают маршруты потоков сообщений.

Далее, чтобы применить язык моделирования GPSS, каждый блок блок-диаграммы заменяется соответствующим оператором GPSS/PC.

4.3.1. Объекты GPSS/PC

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

4.3.1.1. Сообщения

Сообщения (транзакты) это динамические объекты GPSS/PC. Они создаются в определенных точках модели, продвигаются интерпретатором через блоки, а затем уничтожаются. Сообщения являются аналогами единиц-потоков в реальной системе. Они могут представлять собой различные элементы даже в одной системе. Практически все изменения состояния моделей происходят в результате входа сообщений в блоки и последующего выполнения подпрограмм системы моделирования, связанных с соответствующими типами блоков.

Каждое продвижение считается событием, которое должно происходить в конкретный  момент времени.  Интерпретатор  GPSS/PC автоматически определяет моменты наступления событий.  В тех  случаях, когда событие не может произойти,  хотя момент его наступил (например, при попытке занять устройство, когда оно уже занято), сообщение прекращает продвижение до снятия блокирующего условия.

Сообщения нумеруются последовательно, начиная с номера 1. Параметры сообщений принимают значения из множества целых чисел. Каждое сообщение имеет один или более параметров. Параметры нумеруются. Сообщение может обращаться только к своим параметрам. Номера параметров используются для ссылок на значения, присвоенные параметрам.

Сообщениям может присваиваться приоритет, используемый системой в ходе моделирования.

4.3.1.2. Блоки

После того как система описана, исходя из операций, которые она выполняет, ее нужно описать на языке GPSS/PC, используя блоки, которые выполняют соответствующие операции в модели.

В блоках могут происходить события четырёх  основных  типов:

1) создание  или  уничтожение  сообщений;

2)  изменение  числового атрибута объекта;

3) задержка сообщения на определенный  период времени;

4)  изменение  маршрута  сообщения  в  модели.

4.3.1.3. Одноканальные  устройства

Аналогами обслуживающих приборов и реальных систем в GPSS/PC являются объекты типа "оборудование". К объектам этого типа относятся одноканальные устройства и многоканальные устройства. Одноканальные устройства (в дальнейшем их будем называть устройствами) представляют собой оборудование, которое в любой момент времени может быть занято только одним сообщением. Интерпретатор записывает информацию о том, какое сообщение в настоящий момент занимает устройство. Если другое сообщение попытается захватить устройство, то это сообщение задерживается до тех пор, пока устройство не освободится. Программа автоматически подсчитывает общее время занятости устройства. Это значение позволяет определить коэффициент использования устройства. Подсчитывается также общее число сообщений, занимавших устройство, что позволяет вычислить среднее время занятости устройства одним сообщением.

4.3.1.4. Многоканальные  устройства

В GPSS/PC многоканальные устройства представляют объекты типа "оборудование" для параллельной обработки, они могут быть использованы несколькими сообщениями одновременно. Многоканальные устройства используются для представления физического оборудования, например, зрительного зала театра, стоянки автомобилей и, в некоторых случаях, основной памяти в системах для обработки данных. Пользователь определяет емкость каждого многоканального устройства, используемого в модели, а интерпретатор ведет учет числа единиц многоканальных устройств, занятых в каждый момент времени. Если сообщение пытается занять больше единиц многоканального устройства, чем свободно в данный момент, обработка этого сообщения задерживается до того момента, пока в многоканальном устройстве освободится достаточный объем.

Программа автоматически ведет подсчет числа сообщений, входящих в многоканальное устройство. Определяется также среднее число единиц многоканальных устройств, занятых одним сообщением, и среднее время пребывания сообщения в многоканальном устройстве. Эти статистические данные выдаются в конце счета и позволяют определить, насколько эффективно используются в системе объекты параллельной обработки и достаточна ли их емкость.

4.3.1.5. Очереди

В любой системе движение потока сообщений может быть задержано из-за недоступности оборудования. Например, требуемые устройства могут быть уже заняты или многоканальные устройства, в которые нужно войти, уже заполнены. В этом случае задержанные сообщения ставятся в "очередь"    еще  один  тип  объектов  GPSS/PC.  Учет  этих  очередей составляет одну из основных функций интерпретатора GPSS/PC.

Пользователь может определить специальные точки в модели, в которых нужно собирать статистику об очередях. Тогда интерпретатор GPSS/PC автоматически будет собирать статистику об очередях (длину очереди, среднее время пребывания в очереди и т.д.). Число задержанных сообщений и продолжительность этих задержек определяется только в этих заданных точках. Интерпретатор также автоматически подсчитывает в этих точках общее число сообщений, поступающих в очередь. Интерпретатор подсчитывает среднее время пребывания сообщения в очереди (для каждой очереди), а также максимальное число сообщений в очереди.

4.3.1.6. Модельное время

Чтобы обеспечить правильную временную последовательность событий в модели, организованы часы, хранящие значения текущего момента в модели. Все отрезки времени моделируемой системы измеряются целыми значениями. В отличие от обычных часов, измеряющих время в определенных единицах, обычно в секундах, часы в GPSS/PC меняют свое значение только для того, чтобы указать время наступления ближайшего события. Например, если текущее значение часов модели равно 2, а очередное событие должно наступить в момент времени 7, то значение часов увеличивается сразу на 5 единиц. Отметим, что единицы времени в модели не обязательно должны быть конкретными единицами времени, такими как секунда или час. Основной единицей времени в модели можно выбрать любую единицу, которая позволит получить необходимую точность моделирования. Важно помнить, единицы времени выбираются исходя из требований пользователя к точности моделирования.

4.3.1.7. Статистика GPSS/PC

Поскольку целью построения любой модели является исследование моделируемой системы, интерпретатор GPSS/PC автоматически собирает стандартную статистику по каждому типу объектов, занятых в модели.

Стандартная статистика используется и при отладке модели, и при оценке самой системы.

4.3.2. Кодирование операторов GPSS/PC

4.3.2.1. Стандартные  числовые  атрибуты

В процессе моделирования интерпретатор GPSS/PC автоматически регистрирует и корректирует информацию, касающуюся различных элементов, используемых в модели. Большая часть информации доступна только интерпретатору. Однако к некоторым атрибутам объектов может обращаться и программист, манипулируя их значениями согласно логике модели. Такие атрибуты называются стандартными числовыми атрибутами (СЧА). Каждый объект GPSS/PC имеет свой набор СЧА. Кроме СЧА объектов, существуют еще системные числовые атрибуты, к которым пользователь может обращаться в модели, но не может изменять их значение. Имя СЧА состоит из двух частей. Первая часть указывает групповое имя, идентифицирующее тип объекта и тип информации об объекте. Вторая часть идентифицирует конкретного члена группы.

Групповое имя состоит из одной-двух букв, фиксированных для информации об объектах определенного типа, например, Q ссылка на текущее значение длины очереди, QA целая часть среднего значения очереди и т.д. Объекты GPSS/PC могут быть идентифицированы с помощью числовых или символьных имен.  Если объект идентифицирован  с  помощью номера, то ссылка на его стандартный числовой атрибут записывается как СЧАj, где j номер объекта (целое число). При символической идентификации объекта ссылка на его стандартный атрибут записывается как СЧА$<имя>, где <имя> символьное имя объекта.

К системным числовым атрибутам относятся следующие величины:

RNj число, вычисляемое j датчиком случайных чисел (где 1<=j<=7). Все  датчики   генерируют   последовательность   равномерно распределенных  случайных чисел. Это целое число изменяется от 0 до 999 включительно;

C1 текущее значение условного времени. Автоматически изменяется программой и устанавливается в 0 управляющими операторами CLEAR или RESET;

AC1 текущее значение абсолютного времени. Автоматически изменяется программой. Эта величина не меняется под действием управляющего оператора RESET и  устанавливается в 0 лишь под действием оператора CLEAR;

TG1 число, равное текущему значению счетчика завершений. Сообщения, вошедшие в блоки TERMINATE с ненулевым операндом А, уменьшают значение этого счетчика на число, равное значению операнда А;

XN1  возвращает  номер  активного  сообщения;

Z1  возвращает размер свободной оперативной памяти в байтах;

М1 время пребывания в модели сообщения, обрабатываемого программой в данный момент. Эта величина может изменяться блоком MARK. Это время вычисляется следующим образом:

PR приоритет обрабатываемого в данный момент сообщения. Каждое сообщение GPSS/PC имеет уровень приоритета, присваиваемый ему в момент создания. Значение приоритета (0-127) присваивается в блоке GENERATE или SPLIT. По умолчанию приоритет равен 0. При обращении к стандартному числовому атрибуту PR получают значение приоритета сообщения, обрабатываемого в данный момент.

Сообщения имеют следующие СЧА:

Pj значение  параметра j текущего сообщения;

MBj флаг синхронизации: 1, если сообщение в блоке j принадлежит тому же семейству, что и текущее сообщение,  0 в противном случае;

MPj ( j<>1 ) значение времени, равное разности абсолютного модельного времени и содержимого j-го параметра текущего сообщения;

Запись времени прохождения в параметре сообщения  –  MPj (j<>1): в поле А блока MARK может быть задан номер j параметра сообщения. При прохождении сообщения через такой блок MARK, текущее значение абсолютного условного времени записывается в j-м параметре сообщения. Впоследствии, при обращении, значение стандартного числового атрибута MPj (j<>1) вычисляется следующим образом:

Блоки имеют следующие СЧА:

Nj общее число сообщений, которое должно войти в j-й блок. Подсчёт ведется программой автоматически. Например, N$MET1 счетчик числа входов в блок МЕТ1. Этот счетчик изменяется при каждом входе сообщения в блок МЕТ1;

Wj текущее число сообщений, которое находится в блоке j. Значение этого счетчика подсчитывается автоматически. Например, W$MET2 счетчик текущего числа сообщений в блоке МЕТ2.

Стандартные числовые атрибуты могут использоваться в качестве операндов практически в любом типе блоков. Также значение любого СЧА может входить в большинство операторов описания объектов. Особенностью СЧА является то, что они обеспечивают пользователю доступ к характеристикам состояния системы в процессе моделирования.

4.3.2.2. Типы операторов GPSS/PC

После того как блок-диаграмма составлена, она должна быть записана в форме, удобной для ввода в ЭВМ. Для этого информация об объектах GPSS/PC записывается в виде операторов в определенном формате. Операторы GPSS/PC делятся на следующие типы:

-   операторы описания блоков;

-   операторы описания данных и контроля управления;

  •  команды GPSS/PC.

4.3.2.3. Кодирование операторов GPSS/PC

При использовании GPSS/PC для ссылок на числа, блоки или объекты применяются имена. Имя представляет собой алфавитно-цифровую последовательность, длиной до 20 символов, начинающуюся с буквы.  Допустимо  применение  символов  только латинского алфавита. В состав имени могут включаться также символы подчеркивания "_". Именами не могут быть коды операторов GPSS/PC, ключевые слова или коды стандартных числовых атрибутов. При трансляции GPSS/PC присваивает именам  уникальные  номера,  начиная со  стартового  номера  10000.

Для принудительного присваивания именам нужных номеров, необходимо перед использованием имен с помощью оператора EQU присвоить именам соответствующие номера.

4.3.3. Блоки, ориентированные на сообщения

Практически все изменения состояния в моделях GPSS/PC происходят в результате входа сообщений в блоки и выполнения подпрограмм, связанных с этими блоками.

4.3.3.1. Блок GENERATE

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

Блок GENERATE имеет следующий формат записи:

GENERATE     [<A>],[<B>],[<C>],[<D>],[<E>]

В поле А указывается время, которое определяет интервал между моментами генерации сообщений блоком GENERATE. Операнд А может быть именем, положительным целым числом или непосредственно СЧА.  Нельзя использовать в качестве операнда параметры сообщения.

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

При вычислении разницы значений, заданных в полях А и В, получается нижняя граница интервала, а при вычислении суммы - верхняя граница. После генерации очередного сообщения выбирается число из полученного интервала, и это будет значение времени, через которое следующее сообщение выйдет из блока GENERATE.

Пример:  GENERATE     25,10

В этом случае генерация сообщений производится по равномерному закону из интервала – (15,35).

Следует обратить внимание на то, что сообщения генерируются с заданными интервалами только в том случае, если у блоков, следующих за блоком GENERATE (например: GATE, TEST, SEIZE или ENTER), не выставлены блокирующие условия. Каждое последующее сообщение формируется только тогда, когда сообщение из блока GENERATE входит в следующий блок.

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

В поле С задается начальная задержка. Начальная задержка относится к моменту формирования первого сообщения в блоке GENERATE как при первом просчете модели, так и после выполнения операции CLEAR. Начальная задержка это момент времени, в который первое сгенерированное сообщение должно выйти из блока GENERATE; поля А и В на задержку сообщения влияния не имеют. Начальная задержка может быть меньше, равна или больше среднего времени, заданного в поле А. Операнд С может быть именем, положительным целым числом или непосредственно СЧА. Нельзя использовать в качестве операнда параметры сообщения.

В поле D задается предел генерации. Эта величина представляет собой максимальное число сообщений, которое будет создано в блоке GENERATE. Операнд D может быть именем, положительным целым числом или непосредственно СЧА. Нельзя использовать в качестве операнда параметры сообщения. Если поле D пусто, блок генерирует неограниченное число сообщений. Предел генерации инициализируется повторно операцией CLEAR.

Поле Е определяет приоритет сообщений. Операнд Е может быть именем, положительным целым числом или непосредственно СЧА. Нельзя использовать в качестве операнда параметры сообщения. Если поле Е не задано, приоритет по умолчанию равен 0.

При повторном описании блока GENERATE при помощи нового оператора описания блока интерпретатор GPSS просматривает все находящиеся в данный момент модели сообщения и проверяет, есть ли среди них сообщения, связанные с повторно описываемым блоком GENERATE (таких сообщений может и не быть, если данный блок уже создал заданное число сообщений). Эти сообщения, если они есть, уничтожаются. Операнды нового блока GENERATE заменяют операнды предыдущего блока GENERATE, и затем создается новое сообщение, используя спецификации нового блока.

При использовании блока GENERATE необходимо помнить, что сообщение не должно входить в блок GENERATE. Если сообщение пытается это сделать, возникает ошибка выполнения.

Если в операторе описания блока GENERATE в поле D было задано максимальное число генерируемых блоком сообщений, и заданное число сообщений уже вышло из этого блока, т.е. блок уже закончил работу, то в процессе моделирования этот блок может быть снова запущен только в одном из двух случаев:

1) выполнены операции, заданные оператором CLEAR, и производится повторный запуск всех блоков GENERATE;

2) блок GENERATE описан повторно.

4.3.3.2. Блок TERMINATE

Блок TERMINATE имеет следующий формат записи:

TERMINATE     [<A>]

Блок TERMINATE удаляет из модели входящие сообщения.

В поле А задается число единиц, на которое этот блок изменяет содержимое счетчика завершений, определяющего момент окончания моделирования. Операнд А может быть именем, положительным целым числом или СЧА. По умолчанию значение, определяемое полем А, равно 0. Если поле А пусто, то сообщение уничтожается, а содержимое счетчика не изменяется.

Когда пользователь подготавливает модель, он задает время счета, указывая в операторе START значение счетчика завершений. Поскольку различные пути сообщений в модели имеют различные смысловые значения, каждый блок TERMINATE может либо уменьшать, либо не уменьшать содержимое счетчика завершений. Если содержимое счетчика уменьшилось до 0, счет завершается.

Стандартным числовым атрибутом, связанным с описываемым оператором, является TG1 – число, равное текущему значению счетчика завершений. TG1 возвращает содержимое счетчика завершений, которое уменьшается блоком TERMINATE при заданном операнде А. Эта величина первоначально задается оператором START и указывает на завершение моделирования, когда становится равной 0.

4.3.3.3. Блок ADVANCE

Блок ADVANCE имеет следующий формат записи:

ADVANCE     <A>,[<B>]

Блок ADVANCE задерживает продвижение сообщения на заданный период времени. В поле А задается среднее время пребывания сообщения в блоке ADVANCE. Содержимое поля А может быть именем, любым целым числом, в том числе и 0 или СЧА.

В поле В указывается способ модификации среднего значения, заданного в поле А. Операнд В может быть именем, положительным целым числом или СЧА.

4.3.3.4. Блок ASSIGN

Блок ASSIGN имеет следующий формат записи:

ASSIGN     <A>,<B>,[<C>]

Блок ASSIGN заменяет, увеличивает или уменьшает текущее значение параметра сообщения на заданное значение.

В поле А задается номер параметра, которому присваивается значение. Операнд А может быть именем, положительным целым числом, СЧА и следующими за ними знаками  +, . Если значение параметра нужно увеличить или уменьшить, то справа в поле А ставится знак сложения или вычитания.

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

Пример:  ASSIGN     2000+,3

В этом примере значение поля В, равное 3, добавляется к значению параметра с номером 2000, который задан операндом А. Если такой параметр в сообщении отсутствует, то он создается со значением, равным 0, до того, как будет произведено добавление. Тогда значение параметра сообщения становится равным  3.

4.3.3.5. Блок MARK

Блок MARK имеет следующий формат записи:

MARK     [<A>]

Блок MARK либо заменяет значение отметки времени сообщения на текущее значение абсолютного условного времени (операнд А не определен), либо записывает значение условного времени в заданный параметр сообщения (при использовании операнда А).

Поле А содержит номер параметра, в который записывается значение абсолютного условного времени. Если такого параметра не существует, то он создается. Операнд А может быть именем, положительным целым числом или СЧА.

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

1)  М1 - время прохождения сообщением модели;

2) MPj ( j<>1 ) - промежуточное время прохождение сообщением участка модели.

4.3.4. Блоки, изменяющие порядок прохождения блоков сообщениями

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

4.3.4.1. Блок TRANSFER

Блок TRANSFER имеет следующий формат:

TRANSFER     [<A>],[<B>],[<C>],[<D>]

Блок TRANSFER является основным средством, позволяющим направить сообщение к любому блоку модели.

Поле А задает режим выбора следующего блока, к которому должно перейти сообщение.

Существуют следующие режимы работы блока TRANSFER:

- безусловный (пробел);

- статистический (.);

- BOTH.

Кроме того, операнд А может быть дробным числом, именем, положительным целым числом или СЧА.

Поля В и С задают возможные значения номеров следующих блоков или их положение. Использование значений описано при рассмотрении определенных режимов выбора. Операнды могут быть именем, положительным целым числом или СЧА. Если поле В пусто, ассемблер записывает в нем номер блока, следующего за блоком TRANSFER.

Безусловный режим выбора. Если операнд А пропущен, то блок TRANSFER работает в безусловном режиме. Входящее в блок TRANSFER сообщение переходит к блоку, указанному в поле В. Если сообщение в этот блок войти не может, попытка направить сообщение к какому-либо другому блоку не производится.

Статистический режим выбора. Когда операнд А не является зарезервированным словом, блок TRANSFER работает в статистическом режиме выбора.

Значение аргумента, записанного после точки (.) в поле А, рассматривается как трехзначное число, показывающее (в частях от тысячи), какой процент входящих в блок сообщений следует направить к блоку, указанному в поле С. Остальные сообщения направляются к блоку, указанному в поле В, или к следующему по номеру блоку, если операнд В пропущен. Для каждого сообщения выбирается один из двух возможных вариантов; после того как выбор сделан, второй вариант для этого сообщения не рассматривается.

Пример:  BCD  TRANSFER     .709,BLK1,BLK2

Из общего числа сообщений, входящих в блок BCD, в среднем 0,709 будут пытаться войти в блок BLK2. Остальные 0,291 будут пытаться войти в блок BLK1.

Режим BOTH. Если в поле А стоит зарезервированное слово ВOTH, блок TRANSFER работает в режиме BOTH.

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

4.3.4.2. Блок TEST

Блок TEST имеет следующий формат:

TEST <X>      <A>,<B>,[<C>]

Блок TEST определяет номер следующего блока для вошедшего в него сообщения в зависимости от того, выполняется требуемое условие или нет. Блок управляет потоком сообщений, проверяя выполнение алгебраических отношений между значениями СЧА, заданных в полях  А и В.

Операнды А и В – сравниваемые величины, которые могут быть именем, любым целым числом или СЧА.

Если в полях А и В заданы СЧА, то они должны быть записаны как СЧАj (например : очередь Q1). Необходимо присвоить им номера в начале программы с помощью оператора EQU.

Во вспомогательном поле операции оператора описания блока TEST  <X> – записывается один из шести условных операторов:

- 'L' – меньше. Отношение истинное, если значение аргумента поля А меньше значения аргумента поля В;

- 'LE' – меньше или равно. Отношение истинное, если значение аргумента поля А меньше или равно значению аргумента поля В;

- 'E' – равно. Отношение истинное, если значения обоих аргументов равны;

- 'NE' – не равно. Отношение истинное, если значения аргументов полей А и В не равны;

- 'G' – больше. Отношение истинное, если значение аргумента поля А больше значения аргумента поля В;

- 'GE' – больше или равно. Отношение истинное, если значение аргумента поля А больше или равно значению аргумента поля В.

Если отношение СЧА, заданных в полях А и В, истинно, сообщение переходит к следующему блоку. Если отношение ложно, сообщение переходит к блоку, номер которого задан полем С.

C – номер блока для входящего сообщения, если отношение величин, заданных в полях А и В, ложно. Операнд C может быть именем, положительным целым числом или СЧА.

Блок TEST может работать в двух режимах:

1) в режиме безусловного входа. Если в поле С задан номер следующего блока, сообщения никогда не задерживаются на входе блока TEST. Если заданное в блоке TEST отношение истинно, то сообщение пытается перейти к следующему по номеру блоку. Если отношение ложно, сообщение пытается перейти к блоку, заданному полем С. Выбор следующего блока производится только один раз (в момент входа сообщения в блок TEST);

2) в режиме условного входа. Если поле С блока TEST пусто (т.е. не указан альтернативный выход), сообщения не могут войти в блок TEST до тех пор, пока условия не изменятся таким образом, что отношение будет истинно. Если отношение истинно, сообщение входит в блок TEST и пытается перейти к следующему по номеру блоку.

4.3.5. Блоки для обработки сообщений, принадлежащих одному

семейству

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

Блок TERMINATE является основным средством уничтожения сообщений и удаления их из модели. Для удаления сообщений, принадлежащих к одному семейству, может быть также использован блок ASSEMBLE.

4.3.5.1. Блок SPLIT

Блок SPLIT имеет следующий формат:

SPLIT     <A>,[<B>],[<C>]

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

В поле А задается число создаваемых копий. Операнд А может быть именем, положительным целым или СЧА. Если вычисленное значение аргумента поля А равно нулю, то блок SPLIT не выполняет никаких операций. После создания копий сообщение пытается перейти к следующему по номеру блоку. Все копии формируются в момент входа порождающего сообщения в блок SPLIT.

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

В поле С может быть задан номер параметра, используемого для присвоения копиям последовательных номеров. Операнд С может быть именем, положительным целым, СЧА.

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

4.3.5.2. Блок ASSEMBLE

Блок ASSEMBLE имеет следующий формат:

ASSEMBLE     <A>

Блок ASSEMBLE объединяет заданное число сообщений, принадлежащих к одному семейству, в одно сообщение (т.е. осуществляет сборку заданного числа сообщений). После сборки из блока ASSEMBLE выходит только одно сообщение, которое переходит в следующий по номеру блок. В одном и том же блоке ASSEMBLE возможна одновременная сборка сообщений нескольких семейств. Когда сообщение входит в блок ASSEMBLE, интерпретатор просматривает семейство, к которому принадлежит это сообщение, и проверяет, есть ли другое сообщение из того же семейства в данном блоке ASSEMBLE.

Поле А задает число сообщений, участвующих в сборке. Операнд А может быть именем, положительным целым, СЧА.

4.3.5.3. Блок MATCH

Блок MATCH имеет следующий формат:

MATCH     <A>

Блок MATCH используется для синхронизации движения двух сообщений, принадлежащих к одному семейству, без удаления этих сообщений из модели.

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

Поле А задает имя или номер другого блока MATCH, называемого "сопряженным блоком MATCH". Если такого блока нет, происходит останов по ошибке. Операнд  А может быть именем, положительным целым, СЧА.

Допускается использование блока MATCH в качестве сопряженного самому себе.

Стандартным числовым атрибутом, связанным с описываемым оператором является:

МВ<номер блока> – флаг синхронизации. Возвращает 1, если сообщение, находящееся в блоке <номер блока>, принадлежит к тому же семейству, что и текущее.

4.3.6.  Списки пользователя

В GPSS/PC имеется тип списков сообщений, названных списками пользователя, которые дают возможность удалять сообщения из списков текущих событий и переводить их во временно неактивное состояние. Впоследствии эти сообщения возвращаются в список текущих событий.

4.3.6.1. Блок LINK

Блок LINK имеет следующий формат записи:

LINK     <A>,<B>,[<C>]

Блок LINK удаляет сообщение из списка текущих событий и помещает его в список пользователя.

Поле А задает номер списка пользователя, в который будет помещено вошедшее сообщение. Операнд А может быть именем, положительным целым, СЧА.

Поле В задает алгоритм упорядочивания списка пользователя. Операнд В может быть LIFO, FIFO, именем, целым или СЧА.

Допустимые операнды:

-   FIFO – вошедшее сообщение помещается в конец списка пользователя;

-   LIFO – вошедшее сообщение помещается в начало списка пользователя;

- номер параметра – входящие сообщения располагаются в списке пользователя в соответствии со значением указанного параметра. Сообщения располагаются по возрастанию значения этого параметра. Чем меньше значение параметра, тем ближе сообщение к началу списка, чем больше значение параметра, тем ближе сообщение к концу списка.

Поле С, указывающее альтернативный выход, используется при описании различных ситуаций, возникающих в очередях. Операнд С может быть именем, положительным целым, СЧА.

Если поле С пусто, индикатор, связанный с заданным списком пользователя, устанавливается в единицу. Это приводит к тому, что все входящие сообщения безусловно заносятся в список пользователя, определенный полем А в том порядке, какой задан полем В.

Если поле С не пустое, проверяется индикатор списка пользователя. Если индикатор списка установлен в единицу, вошедшее сообщение заносится в список пользователя в том порядке, какой задан в поле В. Если индикатор списка установлен в "0", он переводится в единицу, и вошедшее сообщение переходит к блоку, заданному в поле С.

Пример:  LINK     HOLD,FIFO

В этом примере вошедшее сообщение помещается в конец списка пользователя с именем HOLD.

Стандартными числовыми атрибутами, связанными с описываемым оператором, являются:

CA<номер списка> – среднее число сообщений в списке пользователя с именем <номер списка>;

CC<номер списка> – общее число сообщений в списке пользователя с именем <номер списка>;

CH<номер списка> – текущее число сообщений в списке пользователя с именем <номер списка>;

CM<номер списка> – максимальное число сообщений в списке пользователя с именем <номер списка>;

CT<номер списка> – среднее время пребывания сообщения в списке пользователя с именем <номер списка>, которое рассчитывается следующим образом:

4.3.6.2. Блок UNLINK

Блок UNLINK имеет следующий формат записи:

UNLINK [<X>]     <A>,<B>,[<C>],[<D>],[<E>],[<F>]

Блок UNLINK удаляет сообщения из списка пользователя. Указатели отношения, записываемые во вспомогательном поле операции <X>, определяют, какое явное условие следует рассматривать. Если указатель отношения не задан, предполагается отношение равенства (Е).

Указатели отношения следующие:

- 'G' – больше. Отношение истинно, если значение параметра, заданного в поле D, больше значения, заданного в поле Е;

- 'GE' – больше или равно. Отношение истинно, если значение параметра, заданного в поле D, больше или равно значению, заданному в поле Е;

- 'L' – меньше. Отношение истинно, если значение параметра, заданного в поле D, меньше значения, заданного в поле Е;

- 'LE' – меньше или равно. Если значение параметра, заданного в поле D, меньше или равно значению, заданному в поле Е, то отношение истинно;

- 'E' – равно. Отношение истинно, если значение параметра, заданного в поле D, равно значению, заданному в поле Е;

- 'NE' – не равно. Отношение истинно, если значение параметра, заданного в поле D, не равно значению, заданному в поле Е.

Поле А задает номер списка пользователя, из которого удаляются одно или несколько сообщений. Операнд А может быть именем, положительным целым или СЧА.

В поле В указывается номер блока, к которому переходят удаленные сообщения. Операнд В может быть именем, положительным целым, СЧА.

Поле С задает счетчик числа удаленных сообщений. Операнд С может быть "ALL", именем, положительным целым или СЧА. Значение СЧА является числом удаляемых сообщений. Может быть задано "ALL", что означает удаление всех сообщений.

Пример использования блока UNLINK:  UNLINK   HOLD, REENTRY, 1

Первое сообщение из списка пользователя с именем HOLD помещается в блок с именем REENTRY. Оно заносится в список текущих событий за сообщением с таким же приоритетом. Входящее сообщение переходит к следующему блоку.

Стандартными числовыми атрибутами, связанными с описываемым оператором являются те же, что и для LINK.

4.3.7.  Устройства

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

4.3.7.1. Блок SEIZE

Блок SEIZE имеет следующий формат:

SEIZE     <A>

Операнд А может быть именем, положительным целым или СЧА. Свободный блок  SEIZE позволяет вошедшему в него сообщению занять указанное устройство. Блок SEIZE задерживает  сообщение, если устройство занято или находится в состоянии недоступности.

В поле А задается имя занимаемого устройства.

Стандартными числовыми атрибутами, связанными с оператором SEIZE, являются:

F<номер устройства> – возвращает 1, если устройство занято, 0 - если свободно;

FС<номер устройства> – общее число входов в устройство;

FI<номер устройства> – возвращает 1, если устройство обслуживает прерывание, 0 в противном случае;

FR<номер устройства> – коэффициент использования устройства, выражается в тысячных долях и возвращает целое число от 0 до 1000;

FT<номер устройства> – среднее время занятости устройства одним сообщением;

FV<имя устройства> – возвращает 1, если устройство доступно и 0 – если недоступно.

4.3.7.2. Блок RELEASE

Блок RELEASE имеет следующий формат:

RELEASE     <A>

Блок RELEASE предназначен для освобождения устройства тем  сообщением,  которым оно было занято.

Если сообщение обрабатывается устройством, то с помощью блока RELEASE оно освобождает устройство и переходит к следующему последовательному блоку.

Операция освобождения выполняется немедленно после входа сообщения в блок RELEASE. В поле А задается номер освобождаемого устройства. Операнд А может быть именем, положительным целым или СЧА.

Стандартными числовыми атрибутами, связанными с описываемым оператором, являются те же, что и для SEIZE.

4.3.8.  Многоканальные устройства

При моделировании систем объекты GPSS/PC типа "многоканальные устройства" используются для имитации работы объектов реальных систем, параллельно обрабатывающих поступающие заявки.

4.3.8.1. Оператор описания многоканального устройства

Оператор описания многоканального устройства имеет следующий формат:

<NAME>   STORAGE      <A>

Оператор STORAGE определяет емкость многоканального устройства в текущей модели.

Поле метки определяет имя многоканального устройства. Поле может быть именем. Операнд А определяет объем многоканального устройства. Операнд А может быть положительным целым.

Стандартными числовыми атрибутами, связанными с описываемым оператором, являются:

-  S<номер многоканального устройства> – текущее содержимое. Возвращает емкость заполненной части устройства;

- SА<номер многоканального устройства> – среднее содержимое. Возвращает целую часть среднего заполнения устройства;

- SС<номер многоканального устройства> – счетчик числа входов в многоканальное устройство;

- SЕ<номер многоканального устройства> – незаполненность устройства.  Возвращает 1, если устройство использовалось не полностью, и 0 – в противном случае;

- SF<номер многоканального устройства> – заполненность устройства. Возвращает 1, если устройство используется полностью, 0 – в противном случае;

- SR<номер многоканального устройства> – коэффициент использования многоканального устройства, выраженный в долях тысячи. Возвращает целое в интервале от 0 до 1000;

- SM<номер многоканального устройства> – максимально занятая емкость устройства;

- SТ<номер многоканального устройства> – среднее время пребывания сообщения в устройстве;

- SV<номер многоканального устройства> – доступность устройства. Возвращает 1, если устройство доступно, 0 – в противном случае.

Блоки, связанные с описываемым оператором: ENTER, LEAVE.

4.3.8.2. Блок ENTER

Блок ENTER имеет следующий формат записи:

ENTER     <A>,[<B>]

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

В поле А указывается номер или имя многоканального устройства, куда входит сообщение. Операнд может быть именем, положительным целым или СЧА.

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

Стандартными числовыми атрибутами, связанными с описываемым оператором, являются те же, что и для STORAGE и:

  •  R<имя многоканального устройства> – емкость незаполненной части устройства.

4.3.8.3. Блок LEAVE

Блок LEAVE имеет следующий формат:

LEAVE     <A>,[<B>]

Блок LEAVE освобождает определенное число единиц многоканального устройства.

Занятый объем многоканального устройства уменьшается на число освобождаемых единиц. Оставшаяся емкость многоканального устройства увеличивается на ту же величину. Счетчик числа входов не изменяется. Недоступность многоканального устройства не влияет на блок LEAVE.

Поле А блока LEAVE определяет номер или имя многоканального устройства. Операнд может быть именем, положительным целым или СЧА.

Поле В - число освобождаемых единиц многоканального устройства. Операнд может быть именем, положительным целым или СЧА. Если это поле пусто, предполагается 1. Число освобождаемых единиц не должно превышать текущее содержимое многоканального устройства.

Стандартные числовые атрибуты, связанные с описываемым оператором, те же, что и для ENTER.

4.3.8.4. Блоки GATE SNE, GATE SF, GATE SNF, GATE SE, GATE SV

Блоки GATE имеют следующий формат:

GATE <X>  <A>,<B>

Блоки GATE позволяют управлять движением сообщений в модели в соответствии со значением логических операторов, связанных с многоканальным устройством (в поле Х). К этим операторам относятся:

- SNEj – многоканальное устройство j не пусто;

- SEj  – многоканальное устройство j пусто;

- SNFj – многоканальное устройство j заполнено;

- SFj  – многоканальное устройство j не заполнено;

- SNVj – многоканальное устройство j недоступно;

- SVj – многоканальное устройство j доступно.

Блок GATE может задержать сообщение на входе, если не задан альтернативный выход.

Поле А определяет имя многоканального устройства, состояние которого проверяется. Операнд А может быть именем, положительным целым числом или СЧА.

Поле В – альтернативный блок, если логический атрибут имеет значение "ложь". Операнд В может быть именем, положительным целым или СЧА. Если поле В определено, то оно должно содержать метку блока, допустимую для текущей модели.

4.3.9.  Очереди

В GPSS/PC объекты типа "очередь" вводятся для сбора статистических данных. Статистика об очередях собирается в моменты входа сообщения в блок QUEUE (вход в очередь) или в блок DEPART (выход из очереди). С объектом "очередь" связаны два типа блоков: QUEUE, DEPART.

4.3.9.1. Блок QUEUE

Формат записи блока QUEUE:

QUEUE     <A>,[<B>]

Блок QUEUE увеличивает длину очереди.

В поле А задается номер или имя очереди, к длине которой добавляются единицы. Операнд может быть именем, положительным целым или СЧА.

Поле В определяет число единиц, на которое увеличивается текущая длина очереди. Если поле В пусто, то прибавляется единица. Операнд может быть именем, положительным целым или СЧА.

Стандартные числовые атрибуты, связанные с описываемым оператором, следующие:

- Q – текущая длина очереди;

- QА – средняя длина очереди;

- QС – общее число входов в очередь;

- QМ – максимальная длина очереди;

- QТ – среднее время ожидания в очереди;

- QХ – среднее время ожидания в очереди для сообщений с ненулевым временем задержки;

- QZ – число входов в очередь с нулевым временем задержки.

4.3.9.2. Блок DEPART

Блок DEPART имеет следующий формат:

DEPART     <A>,[<B>]

Блок DEPART служит для уменьшения длины очереди.

В поле А задается номер или имя очереди, длину которой нужно уменьшить. Операнд может быть именем, положительным целым или СЧА.

В поле В задается число единиц, на которое уменьшается длина очереди. Это число не должно превышать текущую длину очереди. Если поле В пусто, длина очереди уменьшается на единицу. Операнд может быть именем, положительным целым или СЧА.

4.3.10. Операторы контроля управления

4.3.10.1. Оператор START

Оператор START имеет следующий формат записи:

START      <A>,[<B>],<C>,[<D>]

Оператор START используется для инициирования начала моделирования.

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

Поле В – операнд вывода статистики. Операнд может быть "NP" либо опущен. Задание "NP" в поле В приводит к блокировке вывода статистики. По умолчанию выводится стандартная статистика.

Поле С не используется. Сохраняется по аналогии с описаниями других версий GPSS.

Поле D определяет необходимость вывода содержимого списков текущих и будущих событий. Операнд D может быть положительным целым.

Моделирование идет до тех пор, пока счетчик завершения моделирования, определенный операндом А, не достигнет 0. Для уменьшения счетчика используется блок TERMINATE.

Моделирование может закончиться раньше, если достигнута граница времени, определенная оператором SIMULATE, или если нажата клавиша [Esc], или если обнаружены ошибочные условия.

Операнды В и D используются для контроля неотформатированной статистики. Если не используется операнд В, то выводится неотформатированная статистика. Если операнд D не равен 0, то выводятся списки текущих и будущих событий. В других случаях они не выводятся.

Стандартный числовой атрибут, связанный с описываемым оператором TG1 – счетчик завершения.

4.3.10.2. Оператор RESET

Формат записи оператора:  RESET

Оператор RESET сбрасывает в ноль статистику и атрибуты системы. Действие оператора RESET можно описать следующим образом:

- значение относительного условного времени (C1) устанавливается в ноль;

- значение абсолютного условного времени (AC1) остается неизменным;

- все датчики псевдослучайных чисел остаются неизменными.

Счетчики блоков (Nj) сбрасываются в ноль.

4.3.10.3. Оператор CLEAR

Формат записи оператора:  CLEAR

Оператор CLEAR сбрасывает всю накопленную статистику, удаляет все сообщения из модели и устанавливает отсчет сгенерированных сообщений для блока GENERATE, начиная с 1.

Когда выполняется оператор CLEAR:

- содержимое всех блоков становится равным 0;

- все сообщения удаляются из модели;

- текущие счетчики устанавливаются в 0;

- системное время устанавливается в 0;

- устройства незаняты и доступны;

- многоканальные устройства становятся свободными и доступными;

- общие счетчики устанавливаются равными 0;

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

- состояние датчиков псевдослучайных чисел не изменяется;

- внутренний счетчик генерируемых сообщений в блоке GENERATE устанавливается в 0.

4.3.10.4. Оператор EQU

Оператор предназначен для присвоения числовых значений именам, используемым в модели.

Оператор имеет следующий формат:

<NAME>  EQU     <X>

Здесь  NAME – имя в поле метки оператора;

X – выражение.

Имена удаляются из тела программы, находящейся в буфере, после присвоения им числовых значений. Операторы EQU также не включаются в тело модели в буфере редактора GPSS/PC. Однако повторным определением и вводом новых операторов EQU имена могут быть переопределены. В поле метки операторов EQU не могут использоваться метки блоков.

4.3.10.5. Оператор SIMULATE

Оператор предназначен для задания верхней временной границы моделирования. Время – реальное, измеряется в минутах.

Оператор имеет следующий формат:

SIMULATE <A>  

Здесь  A – предел времени моделирования в минутах.

Пример:  SIMULATE  120

В примере задается лимит времени, равный 2 часам. Если реальное время прогона модели достигает предельного значения, то моделирование завершается.

4.4. Руководство пользователя СПО GPSS/PC

В системе GPSS/PC языком моделирования является язык GPSS/PC.

GPSS/PC может эксплуатироваться на ПЭВМ типа IBM PC/XT-AT и совместимых с ними машин в среде операционной системы MS-DOS. Для функционирования GPSS/PC необходимо наличие на диске следующих файлов:

GPSSPC.EXE  –  головной  модуль  системы,  он  осуществляет  запуск  СПО

                            GPSS/PC;

SETTINGS.GPS файл настройки системы, используется головным модулем системы. Перед запуском системы должен располагаться на том же диске и в том же каталоге (подкаталоге), что и головной модуль;

STARTUP.GPS  текстовый файл для автоматического запуска команд GPSS/PC. C помощью любого текстового редактора в файл могут быть внесены любые команды GPSS/PC. В дальнейшем, после запуска, система GPSS/PC считывает данные этого файла и отрабатывает каждую встретившуюся в нем команду GPSS/PC;

GPSSREPT.EXE программа-Редактор выходной статистики GPSS/PC;

Примечание: если СПО GPSS/PC эксплуатируется на ПЭВМ IBM PC в среде операционной системы MS-DOS ниже версии 5.0, то на том же устройстве, что и GPSS/PC, должны располагаться следующие файлы:

- NG.EXE;

- NG.INI;

- GPTUT.LZH;

- GPSSTUT.NG.

Обычно они находятся в подкаталоге TUT. Запуск GPSS/PC в этом случае осуществляется с помощью файла GPSS.BAT.

Взаимодействие пользователя с системой осуществляется в режиме диалога. Для этого в системе предусмотрен ряд средств, к которым относятся:

- команды GPSS/PC;

- виртуальные окна;

- редактор исходных текстов моделей на языке GPSS;

- редактор выходной статистики GPSS/PC.

4.4.1.  Команды GPSS/PC

Команды GPSS/PC необходимы для построения программы модели и интерактивного взаимодействия с моделью. В противоположность операторам описания данных и контроля управления или блокам программы, команды не являются частью языка GPSS/PC. Для спецификации команды достаточно указать несколько первых символов этой команды, обеспечивающих ее уникальность.

4.4.1.1. Команда @<FILESPEC>

Эта команда считывает текст модели из файла с именем FILESPEC в рабочий буфер GPSS/PC.

Формат команды:

@<FILESPEC>

GPSS/PC открывает текстовый файл с именем FILESPEC и начинает считывать в рабочий буфер системы. Если в тексте модели встречается ошибка, то издается звуковой сигнал, текст диагностического сообщения отображается в окне данных (Data Window), и продолжается считывание модели в рабочий буфер GPSS/PC. При этом ошибочная строка не включается в текст считываемой  модели.  Можно  прервать процесс считывания  модели,  нажав клавишу [Esc]. Можно временно приостановить процесс считывания файла, нажав любую клавишу. Вторичное нажатие клавиши приводит к  возобновлению  считывания файла.

4.4.1.2. Команда CONTINUE

Эта команда предназначена для возобновления прерванного процесса моделирования.

Формат команды:

CONTINUE

Команда возобновляет процесс моделирования, который был ранее прерван или остановлен командой STOP. Моделирование считается остановленным, когда встречается условие, установленное командой STOP или STEP. Команда CONTINUE продолжает процесс моделирования, но не исключает условие STOP, т.е., если это условие встретится вновь в модели, то оно снова сработает. Условие STOP может быть исключено из модели опцией OFF команды STOP.

Моделирование считается прерванным, если была нажата клавиша [Esc]. В этом случае команда CONTINUE продолжает процесс моделирования.

Команда CONTINUE продолжает процесс моделирования, если счетчик завершения является положительным числом, или, в противном случае, прекращает процесс моделирования. При возобновлении процесса моделирования осуществляется перенумерация блоков модели, если были вставлены новые блоки или удалены некоторые из них; переопределяется размещение блоков и затем начинается процесс планирования сообщений. Генераторы случайных чисел не сбрасываются.

4.4.1.3. Команда DELETE

Команда DELETE удаляет блоки модели из рабочего буфера GPSS/PC.

Формат команды:

DELETE <A>,[<B>]

А – номер первого удаляемого блока;

В – номер последнего удаляемого блока.

Операнды А и В могут быть положительными десятичными числами.

Пример:  DELETE  122,145

Эта команда удаляет все блоки, номера которых содержатся в интервале 122÷145.

Если операнд В отсутствует, то удаляется только один блок с     номером А.

Для удаления текста всей модели из рабочего буфера GPSS/PC можно указать номера границ блоков, заведомо большие реально существующих.

4.4.1.4. Команда DISPLAY

Команда DISPLAY выводит в окне данных весь или часть текста модели, содержащейся в рабочем буфере GPSS/PC.

Формат команды:

DISPLAY  [<A>],[<B>]

А – номер первой отображаемой строки программы;

В – номер последней отображаемой строки программы.

Операнды А и В могут быть положительным десятичным числом. Для отображения всей программы применяется команда  DISPLAY без операндов.

Если отсутствует операнд А, но имеется операнд В, то отображение начинается с первого блока программы и до блока с номером В. Если используется только операнд А, то отображается только одна строка программы с номером А.

Для приостановки процесса прокрутки текста на экране дисплея необходимо нажать любую клавишу. Повторное нажатие клавиши вызывает продолжение прокрутки.

4.4.1.5. Команда EDIT

Команда EDIT позволяет модифицировать программу, находящуюся в рабочем буфере модели.

Формат команды:

EDIT  <A>

А – номер строки программы. Операнд может быть положительным десятичным числом.

Команда EDIT сначала восстанавливает копию указанного оператора из программы, находящейся в рабочем буфере GPSS/PC. Можно сделать изменения в этой копии, включая и номер блока. После нажатия клавиши [Enter] копия блока помещается в соответствующее место текста модели, находящейся в рабочем  буфере.  В  ходе  модификации блока модели одновременно осуществляется синтаксический анализ модифицируемого блока. При выявлении ошибки выдается звуковой сигнал. Команда EDIT запрещает ввод ошибочного блока программы модели.

В режиме TYPE-OVER MODE осуществляется изменение строки программы без вставки новых символов. Если нажать клавишу [Ins], то EDIT переходит в режим INSERT MODE, что дает возможность вставлять новые символы в модифицируемую строку.

EDIT использует следующие специальные клавиши или комбинации клавиш:

[Ins] – переключить в режим вставки (INSERT MODE) и обратно

                      (TYPE-OVER MODE);

[<-] – переместить курсор влево на один символ;

[->] – переместить курсор вправо на один символ;

[Ctrl],[<-] – переместить курсор влево на одно слово;

[Ctrl],[->] – переместить курсор вправо на одно слово;

[Del] – удалить один символ;

[End] – переместить курсор к концу строки;

[Esc] – выйти из EDIT без изменения строки.

4.4.1.6. Команда RENUMBER

Эта команда перенумеровывает все блоки программы модели, находящиеся в рабочем буфере GPSS/PC.

Формат команды:

RENUMBER   [<A>],[<B>]

A – номер первого блока. Может быть положительным десятичным числом, содержащим не более 6 знаков.

В – шаг (приращение) нумерации. Может быть положительным десятичным числом, содержащим не более 6 знаков.

Пример:  RENUMBER  10,.1

Эта команда нумерует блоки в следующем порядке: 10.1, 10.2, и т.д. Если  операнды А и В не используются, то по умолчанию нумерация начинается с номера 10 с шагом 10.

4.4.1.7. Команда SAVE

Команда переписывает текст модели, содержащийся в рабочем буфере GPSS/PC в указанный текстовый файл MS DOS.

Формат команды:

SAVE   <A>,[<B>],[<C>]

A – имя файла, в который записывается программа модели;

В – номер блока модели, начиная с которого осуществляется запись программы в файл;

С – номер блока модели, по какой включительно осуществляется запись программы в файл.

При отсутствии операндов В и С в файл записывается весь текст программы модели. При отсутствии операнда В и наличии операнда С в файл записывается текст модели, начиная с первого оператора и по оператор, указанный операндом С. При отсутствии операнда С и наличии операнда В в файл записывается только один оператор программы модели с номером, указанным операндом В. Если будет использована команда END с несохраненной рабочей моделью, то GPSS/PC выдает предупреждающее сообщение с возможностью предотвратить выход из системы.

4.4.1.8. Команда STEP

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

Формат команды:

STEP <A>

A – счетчик прохождения блоков. Операнд может быть положительным целым.

Пример:  STEP 1

Процесс моделирования прерывается при прохождении одного блока модели.

Когда процесс моделирования прерывается, GPSS/PC переходит в состояние, вызываемое клавишей [Esc]. В верхней части экрана появляется сообщение трассировки. Когда используется команда STEP в модели должно быть активное сообщение. Модель, которая стартовала с использованием команды STEP, не может быть завершена при нулевом счетчике завершения. Модель завершится лишь при прохождении указанного в операнде А команды STEP количества блоков.

Кода команда STEP выполняется, то

- счетчик завершения не устанавливается;

- если необходимо, перенумеровываются блоки;

- все блоки, генерирующие сообщения, приводятся в исходное состояние;

- генераторы случайных чисел не сбрасываются.

4.4.1.9. Команда STOP

Команда устанавливает или снимает условие прерывания моделирования.

Формат команды:

STOP [<A>],[<B>],[<C>]

A – номер сообщения. Операнд может быть положительным целым;

В – номер блока. Операнд может быть положительным целым;

С – флаг состояния команды. Операнд может быть ON или OFF. По умолчанию ON.

Пример:  STOP  100,52

Эта команда устанавливает условие прерывания модели при входе сообщения с номером 100 в блок с номером 52.

Команда STOP с опцией ON устанавливает условие прерывания моделирования, но не стартует модель. Для запуска моделирования должна использоваться последовательность команд START, STEP, CONTINUE.

Когда выполняется прерывание по условию команды STOP, система переходит в состояние, вызываемое нажатием клавиши [Esc]. В верхней части экрана высвечивается трассируемое сообщение. Команда CONTINUE позволяет выйти из прерывания и продолжить моделирование, однако условие прерывания, введенное ранее командой STOP, остается включенным. Для отключения условия прерывaния необходимо войти в команду STOP с флагом OFF. Если отсутствует операнд А команды STOP, то любой транзакт может вызвать условие прерывания. Если отсутствует операнд В команды STOP, то любой блок модели удовлетворяет условию прерывания. Команда STOP без операндов вызывает немедленное прерывание процесса моделирования.

4.4.1.10. Команда USERCHAINS

Команда отображает содержимое списков пользователя на экране дисплея.

Формат команды:

USERCHAINS

Команда USERCHAINS переходит в окно данных и отображает в нем все члены списков пользователя.

4.4.1.11. Команда WINDOW

Команда WINDOW предназначена для открытия виртуальных окон GPSS/PC.

Формат команды:

WINDOW  <A>,[<B>]

Операнд А позволяет Вам выбрать окно из набора окон GPSS/PC. Операнд может быть: BLOCKS, DATA, FACILITIES, MATRICES, POSITIONS, STORAGES, TABLES.

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

В окнах таблиц и матриц, как правило, отображается один объект за один раз. При наличии нескольких объектов типа таблиц и матриц полный просмотр можно осуществить с помощью управляющих клавиш [PgUp], [PgDn], [End]. Операнд В не используется для окон DATA и POSITIONS.

4.4.1.12. Команда END

Эта команда предназначена для завершения работы с системой GPSS/PC.

Формат команды:      

END

В результате выполнения команды END система завершает работу и возвращает управление DOS. Если в буфере редактора GPSS/PC проводились корректировки и не было сохранения буфера, то система выдает соответствующее предупреждающее сообщение с рекомендацией подумать, не  стоит ли сохранить в файле содержимое буфера, прежде чем завершить работу с системой.

При работе с командами GPSS/PC можно использовать функциональные клавиши. Они запрограммированы следующим образом:

F1 – DISPLAY

F2 – EDIT                                         

F3 – SAVE

F4 – DELETE

F5 – RENUMBER

F6 – STEP

F7 – STOP

F8 – END

4.4.2. Виртуальные окна и редактор исходных текстов моделей

Под виртуальным окном (имеется шесть графических окон и одно псевдографическое окно) понимается отображение информации о состоянии отдельных объектов на экране дисплея.

GPSS/PC предоставляет в распоряжение пользователя семь виртуальных окон:

- псевдографическое окно данных (DATA WINDOW);

- графическое окно блоков (BLOCKS WINDOW);

- графическое окно устройств (FACILITIES WINDOW);

- графическое окно многоканальных устройств (STORAGES WINDOW);

- графическое окно матриц (MATRICES WINDOW);

- графическое окно позиций (POSITIONS WINDOW);

- графическое окно таблиц (TABLES WINDOW).

Графические окна матриц, позиций и таблиц используются очень редко, поэтому работа с ними не рассматривается.

Все виртуальные окна GPSS/PC могут быть открыты с помощью команды WINDOWS. Кроме того, окна могут быть открыты путем одновременного нажатия на клавиатуре ПЭВМ клавиши [Alt] и клавиши, соответствующей первому символу в имени окна.

Пользователь может активно вмешиваться в процесс отображения информации в виртуальном окне, выдавая различные команды из набора команд GPSS/PC и/или используя специальные поля команд, имеющиеся в ряде виртуальных окон GPSS/PC.

Вы можете взаимодействовать с меню окон с помощью устройства управления позицией курсора окна (см. рис 4.5). Выбор нужной команды производится с помощью перемещения курсора окна в нужную часть поля команд и последующего нажатия клавиши [Ins]. Перемещение курсора окна осуществляется с помощью клавиш управления курсором (стрелки влево, вправо, вверх, вниз). Если вы хотите отказаться от выполнения выбранной команды, нажмите клавишу [Esc].

Использование управляющих клавиш позволяет осуществлять просмотр информации, не умещаемой в одном окне. Так, клавиша [PgUp] осуществляет листание информации в окне назад. Клавиша [PgDn] осуществляет листание информации в окне вперед.

В окнах можно запросить трассировку прохождения сообщений по блокам модели в процессе  имитации, нажав клавиши [Alt] и [L]. Это вызовет  появление в верхней части окна строки (см. рис. 4.5), на которой отображается следующая информация:

- Time – текущее модельное время;

- XACT – номер участвующего в трассировке сообщения;

- leaves – номер пройденного сообщением блока;

- enters – номер блока, в который входит сообщение;

- ASSIGN – тип последнего блока.

При повторном нажатии клавиш [Alt] и [L] строка трассировки исчезает.

При вводе команд, не ориентированных на работу в текущем окне, система автоматически открывает нужное окно, меняя картинку  на экране дисплея.

При появлении в окнах лишней информации ( это может быть диаграмма устройства, имя которого было исправлено ) или при выдаче ошибки системы (System error) необходимо выйти в DOS, перезапустить систему и повторить прогон моделирования.

4.4.2.1. Окно данных

Окно данных (DATA WINDOW) предназначено для создания, и модификации исходных текстов моделей, с помощью встроенного в систему GPSS/PC строчного Редактора исходных текстов. Смена страниц отображаемой информации производится по запросу системы "Press space bar for move, any other key to resume" путём нажатия клавиши "пробел".

На рис. 4.3 изображен фрагмент модели в окне данных. Окно данных представляет собой 20 строк экрана дисплея, ограниченных сверху и снизу рамкой. Сразу под верхней чертой рамки окна располагается строка, предназначенная для отображения системой сообщений о тяжелых ошибках, обусловивших прекращение, либо невозможность начала выполнения, запрошенных пользователем действий (на рис.4.3 она пустая).

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

Двадцатая строка окна предназначена для выдачи системой сообщений-запросов о необходимости перехода к следующей странице, при постраничной организации работы окна.

Рис. 4.3. Фрагмент программы в окне данных

Сразу под нижней чертой рамки окна расположена командная строка окна данных. Через командную строку осуществляется ввод в систему команд GPSS/PC и строк текстов модели программ пользователя. В этой же строке производится корректировка ранее введенных в буфер редактора GPSS/PC строк программ моделей пользователя. При выполнении системой команды @ в командной строке высвечиваются последовательно считываемые из файлов строки программ моделей пользователя.

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

При вводе данных с клавиатуры система осуществляет контроль правильности ввода информации в каждую позицию командной строки.

Ниже командной строки, с отступом в одну строку, располагается строка состояния – служебная строка, предназначенная для отображения различной информации, зависящей от выполняемых системой функций. Так, при считывании данных из файла модели пользователя в буфер строчного Редактора системы, в строке состояния отображается спецификация считываемого файла (см. рис. 4.3). При работе со строчным Редактором GPSS/PC, в строке состояния высвечивается информация о выполняемых Редактором командах GPSS/PC. В этой же строке отображается информация о начале, продолжении, прерывании или завершении процесса имитации.

В процессе имитации в правом конце нижней черты рамки окна данных высвечивается мерцающий индикатор имитации.

4.4.2.2. Создание и модификация моделей в окне данных с помощью

            редактора исходных текстов моделей

После запуска GPSS/PC на экране высвечивается окно данных. С помощью команды @ пользователь может считать в буфер Редактора файл, содержащий нужную программу модели. Впоследствии он может ее многократно корректировать и запускать на выполнение. (см. команды GPSS/PC). После внесения изменений в программу необходимо записать ее на жесткий диск, а затем запустить на выполнение командой @<FILESPEC>.

В случае создания новой программы с помощью встроенного редактора GPSS/PC пользователь последовательно набирает строки программы в командной строке окна данных и вводит их в буфер GPSS/PC клавишей ввода. Редактор GPSS/PC, добавляя новые строки в буфер, ориентируется на их номера. При этом возможно добавление строк в любое место программы. Возможность указания номеров в виде десятичных дробных чисел позволяет вносить изменения в программу в больших объемах.

Строка описания оператора GPSS/PC состоит из следующей последовательности полей:

- номер строки. Начинается с первой позиции строки. Содержимым поля может быть десятичное число из символов, в том числе десятичное дробное число, в последнем случае десятичная точка рассматривается как один из семи символов. Пример: 105.7;

- поле метки. Используется в зависимости от типа операции. Содержимым поля является некоторое имя. В операторах описания данных поле метки обязательно должно быть заполнено;

-  поле операции;

- поле операндов. Содержимое этих полей, их наличие и количество зависит от типа операции;