MS_glavy_123 (1086515), страница 10
Текст из файла (страница 10)
Рис. 15
2.5. Проверка достоверности модели при разработке логической блок-схемы
После того как построена логическая блок-схема модели, необходимо проверить, насколько близко она отражает реальные процессы и как точно производит необходимые измерения.
Определение достоверности модели можно считать наиболее важной проблемой при решении задачи моделирования: от нее зависит степень доверия к результатам моделирования. Проверка логической блок-схемы должна дать ответ на следующие вопросы.
1. Позволяет ли замысел модели решить поставленную задачу?
2. Точно ли отражен этот замысел в логической блок-схеме?
3. Полна ли предложенная логическая блок-схема и обладает ли она необходимой последовательностью?
4. Правильны ли используемые математические уравнения?
На все эти вопросы должен быть получен утвердительный ответ. Только тогда можно считать, что данная логическая блок-схема пригодна для дальнейшей работы.
Ответ на первый вопрос был дан в конце первого этапа моделирования. Для получения ответа на второй вопрос необходим критический анализ содержательного описания. Следует проанализировать каждую описанную там функцию и убедиться, что она нашла правильное отражение в логической блок-схеме.
Третий вопрос позволяет проверить, насколько полно и последовательно реализован замысел модели. Отвечая на четвертый вопрос, мы убеждаемся в правильности всех математических уравнений и их применения в логической блок-схеме. Если они выведены на основании анализа эмпирических данных, нужно провести выборочную проверку согласия с опытом; если они получены теоретически, следует выполнить вычисления в нескольких точках с целью определения приемлемости результатов. Полезен также анализ размерностей и контроль правильности использования результатов вычислений.
Проверка достоверности на этом этапе создания модели весьма важна для дальнейшей работы. Бессмысленно продолжать ее, пока не будет полной уверенности, что на все вопросы дан утвердительный ответ. В работе [2] рекомендуется примерная последовательность действий при контроле достоверности логической блок-схемы. Необходимо в следующем порядке проверить:
отражение каждой функции, перечисленной в содержательном описании, с ее реализацией в логической блок-схеме;
нет ли в схеме непредвиденных циклов и нелогичных ветвей, просмотрев все ветви при движении по предусмотренным направлениям переходов;
достаточно ли детально, точно и полно отражает существо модели содержащаяся в блок-схеме информация;
узловые точки принятия решений, правильность их описания, правильность связей и переходов;
ясность и точность описания блоков, полноту описания блоков и подблоков, их входные и выходные величины;
наличие «входа» и «выхода» в блок-схеме и в каждом логическом цикле;
выходные величины модели, сравнив их с заданным критерием интерпретации результатов моделирования;
правильность использования всех математических выражений, уравнений и размерности;
источники входных величин и использование выходных величин всех уравнений;
правильность задания и получения всех констант, параметров и переменных;
правильность употребления всех математических и логических символов, в том числе и индексов;
правильность задания датчиками всех функций и случайных величин;
правильность задания начальных значений всех параметров и переменных;
полноту таблиц параметров;
правильность реализации в блоках всех математических выражений.
Проверка достоверности модели продолжается и на последующих этапах ее разработки.
Контрольные вопросы и задания
1. Постройте два варианта сетей Петри, представляющих СМО с тремя источниками заявок, одной ограниченной очередью и одним разрабатывающим устройством. В первом варианте приоритет относительный, во втором — абсолютный.
2. Найдите аналитические соотношения, описывающие некоторые марковские процессы специального вида, которые применяются при исследовании ИВС:
а) процесс «гибели — размножения». Марковская цепь называется процессом гибели — размножения, если граф ее состояний имеет вид, представленный на рис.16;
Рис. 16
б)циклический процесс. Марковский процесс называется циклическим, если все состояния связано в кольцо (рис.17).
Рис. 17
3.Представьте в виде агрегата (опишите процесс смены состояний) систему массового обслуживания п.1.
4.Представьте алгоритм моделирования агрегата в форме графической блок-схемы.
Глава 3
СОЗДАНИЕ ИМИТАЦИОННЫХ МОДЕЛЕЙ
_____________________________________________________________________________
После составления и проверки логической блок-схемы алгоритма переходят к программированию модели. В ряде случаев процессу создания программы предшествует выбор моделирующей ЭВМ и системы программирования. Однако в настоящее время возможности такого выбора на практике ограничены.
Программирование включает в себя следующие этапы:
-
составление плана разработки программы с оценкой затрат памяти на цикл работы модели и затрат времени на программирование и отладку;
-
разделение модели на модули, допускающие одновременную работу по программированию и отладке;
-
построение блок-схемы программы и ее анализ с точки зрения экономии количества команд, объема памяти и времени счета;
-
подготовку формы представления входных и выходных данных;
-
составление программы на языке, применяемом на данной ЭВМ;
-
проверку программы с использованием тестов;
-
проведение необходимых исправлений;
-
составление технической документации.
Кроме того, в процессе программирования неоднократно проводится проверка правильности программы.
Этап получения и анализа результатов — заключительный. Его трудоемкость (вместе с подведением итогов моделирования и принятием рекомендаций по проектированию системы) составляет примерно 45 % общих затрат.
До перехода к последнему этапу необходимо подготовить планы проведения экспериментов, расчетов на ЭВМ и анализа результатов с учетом статистических закономерностей, иллюстрации данных моделирования.
В этой главе остановимся на наиболее важных вопросах реализации перечисленных выше этапов.
3.1. Особенности языков моделирования
Первые модели, которые были достаточно просты, программировались на машинно-ориентированных языках. Рост сложности моделируемых систем привел к применению для моделирования высокоуровневых универсальных языков типа ФОРТРАН, АЛГОЛ-60, ПЛ-1, Pascal, С, C++.
Однако в ряде случаев программирование отдельных блоков (например, монитора моделирования) на этих языках оказывалось более трудоемким, нежели разработка имитирующего алгоритма.
Накопленный опыт позволил сформулировать следующие требования к специализированному языку моделирования [6, 12], который должен:
1) обеспечивать возможность описания структуры широкого класса систем, элементов систем, их свойств и связей между ними;
2) содержать средства для описания динамики системы, одновременно протекающих и взаимодействующих между собой процессов; задания произвольных распределений случайных величин,
сбора статистики в процессе моделирования и ее представления исследователю в удобной форме;
3) обеспечивать простой переход к лаконичной и естественной записи модели в виде программы с помощью средств, отождествляющих компоненты объекта с соответствующими языковыми единицами;
4) позволять легко вносить изменения в программу, использовать в ней подпрограммы, созданные пользователем, и изменять параметры модели без повторной трансляции;
5) обеспечивать (вместе с транслятором) удобство отладки программы, не накладывая существенных ограничений на ее размеры и другие характеристики.
Система моделирования в целом должна обеспечивать эффективную реализацию модели в процессе ее работы (в частности, экономное использование памяти), а также возможность прерывания работы моделирующей программы, запоминания результатов и продолжения работы с места прерывания.
Соответствующие языки были созданы. Наиболее распространенными и типичными представителями специализированных языков моделирования являются GPSS (GENERAL PURPOUSE SYSTEMS SIMULATOR, 1960), SOL (SIMULATION ORTENTED LANGUAGE, 1964), SIMULA (SIMULA TION LANGUAGE, 1966), CSSL (CONTINIOUS SYSTEM SIMULATION LANGUA GE, 1967), DINAMO (1968), СЛЭНГ (1968), GASP IY (1974), GPSS Y (1975), GPSS-PC, НЕДИС (непрерывно-дискретных систем, 1975), OCC-2 (1976), SLAM II (1979), VHDL (1982) и др. В настоящее время разработаны более 500 языков моделирования [12, 13]. Интегральные сравнительные функциональные преимущества и недостатки универсальных и специализированных языков моделирования приведены в табл.2 (по данным работ [7, 12]).
Таблица 2
Преимущества | Недостатки |
Универсальные языки | |
|
|
Специализированные языки | |
|
|
Специализированные языки моделирования различаются методами организации времени и операций; способами проверки операций и условий взаимодействия элементов; наименованиями и структурой блоков модели; видами статистических испытаний, которым можно подвергнуть данные; легкостью изменения структуры модели.
Значительное внимание уделяется созданию систем моделирования, которые включают в свой состав не только язык моделирования, но и программы, обеспечивающие процессы управления работой моделей, сбор статистики в процессе моделирования, оперативное взаимодействие с пользователем и пр., обычно объединяемые в монитор моделирования. В настоящее время многие фирмы, специализирующиеся на проектировании сложных систем и активно применяющие средства моделирования, вкладывают значительные средства в создание проблемно- и объектно-ориентированных систем моделирования. Такие мощные системы включают в свой состав базы данных и экспертные системы. Например, средняя по мощности система NetMaker XA фирмы Make Systems стоит от 37 тыс. дол. за базовый комплект плюс доплаты за встраиваемые модули. Дополнительные модули Accountant, Interpreter и Analyzer стоят еще 30 тыс. дол.
Дадим краткую характеристику специализированных языков моделирования.
Ресурсы и объекты. Программа моделирования создается для исследования системы, которая представляется как совокупность взаимосвязанных элементов, объединенных некоторым законом функционирования. В математической модели в общем случае им соответствуют агрегаты, в языках моделирования— ресурсы. Например, процессоры, каналы, датчики, оперативная и внешняя память, линии связи, операторы, файлы, программы — все это составляет ресурсы системы. Как уже отмечалось, ресурсы делятся на два класса: «устройство» и «память».
Каждый ресурс имеет свои характеристики (атрибуты), которые могут быть фиксированными или изменяться в процессе моделирования.
Функционирование системы представляется на языке моделирования как взаимодействие некоторых объектов (сообщений, запросов) с ресурсами и друг с другом. Примеры объектов — материальные предметы, программы и данные, сигналы и, т.п. Объекты могут поступать в систему извне, создаваться и уничтожаться в системе, объединяться или расчленяться для образования новых объектов, выдаваться из системы. Имеются операторы (или блоки — в GPSS), создающие сообщения в модели, например оператор ГЕНЕРИРОВАТЬ <Список параметров>.