Читать онлайн Имитационное моделирование бесплатно
Введение
Благодаря интенсивному развитию информатики и компьютерных технологий стало намного проще решать сложные задачи, требующие больших временных и финансовых затрат. Упростить их решение возможно с использованием моделирования.
Одним из наиболее распространенных и удобных способов моделирования сложных систем является имитационное компьютерное моделирование объектов и процессов реального мира.
Невозможно сразу моделировать какой-либо процесс, для этого необходимо специальное обучение способам, приемам и технологиям компьютерного имитационного моделирования (ОПК-3).
Специалист, приступая к решению задачи, должен знать основы динамических процессов, подходы и методы решения сложных процессов и систем, в том числе аналитических и имитационных, а также знать конкретные информационные системы моделирования и используемые в них языки программирования. Среди множества сред аналитического моделирования основными являются Maple, MathCAD, MATLAB + Simulink и др. (ОПК-3).
При обучении моделированию сложных систем могут быть использованы различные среды и методологии разработки аналитических и имитационных моделей сложных систем: MvStudium, MATLAB, Arena, GPSS, Extend, iThinkAnalyst, ProcessModel и др. (ОПК-3). Особое место среди сред разработки компьютерных моделей сложных систем принадлежит многоподходной среде моделирования имитационных моделей – AnyLogic. Разные средства спецификации и анализа результатов, имеющиеся в AnyLogic, позволяют строить модели (динамические, дискретно-событийные, агентные), имитирующие практически любой реальный процесс, а также конструировать и многие другие модели, выполнять анализ моделей на компьютере без проведения реальных экспериментов и самостоятельных сложных вычислений (ПК-8, ПК-10). Но для возможности оперировать этой программной средой и получать при моделировании верные результаты пользователь AnyLogic должен овладеть технологией работы в среде, понять ее функциональные особенности, в этих целях мы представляем учебное пособие по разработке компьютерных моделей сложных систем в среде AnyLogic [2].
Моделирование – метод решения задач, при использовании которого исследуемая система заменяется более простым объектом, описывающим реальную систему и называемым моделью.
Моделирование применяется в случаях, когда проведение экспериментов над реальной системой невозможно или нецелесообразно, например из-за высокой стоимости или длительности проведения эксперимента в реальном масштабе времени.
Руководствуясь жизненным опытом и научными знаниями, человек строит модели – от бумажных корабликов до картины мира. Чем они богаче и чем точнее мы можем ими оперировать, тем развитей наше сознание, наша «самая важная модель» соответствует реальности и находит способы ее изменения [1].
Моделирование – самое эффективное средство поддержки принятия решений, а по словам Ричарда Докинза – «один из самых интересных способов предсказывать будущее» [4].
Теоретические предпосылки этого утверждения формировались на протяжении веков. В основу математического моделирования легли математический анализ, теория вероятностей, численные методы, теория подобия. В ХХ в. появилась база практического приложения моделей: математическое программирование; теория массового обслуживания; теория алгоритмов; теория систем; кибернетика (ПК-8).
Другая, «фактологическая», основа моделирования – стремительно растущий потенциал знаний фундаментальных и прикладных наук.
В сочетании с современным технологическим прорывом эти основы создают необычайные возможности построения моделей, ограниченные лишь смелостью исследователя. Перечислим только злободневные глобальные темы, которые проходят непрерывную проверку моделированием: экономика, политика, экология.
Моделирование уверенно помогает понять, как устроен мир. Можно надеяться, что с его помощью мы когда-нибудь узнаем, как работает и наша «самая важная модель» [1].
Различают физическое и математическое моделирование. Примером физической модели является уменьшенная копия самолета, продуваемая в потоке воздуха. При использовании математического моделирования поведение системы описывается с помощью формул. Особым видом математических моделей являются имитационные модели (ПК-8).
Имитационная модель – это компьютерная программа, которая описывает структуру и воспроизводит поведение реальной системы во времени. Имитационная модель позволяет получать подробную статистику о различных аспектах функционирования системы в зависимости от входных данных (ОПК-3).
Имитационное моделирование – разработка компьютерных моделей и постановка экспериментов на них. Целью моделирования в конечном счете является принятие обоснованных, целесообразных управленческих решений; подготовка студентов к решению задач, связанных с процессами анализа, прогнозирования, моделирования в рамках профессионально ориентированных информационных систем сферы инноватики.
Задачи, решаемые в учебном пособии «Имитационное моделирование»:
• сформировать целостное представление о системе экономико-математических моделей и месте имитационных моделей, а также изучить процессы массового обслуживания;
• научить выполнять имитацию инновационного объекта в трех измерениях: материальном, денежном и информационном;
• произвести экономическое прогнозирование и предвидение развития экономических процессов;
• сформировать у студентов навыки, необходимые для выработки управленческих решений.
Компьютерное моделирование становится сегодня обязательным этапом в принятии ответственных решений во всех областях деятельности человека в связи с усложнением систем, в которых человек должен действовать и которыми он должен управлять. Знание принципов и возможностей имитационного моделирования, умение создавать и применять модели являются необходимыми требованиями к инженеру, менеджеру, бизнес-аналитику [4].
Глава 1
Методологические основы имитационного моделирования
1.1. Моделирование как научный метод
Моделирование является одним из способов решения практических задач. Зачастую решение проблемы нельзя найти путем проведения натурных экспериментов: строить новые объекты, разрушать или вносить изменения в уже имеющуюся инфраструктуру может быть слишком дорого, опасно или просто невозможно. В таких случаях целесообразно построить модель реальной системы, т. е. описать ее на языке моделирования. Данный процесс подразумевает переход на определенный уровень абстракции, опуская несущественные детали, с учетом только того, что считаем важным. Система в реальном мире всегда сложнее своей модели (рис. 1.1) [6].
Рис. 1.1. Моделирование реальных систем
Все этапы разработки модели – проекция реального мира в мир моделей, выбор уровня абстракции и выбор языка моделирования менее стандартизированы, чем процесс использования моделей для решения задач. Моделирование до сих пор больше искусство, чем наука.
После создания модели – а иногда и в процессе разработки – мы начинаем исследовать структуру и понимать поведение системы, проверять, как она ведет себя при определенных условиях, сравнивать различные сценарии и оптимизировать ее. Когда оптимальное решение будет найдено, мы сможем применить его в реальном мире.
В сущности, моделирование является поиском решения задачи в защищенном от риска мире моделей, в котором мы можем ошибаться, отменять операции, возвращаться в прошлое и начинать все сначала [6].
Моделирование дает предположительную информацию о неком фрагменте реальности. После определенных проверок она может оказаться истинной или ложной и потребовать построения новых моделей [1].
В науке, наряду с наблюдением, измерением, экспериментом и сравнением, эта процедура выступает как один из общенаучных методов. Однако моделирование можно рассматривать как особый интегрирующий метод. Его эффективность и универсализм возрастают по мере развития информационных технологий. В силу разных причин объект может быть недоступен (слишком мал или велик, далеко расположен, дорог, прекратил существование, например в результате аварии). Исключительная польза моделирования заключается в том, что можно экспериментировать не с самой системой, а с ее аналогом – моделью.
Моделирование – процесс отражения свойств одного объекта (оригинала) в другом объекте (модели). Это могут быть объекты «как есть» в целом и (или) их отдельные сущности – процессы и явления. Явления – например, поведение животного, состояния погоды – рассматриваются как сложные процессы.
В основу моделирования заложена процедура формализации – перевод свойств объекта на язык понятий предметной области, алгоритмов и математики.
Подобие модели объекту. Объект и модель находятся в отношении сходства, т. е. модель по каким-то признакам должна быть подобна изучаемому объекту. Это явление называют изоморфизмом (от греч. isos – равный и morphe – форма). Различают три вида подобия.
Первый вид подобия – подобное масштабирование. Примеры такого подобия: модели автомобилей, самолетов, кораблей, сооружений и т. д.
Второй вид подобия – косвенное подобие (математическая аналогия). Удачный математический аналог из других областей знаний может сильно упростить построение модели и ее анализ. Так, очень многие физические процессы могут быть описаны уравнениями, общий вид которых q = –Θ grad x (рис. 1.2).
Рис. 1.2. Тройная аналогия процессов переноса
Аналогичны законы Кулона и всемирного тяготения. Примером также может служить подобие электрических и механических явлений:
• колебание физического маятника:
• пружинного маятника:
• колебательного контура:
Рис. 1.3. Когнитивная модель потребления промышленной продукции (энергии, металлов и т. п.): «+» – положительные связи (влияния); «–» – отрицательные связи (влияния)
Третий вид подобия – условное подобие, или подобие по соглашению. Примерами являются когнитивные модели (рис. 1.3), географические карты, масштабированные чертежи сооружений, зданий, структурные схемы (модели системного анализа). При этом внешне сходство объекта и модели может не соблюдаться.
Таким образом, объект моделирования и модель могут быть любой природы – материальными или абстрактными. Например, макет самолета – это материальная модель. Cхема производства – абстрактная модель. Уравнения физики – это описание абстракций разных явлений материального мира. Модели могут быть и абстракциями других моделей. Наследование (создание одних классов на базе других) в объектно-ориентированном программировании – наиболее характерный пример таких построений [1].
Адекватность моделей. Вид и свойства будущей модели определяются целями исследователя, использующего этот инструмент. В модели отражаются свойства объекта, соответствующие этим целям, которые определяют и уровни детализации модели. В первую очередь должны быть определены существенные свойства оригинала, характеризующие его как некую проблему, которую нужно решить с помощью модели [1].
При этом стоит помнить, что знать все свойства предмета вашего исследования нельзя. К тому же не будем забывать, метод – это инструмент, а универсальных инструментов не бывает. Означает ли это, что моделирование – ненадежный помощник? Нет. Во-первых, существует принцип множественности моделей. В соответствии с ним можно, а иногда – необходимо построить несколько моделей, позволяющих рассмотреть объект как проблему с различных позиций. К соответствующим решениям (моделям) можно идти, используя разные подходы. Например, создание модели поведения человека будет зависеть от разработки разных целей [1]:
1) добиться антропоморфной кинематики компьютерной модели тела человека;
2) получить модель характерных психических реакций человека;
3) смоделировать реакции различных социальных групп людей.
Во-вторых, существуют специальные процедуры проверки того, является ли модель точным представлением реальной системы, т. е. адекватна ли модель системе.
При верификации, т. е. проверке достоверности модели, определяется, правильно ли концептуальная модель (модельные допущения) преобразована в компьютерную программу [1].
Валидация – это процесс, позволяющий установить, является ли модель точным представлением системы для конкретных целей исследования. Определяющим моментом в этих процедурах является положение: «модель и ее результаты достоверны, если руководители проекта признают их правильными» [16]. В итоге, если модель «адекватна», ее можно использовать для принятия решений относительно системы, которую она представляет, как если бы они принимались на основании экспериментов с реальной системой.
В-третьих, итоговый результат (т. е. «хорошая» или «плохая» модель получится) зависит от личности разработчика. Моделирование как метод научного познания предполагает творческий подход к объекту и целям исследования.
В этом виде научного производства не обойтись без развитого воображения, умения анализировать и делать обобщения. Хорошие модели – это «мини-теории», и их создание требует нестандартного мышления [1].
1.2. Исходные понятия и определения
Теория основ математического и компьютерного моделирования предполагает содержательное и формальное определение категорий, дефиниций и понятий с целью построения математических моделей сложных систем [2].
Основными методологическими категориями теоретических основ моделирования являются понятия «объект», «класс», «отношение (связь)», «система», «элемент», «структура».
Определение понятия «объект» имеет различное толкование в зависимости от области рассмотрения. Если мы изучаем область имитационного моделирования, то в стратегии объектно-ориентированного подхода объект является первым важным понятием. Объект – это некоторая сущность в виртуальном пространстве, обладающая определенным состоянием и поведением, имеющая заданные значения свойств (атрибутов) и операций над ними.
Следующим важным понятием объектно-ориентированного подхода является «класс». Родственные по определенным характеристикам, поведению объекты объединяются в классы. В зависимости от характеристик одни и те же объекты могут быть в различных классах.
В одном из разделов современной математики «теории категорий» объект используется как термин для обозначения элементов произвольной категории, играющих роль множеств, групп, топологических пространств и т. п. Здесь также вводится понятие класса объектов и проводится изучение свойств отношений между математическими объектами, не зависящих от внутренней структуры объектов.
Понятие «отношение» определяет взаимное положение объектов, связи между объектами в виде иерархических, ассоциативных, алгоритмических, табличных и других структур.
Понятие «система» является основополагающим в теории математического моделирования. Существует несколько десятков различных определений понятия «система», используемых в зависимости от контекста, области знаний и целей исследования. Изучением систем занимаются такие научные дисциплины, как системология, кибернетика, системный анализ, теория систем, системная динамика и др. [2].
Система – это 1) целое, созданное из частей и элементов целенаправленной деятельности и обладающее новыми свойствами, отсутствующими у элементов и частей, его образующих; 2) объективная часть мироздания, включающая схожие и совместимые элементы, образующие особое целое, которое взаимодействует с внешней средой; 3) объективное единство закономерно связанных друг с другом предметов, явлений, сведений, а также знаний о природе, обществе и т. п. Допустимы и многие другие определения. Общим в них является то, что система есть некоторое правильное сочетание наиболее важных, существенных свойств изучаемого объекта. Каждый объект, чтобы его можно было считать системой, должен обладать четырьмя основными свойствами или признаками (целостностью и делимостью, наличием устойчивых связей, организацией и эмерджентностью).
Элемент – это простейшая неделимая часть системы, а ее свойства определяются конкретной задачей. Элемент всегда связан с самой системой. Элемент сложной системы может быть, в свою очередь, сложной системой в другой задаче.
Подсистема – компонент системы – объединение элементов, но по масштабу меньше, чем система в целом.
Система может включать большой перечень элементов, и ее целесообразно разделить на ряд подсистем [2].
Признаками системы являются множество составляющих ее элементов, единство главной цели для всех элементов, наличие связей между ними, целостность и единство элементов, наличие структуры и иерархичности, относительная самостоятельность и наличие управления этими элементами. Термин «организация» в одном из своих лексических значений означает также систему, но не любую, а в определенной мере упорядоченную, организованную.
Понятие «подсистема» выработано для анализа сложноорганизованных, саморазвивающихся систем, когда между элементами и системой имеются «промежуточные» комплексы, более сложные, чем элементы, но менее сложные, чем сама система. Они объединяют в себе разные части (элементы) системы, в своей совокупности способные к выполнению единой (частной) программы системы. Будучи элементом системы, подсистема, в свою очередь, оказывается системой по отношению к элементам, ее составляющим. Аналогично обстоит дело с отношениями между понятиями «система» и «элемент»: они переходят друг в друга. Иначе говоря, система и элемент относительны. С этой точки зрения вся материя представляется как бесконечная система систем. «Системами» могут быть системы отношений, детерминаций и т. п. [2].
Наряду с представлением об элементах в понятие о любой системе входит и представление о ее структуре.
Структура – это совокупность устойчивых отношений и связей между элементами. Сюда включается общая организация элементов, их пространственное расположение, связи между этапами развития и т. п.
По своей значимости для системы связи элементов (даже устойчивые) неодинаковы: одни малосущественны, другие существенны, закономерны. Структура прежде всего – это закономерные связи элементов. Среди закономерных наиболее значимы интегрирующие связи (или интегрирующие структуры). Они обусловливают интегрированность сторон объекта. В системе производственных отношений, например, имеются связи трех родов: относящиеся к формам собственности, к обмену деятельностью и к распределению. Все они существенны и закономерны. Но интегрирующую роль в этих отношениях играют отношения собственности (иначе – формы собственности). Интегрирующая структура является ведущей основой системы [2].
Существует ряд подходов к выделению систем по сложности и масштабу. Например, для систем управления удобно пользоваться классификацией по числу (количеству) элементов:
• малые (10–103 элементов);
• сложные (104–107 элементов);
• ультрасложные (108–1030 элементов);
• суперсистемы (1030–10200 элементов).
Большая система – это всегда совокупность материальных и энергетических ресурсов, средств получения, передачи и обработки информации, людей, которые принимают решение на разных уровнях иерархии. В настоящее время для понятий «сложная система» и «большая система» используют такие определения:
• cложная система – упорядоченное множество структурно взаимосвязанных и функционально взаимодействующих разнотипных систем, которые объединены структурно в целостный объект функционально разнородными взаимосвязями для достижения заданных целей в определенных условиях;