Основы систематизации языков имитационного моделирования

5.1. Основы систематизации языков имитационного моделирования

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

 

Качество языков моделирования характеризуется:

 

удобством описания процесса функционирования системы S;

 

удобством ввода исходных данных моделирования и варьирования структуры, алгоритмов и параметров модели;

 

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

 

эффективностью анализа и вывода результатов моделирования;

 

простотой отладки и контроля работы моделирующей программы;

 

доступностью восприятия и использования языка.

 

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

 

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

 

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

 

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

 

Достоинства и недостатки языков имитационного моделирования. Преимущества языков имитационного моделирования (ЯИМ) по сравнению с универсальными языками общего назначения (ЯОН) следующие:

 

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

 

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

 

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

 

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

 

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

 

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

 

1) используются только стандартные формы вывода результатов моделирования;

 

2) недостаточная распространенность языков моделирования, которые, как правило, не входят в штатное программное обеспечение операционных систем;

 

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

 

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

 

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

 

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

 

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

 

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

 

  1. объекты моделирования (системы S) описываются (отображаются в языке) с помощью некоторых атрибутов языка;
  2.  
  3. атрибуты взаимодействуют с процессами, адекватными реально протекающим явлениям в моделируемой системе S;
  4.  
  5. процессы требуют конкретных условий, определяющих логическую основу и последовательность взаимодействия этих процессов во времени;
  6.  
  7. условия влияют на события, имеющие место внутри объекта моделирования (системы S) и при взаимодействии с внешней средой Е;
  8.  
  9. события изменяют состояния модели системы М в пространстве и во времени.
  10.  

Типовая схема архитектуры ЯИМ и технология его использования при моделировании систем показана на рис. 5.1.

 

Рис. 5.1. Типовая схема архитектуры ЯИМ и технология его использования

Задание времени в машинной модели. Функционирование модели ММ должно протекать в искусственном (не в реальном и не в машинном) времени, обеспечивая появление событий в требуемом логикой работы исследуемой системы порядке и с надлежащими временными интервалами между ними. При этом надо учитывать, что элементы реальной системы S функционируют одновременно (параллельно), а компоненты машинной модели ММ действуют последовательно, так как реализуются с помощью ЭВМ последовательного действия. Поскольку в различных частях объекта моделирования события могут возникать одновременно, то для сохранения адекватности причинно-следственных временных связей в ЯИМ имеется «механизм» задания времени для синхронизации действий элементов модели системы. Основные функции этого механизма:

 

1) корректировка временной координаты состояния системы («продвижение» времени, организация «часов»);

 

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

 

Существует два основных подхода к заданию времени: с помощью постоянных и переменных интервалов времени, которым соответствуют два принципа реализации моделирующих алгоритмов, т.е. «принцип Dt» и «принцип dz».

 

Рассмотрим соответствующие способы управления временем в модели на примере, показанном на рис. 5.2, где по оси реального времени отложена последовательность событий в системе {si} во времени, причем события s4 и s5 происходят одновременно (рис. 5.2, а). Под действием событий si изменяются состояния модели zi в момент времени tzi, причем такое изменение происходит скачком dz.

 

Рис. 5.2. Способы управления временем в модели системы

В модели, построенной по «принципу Dt» (рис. 5.2, б), моменты системного времени будут последовательно принимать значения t1'=Dt, t2'=2Dt, t3'=3Dt, t4'=4Dt, t5'=5Dt. Эти моменты системного времени tj'(Dt) никак не связаны с моментами появления событий si, которые имитируются в модели системы. Системное время при этом получает постоянное приращение, выбираемое и задаваемое перед началом имитационного эксперимента.

 

В модели, построенной по «принципу dz» (рис. 5.2, в), изменение времени наступает в момент смены состояния системы, и последовательность моментов системного времени имеет вид t1''’=tz1, t2''=tz2, t3''=tz3, t4''=tz4, t5''=tz5, т.е. моменты системного времени tk''(dz) непосредственно связаны с моментами появления событий в системе si.

 

У каждого из этих методов есть свои преимущества с точки зрения адекватного отражения реальных событий в системе S и затрат машинных ресурсов на моделирование. При использовании «принципа dz» события обрабатываются последовательно, и время смещается каждый раз вперед до начала следующего события. В модели, построенной по «принципу Dt», обработка событий происходит по группам, пакетам или множествам событий. При этом выбор Dt оказывает существенное влияние на ход процесса и результаты моделирования, и если Dt задана неправильно, то результаты могут получиться недостоверными, так как все события появляются в точке, соответствующей верхней границе каждого интервала моделирования. При применении «принципа dz» одновременная обработка событий в модели имеет место только тогда, когда эти события появляются одновременно и в реальной системе. Это позволяет избежать необходимости искусственного введения ранжирования событий при их обработке в конце интервала Dt.

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

