Введение В последние годы имитационное моделирование стало примерно тем же, что честность у бизнесменов: все говорят, что это у них есть, но никто не знает, что это такое. Иногда разработчики называют созданные ими методы «симуляцией», возможно, вкладывая в этот термин нечто большее, чем просто перевод с английского названия одного из направлений моделирования - моделирования имитационного. Имитационное моделирование есть разработка программной системы, отражающей поведение и структуру моделируемого объекта. Вычислительный эксперимент с моделью состоит в выполнении на компьютере созданной программы с разными значениями параметров (исходных данных) и анализе его результатов. Согласно наиболее популярной классификации, обширная область имитационного моделирования в настоящее время делится на четыре основных направления: моделирование динамических систем, системная динамика, дискретно-событийное моделирование, агентное моделирование. По нашему мнению, в строгом смысле к имитационному моделированию относятся в основном два последних направления. Не претендуя на истину в последней инстанции и не оспаривая существующее деление, в данной статье к имитационному моделированию мы будем относить те продукты, которые создаются в этих двух парадигмах. Здесь же уместно упомянуть еще одну трактовку понятия «имитационное моделирование», возникшую еще в середине XX в. В ходе исследования сложных систем, подверженных случайным возмущениям, были предложены вероятностные имитационные модели, в которых влияние случайных факторов учитывалось с помощью задания статистических характеристик случайных процессов (законы распределения вероятностей). Результаты воспроизведения на такой модели изучаемого явления являются случайными реализациями стохастического процесса, и для нахождения объективных и устойчивых характеристик процесса требуется его многократное воспроизведение с последующей статистической обработкой полученных данных. Именно поэтому исследование путем имитационного моделирования такого типа принято называть статистическим моделированием (методом статистических испытаний). Именно при пропуске слов «вероятностное» или «статистическое» с понятием «имитационное моделирование» возникает путаница у специалистов, воспитанных в парадигме прикладной математики ХХ столетия. Имитационное моделирование в современном понимании является «симуляцией» элементарных объектов (агентов), составляющих моделируемую систему, и их возможного взаимодействия. Ориентация на эти агенты или объекты объясняет альтернативное название этого подхода - объектно-ориентированное или агентное моделирование. Усилившийся интерес к имитационному моделированию у специалистов, работающих в области дискретной математики и собственно программирования, привел к тому, что сфера их поисков объектов для приложения своих знаний и умений начала быстро расширяться. Этому способствовало и то, что специалисты конкретных предметных областей утратили способность самостоятельной реализации подобных проектов вследствие резкого повышения «барьера вхождения» в это занятие, выражающегося в сумме необходимых знаний. Пока технология программирования основывалась на языках сложности «Алгола» или «Фортрана», любой эксперт в предметной области мог создавать программный продукт, проигрывающий профессионалам лишь в стиле написания кода и дизайне вывода данных. Современные технологии программирования неизбежно подводят к точке выбора (бифуркации) - либо стать специалистом по созданию программного продукта, либо стать специалистом некоторой предметной области. Исключения возможны, но редки. В свою очередь, это привело к новой проблеме: к специалисту предметной области могли теперь прийти два специалиста по моделированию и предложить две (или более) модели, которые дают разные результаты. Причем сами модели могли создаваться при участии самого специалиста предметной области, который терпеливо (или не очень терпеливо) рассказывал коллегам, как именно все устроено в его домене знаний. Выбор рабочей модели теперь мог зависеть от чего угодно (физиогномистических характеристик, развитости интерфейса, уровня раскрутки бренда, настроения заказчика и пр.), но не от реальной близости модели к объекту моделирования, поскольку возможности установить это не имелось. Как следствие, после первых восторгов и безграничной веры в силу моделирования пришло вполне ожидаемое отрезвление от эйфории, связанной с любыми достижениями технического прогресса. Если говорить коротко, встал вопрос: зачем это надо? Именно ответу на заданный вопрос - какова роль имитационного моделирования в технологическом проектировании морских портов и терминалов, в чем состоит новизна этого инструмента и где лежат границы его применимости, каковы преимущества и возможные опасности его использования, - посвящена данная статья. Содержательная характеристика процедуры технологического проектирования Общей целью технологического проектирования любого терминала является получение оптимального решения его как единого комплекса, удовлетворяющего требованиям безопасного приема, быстрейшей загрузки-разгрузки и комплексного обслуживания современных и перспективных транспортных средств, отвечающего условиям прогрессивных способов перевозок на морском и смежных видах транспорта. При этом должны быть обеспечены заданная пропускная способность, возможность развития на отдаленную перспективу, экологическая безопасность и экономическая целесообразность принятых решений [1]. Основными элементами технологической структуры проектируемого порта являются перегрузочные комплексы, представляющие собой совокупность технических средств (сооружений, зданий, оборудования, обустройств, транспортных и инженерных коммуникаций), необходимых для приема, загрузки-разгрузки и комплексного обслуживания транспортных средств, а также передачи грузов между морским, железнодорожным, речным, автомобильным и другими смежными видами транспорта [2]. По своей сути технологическое проектирование является многоэтапной процедурой преобразования информации, сопровождающейся монотонно возрастающей детализацией представлений [3]. Начальным этапом являются общие идеи и представления о проектируемом объекте, в лучшем случае выраженные в нескольких ключевых количественных показателях. Конкретное содержание и состав этих исходных данных в первую очередь определяется общей задачей проектирования, которая может быть прямой или обратной [4]. В прямой задаче проектирования, исходя из желаемых финансово-экономических и эксплуатационно-технических характеристик, требуется получить представление о требуемой для этого структуре объекта и поддерживающей его функционирование инфраструктуре, детальное настолько, насколько это требуется для реализации проекта. Обратную задачу проектирования составляет оценка финансово-экономических и эксплуатационных характеристик, которые можно ожидать от имеющейся структуры и инфраструктуры. Очевидно, что в реальном проектировании прямая и обратная задачи чередуются во время выполнения практически всех этапов. Поиск оптимального решения, или задача синтеза, в подавляющем большинстве случаев сводится к многократному повторению задачи анализа генерируемых проектных вариантов [5]. По своей форме технологическое проектирование на современном этапе представляет собой процедуру потоковых вычислений. Потоковые вычислительные системы основаны на идеологии управления, при которой операции выполняются тогда, когда становятся доступными их операнды, т. е. необходимые для получения результата данные. В потоковых архитектурах для описания вычислений используется ориентированный граф, иногда называемый графом потоков данных (data flow graph). Этот граф состоит из вершин (узлов), отображающих операции, и ребер, показывающих потоки данных между теми вершинами графа, которые они соединяют [6]. В свою очередь, каждая операция преобразования данных, выполняемая на различных стадиях проектирования, в большинстве случаев является вычислительным аналогом аналитических зависимостей, или формул. Иными словами, каждый расчетный параметр на этапе проектирования , или , получается как результат вычисления значения некоторой обобщенной многомерной функции, аргументами которой являются параметры, полученные на этом и предшествующих этапах. Наряду с этим аргументами расчетных функций выступают и принимаемые на данном этапе во внимание ограничения и обязательные условия . В этой нотации процедура получения значения расчетного параметра может быть записана как Каждый из входящих в эту формулу параметров , в свою очередь, является результатом вычисления функции предшествующего уровня, т. е. Иными словами, процедура получения расчетного параметра на данном уровне является многомерной суперпозицией подобных же функций предшествующего уровня: Эта суперпозиция может быть прослежена от начальных данных до конечных проектных параметров. В соответствии с регламентирующими документами, все расчеты проводятся по предписанным формулам, а результаты вычислений на всех этапах проектирования представляются детерминированными значениями. Возможные разбросы параметров, промежуточных и конечных, предписывается учитывать введением коэффициентов неравномерности, в технике называемых «коэффициентами нашего незнания». При выполнении проектных процедур подобный подход позволяет в массовом применении избежать грубых ошибок и гарантировать получение если не оптимального, то допустимого результата. В то же время сама нечеткость и изменчивость начальных представлений, аппроксимационный характер формульных зависимостей, неоднозначность влияния ограничений и, главное, случайный характер всех основных величин - все это заставляет относиться к получаемым результатам как к некоторым оценочным средним значениям, вокруг которых в лучшем случае будут колебаться реальные показатели. Постоянное рыночное давление на морские порты и терминалы, высокая капиталоемкость создания этих важнейших инфраструктурных объектов, нулевая ликвидность проектов с некорректными характеристиками заставляют искать способы оценки степени разбросов основных показателей, на основе чего могут оцениваться предпринимательские риски проектов и приниматься соответствующие решения. Кроме того, в последнее время заказчики все больше требуют пояснения хода расчетов и доказательства адекватности результатов реальности. Одним из первых вариантов ответа на эти вопросы было, как называли во второй половине ХХ в., имитационное моделирование, или метод статистических испытаний, или метод Монте-Карло [7]. В настоящее время имитационным моделированием называют несколько иную парадигму, которая составляет предмет данной публикации и обсуждается в ее завершающей части. Метод статистических испытаний, или метод Монте-Карло Предположим, что нашей целью является расчет некоторого технологического показателя С точки зрения математики, это есть не более чем вычисление значения по правилам, предписывающим определенные действия с аргументами функции т. е. Подобное вычисление для детерминированных значений не представляет каких-либо сложностей. В том случае, если все (или некоторые) аргументы функции являются случайными величинами, то также является величиной случайной. Но даже простейшие арифметические действия со случайными величинами мало изучены и трудоемки. Единственным (и практичным) способом решения этой проблемы является переход к средним (т. е. детерминированным) значениям всех случайных величин и вычисление функций в обычном порядке в надежде на то, что заложенные в формулах основные соотношения сохранятся. К сожалению, это является вопросом веры и везения. Если две случайные величины и являются независимыми, то математическое ожидание их суммы есть , а произведения - . В отношении деления такой теоремы не существует, т. е. . Следовательно, в достаточно сложной зависимости средние значения уже могут привести к некорректному результату. Далее, разброс значений функций достигается при различных сочетаниях значений входящих в них случайных переменных. В простейшем случае минимальные значения функции будут достигаться при минимальных значениях переменных, входящих в числители, и максимальных, входящих в знаменатели соответствующих формул, а максимальные значения - при обратных соотношениях. Очевидно, что самые худшие и самые лучшие сочетания будут редки, но насколько редки? Для ответа на этот вопрос метод Монте-Карло предлагает проводить достаточно длинную серию статистических испытаний. Каждое отдельное статистическое испытание состоит в том, что для каждой из входящих в формулу случайных переменных, согласно закону распределения каждой из них, генерируется ее случайное значение. Обычно это выполняется по методу обратной функции [8]. Полученный в результате генерации случайных значений набор всех переменных подставляется в расчетную формулу, вычисление которой позволяет получить одно значение оцениваемой случайной величины. Многократное повторение статистических испытаний с разными наборами случайных значений будет приводить к тому, что редкие сочетания входных переменных будут при многократном вычислении наблюдаться реже. Получив достаточно длинный статистический ряд таких вычислений, называемых «испытаниями», можно провести его статистическую обработку для оценки частоты повторяемости содержащихся в нем значений. Результатом обработки этого ряда будет гистограмма, аппроксимирующая плотность вероятности искомой величины. На рис. 1 приведен пример ряда вычислений некоторого условного параметра , полученного в ходе статистических испытаний (значение дано в некоторых относительных единицах). Рис. 1. Пример статистических испытаний: вычисление значений расчетного параметра На рис. 2 показан результат обработки данных статистических испытаний - гистограмма частоты наблюдений значений, представленных на рис. 1. Частота - доля наблюдений данного значения в общем количестве, т. е. величина безразмерная. Рис. 2. Гистограмма распределения значения расчетного параметра Таким образом, применение метода статистических испытаний позволяет получить достаточно точную оценку плотности распределения случайной величины - параметра , - которая является исчерпывающей ее характеристикой. Метод статистических испытаний доказал свою эффективность в самых разных областях применения. Во многих случаях он являлся единственным способом вынесения важных суждений о характере расчетных величин. К сожалению, этот метод требует знания (или обоснованного предположения) качественных и количественных характеристик законов распределения всех входящих в формулу величин. Кроме того, явная нотация формулы в виде применима не для всех расчетных параметров и обычно возможна лишь в пределах одного этапа проектирования. Как следствие, сферой применения метода Монте-Карло остаются исследования ограниченного числа наиболее важных параметров, да и то чаще всего он заменяется на упрощенную процедуру «анализа чувствительности», под которым понимают расчет для некоторых вариаций небольшого числа ключевых параметров. Имитационное моделирование В теории и практике современных исследований все большее признание находит метод имитационного моделирования - новая ветвь дискретной математики, возникшая как результат развития методического, программного и аппаратного обеспечения вычислительной техники. Если аналитические модели, включая теорию массового обслуживания и методы статистических испытаний, обычно сравнивают с «моделированием леса» (имея в виду, что в этом подходе отдельные объекты учитываются лишь их обобщенными свойствами), то имитационное моделирование называют «моделированием деревьев», при котором отдельные объекты («деревья») своим взаимодействием сами определяют свойства «леса». Развитие технологии программирования, появление мощных многопроцессорных вычислительных систем, достижения дискретной математики - все это позволило перейти к непосредственному моделированию основных элементов, составляющих изучаемый объект, и их взаимодействия. Наделив элементы модели необходимыми свойствами и специфицировав на формальном языке процедуры их возможного взаимодействия, их опускают в «бульон» специализированной программной среды, которая позволяет этим элементам самостоятельно взаимодействовать друг с другом. При реализации модели возможно сформулировать требования к регистрации тех или иных групповых или индивидуальных свойств элементов, составляющих модель. В частности, такими регистрируемыми характеристиками может служить расчетный параметр моделируемой системы . Регистрируемые в дискретные моменты времени значения этого параметра, т. е. его поведение, по форме ничем не будут отличаться от результатов, полученных методами статистических испытаний (см. рис. 1). Методологическое же различие будет состоять в том, что это поведение получено как результат внутреннего взаимодействия элементов, составляющих моделируемую систему. Оно не является результатом искусственного «раздробления» общих зависимостей на случайные величины - оно отражает особенности функциональных отношений именно этой системы, ее структуры и параметров взаимодействия. На рис. 3 показан результат моделирования морского порта в части измерения одного из исследуемых параметров - длины очереди судов на рейде в ожидании освобождения причалов [9]. График показывает число судов, находящихся в очереди, в те или иные сутки модельного времени (от 0 до 1000 сут.). Рис. 3. Пример регистрации расчетного параметра - длины очереди судов Этот график является аналогом данных об изменении значений случайной величины, полученных методом статистических испытаний и в общем виде показанных на рис. 1. Частота значений этого расчетного параметра приведена на рис. 4. Рис. 4. Распределение длины очереди, полученное моделированием По сути дела, имитационное моделирование есть непрерывное проведение статистического эксперимента, в котором случайные вариации определяются не предписанными событиям законами поведения, а самим поведением, которое формируется под действием вложенной в модель внутренней структуры причинно-следственных связей. Сама обработка и интерпретация полученных данных практически не отличается от метода Монте-Карло. Имитационное моделирование позволило снять многие методологические ограничения, свойственные теории массового обслуживания и методам статистических испытаний. В то же время в самом имитационном моделировании постепенно начала проявляться новая методологическая проблема, свойственная только ему: проблема адекватности модели изучаемому объекту. Строго формальный подход, свойственный теории массового обслуживания, гарантирует доказательство корректности получаемых с его помощью результатов. Объектно-ориентированный подход, лежащий в основе моделирования, переводит качество полученных результатов в плоскость искусства и квалификации разработчика. В то же время самая сложная модель, корректность которой не доказана, не имеет никакой прагматической ценности. Одним из способов доказательства адекватности имитационной модели является сравнение получаемых с ее помощью результатов с заведомо корректными результатами. Таковыми в нашем случае являются результаты, получаемые аналитическими методами или методами Монте-Карло. При этом для корректности самого сравнения необходимо имитационную модель привести в соответствие с аналитическим образцом, т. е. заставить ее работать в тех же условиях и ограничениях [10]. Иными словами, методология установления адекватности имитационной модели выстраивается как регулярная процедура сравнения результатов с моделями возрастающей сложности - аналитическими и статистическими, что достигается приведением моделей в условия, допускающие это сравнение. В некотором смысле это совпадает и с основными этапами, установленными технологией создания имитационных моделей: валидацией модели (установлением ее общей работоспособности и правдоподобности), калибровок (заданием значений параметров модели, отвечающих конкретному моделируемому объекту), верификации модели (доказательством соответствия ее поведения некоторому эталонному объекту). Несмотря на простоту и очевидность такого описания, реализация этой процедуры может оказаться не менее сложной, чем само создание имитационной модели. Но здесь еще раз следует подчеркнуть, что без этого имитационное моделирование превращается в дорогостоящую анимацию, сферой применимости которой становятся переговоры с заказчиками. При всей важности этой функции для проекта существуют иные программные средства и иные специалисты, которые реализуют ее гораздо эффективнее. Выводы 1. Проведен анализ содержательной части технологического проектирования портов и терминалов, на основании чего указана недостаточность традиционных расчетно-аналитических методов в современных условиях. 2. Обсуждена роль и место математического моделирования в технологическом проектировании, история развития и современное состояние этой дисциплины дискретной математики. 3. Выявлены новые возможности имитационного моделирования в современном понимании и новые проблемы, связанные с установлением адекватности модели исследуемому объекту. 4. Указаны принципы построения общих процедур установления адекватности модели для задач технологического проектирования морских портов.