- •А.А. Бочкарев
- •Санкт-Петербург
- •Введение
- •Раздел 1. Общие вопросы имитационного моделирования
- •1. Введение в моделирование. Понятие имитационного моделирования
- •1.1. Понятие модели
- •1.2. Понятие моделирования
- •1.3. Классификация моделей
- •1.4. Цель и задачи моделирования
- •1.5. Особенности имитационного моделирования и его преимущества
- •Контрольные вопросы
- •2. Основы теории и технологии имитационного моделирования систем
- •2.1. Уровни абстракции и основные подходы в имитационном моделировании
- •2.2. Этапы исследования систем с помощью имитационного моделирования
- •2.3. Виды моделирования
- •Контрольные вопросы
- •3. Программное обеспечение имитационного моделирования
- •3.1. Классификация программных средств имитационного моделирования
- •3.2. Возможности программных средств имитационного моделирования
- •Контрольные вопросы
- •4. Основы теории вероятностей и статистики
- •4.1. Понятие случайной величины
- •4.2. Основные законы распределения дискретной случайной величины
- •4.3. Основные законы распределения непрерывной случайной величины
- •Контрольные вопросы
- •5. Проблема создания адекватных и детальных имитационных моделей
- •5.1. Понятия адекватности, верификации и валидации моделей
- •5.2. Выбор оптимального уровня детализации моделей
- •5.3. Верификация моделирующих компьютерных программ
- •5.4. Методы повышения валидации и доверия к модели
- •Контрольные вопросы
5.4. Методы повышения валидации и доверия к модели
Существует шесть классов методов повышения валидации и правдоподобия имитационной модели:
сбор высококачественной информации и данных о системе;
регулярное взаимодействие с менеджером;
документальная поддержка предположений и структурированный критический анализ;
валидация компонентов модели количественными методами;
валидация выходных данных всей имитационной модели;
анимация.
Рассмотрим отдельные из этих методов более подробно.
Сбор высококачественной информации и данных о системе
При разработке имитационной модели аналитик должен использовать всю доступную информацию, которая может быть получена разными методами.
Консультации со специалистами по теме. Имитационная модель не есть абстракция, разработанная аналитиком, работающим в изоляции. На самом деле разработчику нужно взаимодействовать со многими людьми, знакомыми с самой системой. Один человек или документ не смогут дать всей информации, необходимой для создания модели. Поэтому аналитик должен проявить некоторую изобретательность, чтобы собрать полную и точную информацию о системе. Нужно очень осторожно подходить к выбору специалистов, с которыми приходится консультироваться по каждой подсистеме, чтобы не получить данные, содержащие систематическую погрешность. Процесс сбора информации очень ценен сам по себе, даже если изучение системы посредством моделирования не будет проведено. Следует обратить внимание на то, что поскольку требования к системе могут изменяться в процессе ее изучения, разработчику модели может понадобиться постоянно консультироваться со специалистами по исследуемым вопросам.
Пример 5.8. Для моделирования производственной системы разработчики должны получить информацию от операторов станков, инженеров-технологов, инженеров по организации производства, от обслуживающего персонала, планировщиков, менеджеров и изучить проекты системы.
Пример 5.9. При моделировании системы связи могут понадобиться советы пользователей, проектировщиков сетей, специалистов по технологиям связи (например, коммутационной или спутниковой связи), системных администраторов, разработчиков, обслуживающего персонала и менеджеров.
Наблюдение за системой. Если система, подобная исследуемой, уже существует, то с ее помощью можно собрать данные, которые будут использоваться при моделировании. Эти данные могут быть получены по архивным записям или собраны путем анализа работы системы. Поскольку данные могут предоставлять люди, не являющиеся разработчиками имитационных моделей, очень важно соблюдать два принципа:
разработчикам моделей необходимо убедиться, что требования к данным (тип, формат, количество, указание, зачем нужны эти данные, и т. д.) точно заданы лицам, которые должны их предоставить;
разработчики моделей должны понимать процесс, в результате наблюдения за которым получены данные, а не просто рассматривать показатели как абстрактные цифры.
Существующая теория. Если, например, необходимо создать модель такой системы обслуживания, как банк, в котором интенсивность прихода клиентов остается постоянной в течение некоторого времени, то, согласно теории, отрезки времени между прихода ми клиентов в такой модели, скорее всего, будут представлены независимыми и одинаково экспоненциально распределенными случайными величинами. Иными словами, клиенты будут приходить в соответствии с процессом Пуассона.
Результаты, полученные в ходе моделирования подобных систем. Если разрабатывается имитационная модель, подобные которой создавались уже много раз (допустим, модель наземных боев), следует отыскать результаты изучения подобных систем посредством имитационного моделирования и по возможности их применить.
Опыт и интуиция разработчика. Разработчикам часто приходится использовать собственный опыт или интуицию, чтобы построить гипотезы о том, как будут действовать некоторые компоненты сложных систем, особенно, если система, подобная моделируемой, на данный момент не существует. Надо надеяться, что в дальнейшем эти гипотезы будут подтверждены.
Регулярное взаимодействие с менеджером
Очень важно, чтобы разработчик модели регулярно взаимодействовал с менеджером в ходе исследования системы посредством имитационного моделирования. Такой подход выгоден по многим причинам.
Когда начинается изучение системы путем моделирования, точного представления о решаемом вопросе еще может и не быть. Когда же по мере изучения этот вопрос становится яснее, соответствующая информация должна доводиться до сведения менеджера, который может переформулировать цели исследования. Ведь даже самая лучшая модель, созданная при неправильной постановке задачи, будет неадекватной!
Сотрудничество разработчика с менеджером поддерживает у менеджера интерес к проекту и ощущение сопричастности к нему.
Знание менеджером системы способствует созданию модели, полностью адекватной системе.
Модель будет более правдоподобной, когда менеджер понимает и поддерживает допущения, принятые в модели. Действительно, очень важно согласовать принятые в модели ключевые допущения с менеджером (и другими специалистами). Таким образом, можно заставить его поверить, что разрабатываемая модель будет подходящей, поскольку он сам помог в ее разработке.
Документальная поддержка предположений и структурированный критический анализ
В процессе разработки имитационной модели полезно записывать предположения, принятые для имитационной модели, в отчете, который можно назвать документом о допущениях (или концептуальной моделью). Его нужно составить так, чтобы с ним могли работать инженеры, менеджеры и др. В отчете должны быть представлены:
обзорный раздел, в котором сформулированы общие цели проекта, конкретные проблемы, которые будут рассматриваться при изучении системы посредством моделирования, и рабочие показатели для вычислений;
подробное описание каждой подсистемы в предварительном формате и описание взаимодействия этих систем (предварительный формат, как на этой странице, облегчает просмотр документа о допущениях и структурный разбор концептуальной модели, который будет описан далее);
какие упрощения были сделаны и почему (помните, что имитационная модель, как предполагается, является упрощением или абстракцией действительности);
краткое изложение данных, таких как выборочное среднее значение и гистограмма набора данных; действительное распределение вероятностей, которое лучше всего подходит к набору данных, или другие технические сведения (их лучше поместить в приложении к отчету);
источники важной или противоречивой информации.
При составлении отчета надо помнить о том, что он должен быть понятен менеджерам.
Следует также учитывать, что разработчику имитационной модели приходится собирать информацию от разных людей. Более того, эти люди, как правило, заняты текущей работой в своей организации, поэтому они не могут уделить должного внимания вопросам, поставленным разработчиком. В результате разработчик модели может получить неполную или неточную информацию о системе. Один из способов решения этой проблемы состоит в проведении структурною разбора концептуальной модели, описанной в документе о допущениях, в присутствии специалистов по изучаемым вопросам и менеджеров.
Используя проектор, разработчик имитационной модели пункт за пунктом разбирает концептуальную модель, но не переходит от текущего пункта к новому, пока все присутствующие не подтвердят его правильность и достаточный уровень детализации. Структурный разбор повышает как валидацию имитационной модели, так и доверие к ней.
Лучше всего проводить структурный разбор в каком-либо удаленном от рабочих мест всех участников помещении (например, в зале для встреч гостиницы), чтобы присутствующие могли полностью посвятить свое внимание совещанию. Кроме того, его нужно организовать до начала программирования, если главные проблемы раскрываются на встрече. Документ о допущениях следует разослать участникам перед совещанием, и от них должны быть получены комментарии. Однако эти действия нельзя считать заменой структурированного критического анализа, поскольку людям может не хватить времени или мотивации для тщательного самостоятельного изучения документа.
Обмен информацией, который происходит непосредственно на совещании, имеет очень большое значение. Структурированный критический анализ документа о допущениях можно назвать валидацией концептуальной модели.
Валидация компонентов модели и выходных данных всей имитационной модели количественными методами
Для проверки валидации различных компонентов всей модели аналитик имитационного моделирования должен по возможности выбирать количественные методы, например, графики и критерии согласия, которые позволяют оценить насколько, используемые в модели теоретические распределения вероятностей, идентичны выходным данным, которые можно ожидать от реальной (предлагаемой) системы.
О роли анимации в имитационном моделировании речь шла в разделе 5.3 (см. пример 5.6).