5.1. Основы систематизации языков имитационного моделирования

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

 

Качество языков моделирования характеризуется:

 

удобством описания процесса функционирования системы S;

 

удобством ввода исходных данных моделирования и варьирования структуры, алгоритмов и параметров модели;

 

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

 

эффективностью анализа и вывода результатов моделирования;

 

простотой отладки и контроля работы моделирующей программы;

 

доступностью восприятия и использования языка.

 

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

 

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

 

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

 

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

 

Достоинства и недостатки языков имитационного моделирования. Преимущества языков имитационного моделирования (ЯИМ) по сравнению с универсальными языками общего назначения (ЯОН) следующие:

 

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

 

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

 

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

 

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

 

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

 

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

 

1) используются только стандартные формы вывода результатов моделирования;

 

2) недостаточная распространенность языков моделирования, которые, как правило, не входят в штатное программное обеспечение операционных систем;

 

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

 

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

 

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

 

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

 

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

 

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

 

  1. объекты моделирования (системы S) описываются (отображаются в языке) с помощью некоторых атрибутов языка;
  2.  
  3. атрибуты взаимодействуют с процессами, адекватными реально протекающим явлениям в моделируемой системе S;
  4.  
  5. процессы требуют конкретных условий, определяющих логическую основу и последовательность взаимодействия этих процессов во времени;
  6.  
  7. условия влияют на события, имеющие место внутри объекта моделирования (системы S) и при взаимодействии с внешней средой Е;
  8.  
  9. события изменяют состояния модели системы М в пространстве и во времени.
  10.  

Типовая схема архитектуры ЯИМ и технология его использования при моделировании систем показана на рис. 5.1.

 

Рис. 5.1. Типовая схема архитектуры ЯИМ и технология его использования

Задание времени в машинной модели. Функционирование модели ММ должно протекать в искусственном (не в реальном и не в машинном) времени, обеспечивая появление событий в требуемом логикой работы исследуемой системы порядке и с надлежащими временными интервалами между ними. При этом надо учитывать, что элементы реальной системы S функционируют одновременно (параллельно), а компоненты машинной модели ММ действуют последовательно, так как реализуются с помощью ЭВМ последовательного действия. Поскольку в различных частях объекта моделирования события могут возникать одновременно, то для сохранения адекватности причинно-следственных временных связей в ЯИМ имеется «механизм» задания времени для синхронизации действий элементов модели системы. Основные функции этого механизма:

 

1) корректировка временной координаты состояния системы («продвижение» времени, организация «часов»);

 

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

 

Существует два основных подхода к заданию времени: с помощью постоянных и переменных интервалов времени, которым соответствуют два принципа реализации моделирующих алгоритмов, т.е. «принцип Dt» и «принцип dz».

 

Рассмотрим соответствующие способы управления временем в модели на примере, показанном на рис. 5.2, где по оси реального времени отложена последовательность событий в системе {si} во времени, причем события s4 и s5 происходят одновременно (рис. 5.2, а). Под действием событий si изменяются состояния модели zi в момент времени tzi, причем такое изменение происходит скачком dz.

 

Рис. 5.2. Способы управления временем в модели системы

В модели, построенной по «принципу Dt» (рис. 5.2, б), моменты системного времени будут последовательно принимать значения t1'=Dt, t2'=2Dt, t3'=3Dt, t4'=4Dt, t5'=5Dt. Эти моменты системного времени tj'(Dt) никак не связаны с моментами появления событий si, которые имитируются в модели системы. Системное время при этом получает постоянное приращение, выбираемое и задаваемое перед началом имитационного эксперимента.

 

В модели, построенной по «принципу dz» (рис. 5.2, в), изменение времени наступает в момент смены состояния системы, и последовательность моментов системного времени имеет вид t1''’=tz1, t2''=tz2, t3''=tz3, t4''=tz4, t5''=tz5, т.е. моменты системного времени tk''(dz) непосредственно связаны с моментами появления событий в системе si.

 

У каждого из этих методов есть свои преимущества с точки зрения адекватного отражения реальных событий в системе S и затрат машинных ресурсов на моделирование. При использовании «принципа dz» события обрабатываются последовательно, и время смещается каждый раз вперед до начала следующего события. В модели, построенной по «принципу Dt», обработка событий происходит по группам, пакетам или множествам событий. При этом выбор Dt оказывает существенное влияние на ход процесса и результаты моделирования, и если Dt задана неправильно, то результаты могут получиться недостоверными, так как все события появляются в точке, соответствующей верхней границе каждого интервала моделирования. При применении «принципа dz» одновременная обработка событий в модели имеет место только тогда, когда эти события появляются одновременно и в реальной системе. Это позволяет избежать необходимости искусственного введения ранжирования событий при их обработке в конце интервала Dt.

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

Основы систематизации языков имитационного моделирования