Построение имитационной модел
Шаг 2. Разработка проекта эксперимента. Операционист сможет уменьшить вероятность той или иной ошибки и, таким образом, потери времени, если он подробно разработает сопровождающие эксперимент процедуры до того, как модель будет "приведена в действие". Это означает, что операционисту необходимо тщательно продумать, какие функциональные характеристики имитируемой системы планируется измерять. Кроме того, следует определить, с помощью какого метода математической статистики будут учитываться флуктуации экспериментальных данных, полученных в результате этих измерений.
Шаг 3. Разработка программного обеспечения. Весь имитационный эксперимент проводится на быстродействующей ЭВМ. Другими словами, все стадии эволюционного развития модели, так же как и генерирование случайных событий, протекают в ЭВМ. Если имитируемая система обладает очень простой структурой, то может оказаться, что при разработке соответствующего "вычислительного варианта" модели удобнее всего использовать один из стандартных языков программирования типа Фортран, PL/I или Алгол. Однако представляется более вероятным, что предпочтение будет отдано одному из языков моделирования, такому, как Симскрипт или GPSS, трансляторы с которых имеются для многих больших ЭВМ. В процессе практического применения метода имитационного моделирования операционист убедится, что перечисленные выше этапы не являются полностью независимыми и не выполняются в строго установленной последовательности. Так, например, если специалист по исследованию операций уже владеет языком моделирования, скажем GPSS, то он, возможно, захочет "сформулировать" имитационную модель сразу на этом языке.
Языки имитационного моделирования
Операционисту, не являющемуся одновременно специалистом в области программирования для ЭВМ, транслировать выбранную им имитационную модель в соответствующую машинную программу никогда не придется. Тем не менее знать содержание основных этапов отображения модели на машинные программы представляется совершенно необходимым.
Для проигрывания простых типовых моделей можно использовать так называемые специальные стандартные программы, которые требуют от операциониста лишь задания определенного количества входной информации. Наиболее показательными примерами таких программ являются моделирующие программы управления запасами. Существует несколько специальных стандартных программ, проверяющих стратегию управления запасами с точки зрения их эффективности. Чтобы использовать такого рода программы, необходимо задать конкретные предписания (которые формулируются, например,
следующим образом: "при снижении уровня запасов до 4 единиц заказать 10 дополнительных единиц") или располагать формулой для определения этих предписаний при известном уровне спроса. При этом в качестве входной информации необходимо представить также либо ретроспективные данные относительно спроса, либо распределение вероятностей для уровней спроса. При наличии всей указанной выше информации машинная программа обеспечивает имитирование функциональной системы для любого заданного операционистом числа интервалов времени, а также вычисляет такие статистические характеристики системы, как средний уровень запасов, количество оформляемых заказов и т.д.
Однако гораздо чаще модель требует специального программного обеспечения. Если модель относится к числу лишь умеренно сложных, применяется нечасто и программируется специалистами, не имеющими большого опыта работы с имитационными моделями, то, по-видимому, наиболее легкий способ решения задачи - использовать такие языки, как Фортран, PL/I или Алгол.
Эти языки хорошо известны всем программистам, занимающимся программированием, связанным с решением научных проблем; при этом программисту для выполнения трансляции на машинный язык требуется знать лишь подробное описание исследуемой модели.
Однако языки типа Фортран, PL/I и Алгол обладают существенным недостатком. Программист, использующий один из таких языков, вынужден заново составлять подпрограммы для ряда вычислительных процедур, которые используются почти во всех имитационных процессах. Другими словами, программисту, как говорится, вновь приходится изобретать велосипед. Так, например, во многих случаях имитационная модель предполагает генерирование случайных переменных, и, следовательно, для каждой такой переменной требуется своя подпрограмма. Кроме того, поскольку представляется желательным накапливать статистические данные по ряду характеристик операционной системы, необходимо составить подпрограммы, реализующие соответствующие вычислительные процедуры. Наконец, значительные трудозатраты возникают в связи с разработкой компактного способа представления выходных имитационных данных.