Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Бочкарев А.А. Моделирование в среде AnyLogic. К...doc
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
1.39 Mб
Скачать

5.3. Верификация моделирующих компьютерных программ

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

Метод 1

При разработке имитационной модели компьютерную про грамму лучше писать и отлаживать по модулям или подпрограммам. На примере имитационной модели, содержащей 1 О тыс. операторов, не сложно убедиться, что не стоит писать сразу всю программу, перед тем как попытаться выполнить ее отладку. Если запустить такую большую программу непроверенной, она скорее всего не будет выполнять­ся, а определить, где в ней содержатся ошибки, будет чрезвычайно трудно. Поэто­му следует сначала написать и отладить основную про грамму, а также некоторые ключевые подпрограммы, возможно, представив остальные необходимые програм­мы как «фиктивные» или «заглушки~. Затем нужно добавлять и последовательно отлаживать дополнительные подпрограммы или уровни детализации, до тех пор пока модель не станет удовлетворительно отображать исследуемую систему. Все­гда лучше начинать со «среднего уровня детализации» модели (который затем бу­дет постепенно усложняться до нужного уровня), нежели сразу приступить к раз­работке сложной модели. Иначе модель может получиться более сложной, чем необходимо, и чрезмерно дорогой при выполнении.

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

Метод 2

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

Метод 3

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

Пример 5.5. Можно утверждать, что для многих систем массового обслуживания с s па­раллельными устройствами обслуживания средняя занятость устройств при продолжи­тельном периоде работы ρ (коэффициент использования системы массового обслуживания) будет ρ = λ/(), (где – скорость обслуживания в системе, когда заняты все устройства обслуживания). Таким об­разом, если средняя занятость, полученная в результате прогона имитационной модели, близка к коэффициенту использования ρ – система работает правильно.

Метод 4

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

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

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

Метод 5

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

Метод 6

В некоторых типах имитационных моделей бывает полезно просмотреть анима­цию выходных данных моделирования.

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

Метод 7

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

Пример 5.7. Определение параметров гамма-распределения и распределения Вейбул­ла отличается в различных пакетах имитационного моделирования и книгах. Следова­тельно, в этом случае данный метод будет очень полезен.

Метод 8

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