Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Основы системного анализа. В 2 частях. Ч.1. Учебное пособие
.pdf
3.3. Методы моделирования систем
61
ности входных данных и при идеальном выполнении арифметических действий они дают решение исходной задачи с некоторой погрешностью,
называемой погрешностью метода. Это происходит потому, что численным методом решается обычно некоторая другая, более простая задача, аппроксимирующая исходную задачу. Это является существенным недостатком численных методов. Именно поэтому сегодня находят применение
подходы, основанные на графической технике структуризации моделируемых динамических процессов.
Метод системной динамики для анализа сложных систем был пред-
ложен в Массачусетском технологическом институте Дж. Форрестером.
Изначально он назывался «Индустриальная динамика» и применялся исключительно для изучения проблем управления производством. Но применение метода оказалось гораздо шире. «В основе концепции системной ди-
намики лежит представление о функционировании системы, как совокупности потоков информации, энергии, промышленной продукции, денежных средств и т.п. Согласно базовым идеям системной динамики, определяющее значение в описании динамики системы имеет структура системы,
представленная в виде взаимодействующих потоков, и взаимодействие
контуров обратной связи в ее структуре» [37].
Главная особенность предложенного Дж. Форрестером метода бази-
руется на двух идеях:
• динамика функционирования сложных систем существенно зави-
сит от структуры причинно-следственных связей, имеющихся в системе;
• сложные системы, в первую очередь производственные и социаль-
ные системы, принадлежат к классу систем с многоконтурными (дублирующими) нелинейными обратными связями.
Методы и техника построения моделей системной динамики оказали
большое влияние на формирование технологии имитационного моделирования. В методах системной динамики компьютерная модель создается с
применением графической техники построения диаграмм потоков и причинных связей исследуемой системы. Созданная модель преобразуется в
компьютерную программу и затем исследуется на компьютере. В настоящее время существуют эффективные инструментальные средства программной поддержки техники и процедур системной динамики: iThink,
Vensim, Powersim, AnyLogic.

3. Моделирование систем
62
Модели системной динамики получили широкое распространение в
задачах исследования сложных систем из сферы производства и экономики, торговли и городского хозяйства, из области социальных проблем,
проблем экологии и охраны окружающей среды [37].
3.3.3. Агентное моделирование
Прежде чем рассматривать этот метод моделирования, целесообразно выяснить смысл и значение термина «агент», поскольку его использование в паре с термином «моделирование» может вызвать вопрос о правомочности такого словосочетания. В обыденной жизни нам часто приходится встречаться со словом «агент», под которым в художественных
фильмах и детективных романах так называют шпиона, а также со словом
«агентство», с которым мы интуитивно связываем некоторую контору, занимающуюся недвижимостью.
Но, казалось бы, какое отношение этот термин имеет к моделированию? Для выяснения этого вопроса обратимся к официальным источникам.
Практически во всех словарях отмечается, что слово «агент» происходит
от латинского agens, agentis – действующий, приводящий в движение. Поэтому содержательный смысл этого слова подразумевает физическое или
юридическое лицо, гражданина или организацию, выступающие в роли доверенного лица, посредника, уполномоченного совершать определенные
действия от имени другого лица по поручению и в интересах этого лица.
В материалах Википедии приводятся различные примеры использования этого термина, исходя из его перевода – действующий:
− слово агент используется в естественных науках как действую-
щий фактор в каком-либо процессе или явлении, например, «химический
агент» – действующее вещество, выполняющее роль катализатора в хи-
мических реакциях;
− в торговле агент – посредник между продавцом и потребителем
продукции;
− в спорте агент – посредник, который на основании договора со
спортсменом представляет его интересы во взаимоотношениях с различными контрагентами;
− морской агент – лицо, оказывающее комплекс услуг при заходе
судна в порт.

3.3. Методы моделирования систем
63
И наконец, пример, который нас приближает к пониманию правомоч-
ности словосочетания агентное моделирование. В вычислительной технике,
информатике и информационных технологиях под агентом понимается ком-
пьютерная программа, устанавливаемая на хост (service host – главный процесс, который одновременно обслуживает ряд важных служб операционной
системы Windows) и осуществляющая подчиненную центральному серверу
сервисную деятельность. Видим, что в данном случае программа является
посредником, что соответствует исходному значению этого слова агент. Но
это словосочетание стало общепринятым далеко не сразу.
Рассмотрим (хронологию), как исторически происходило формиро-
вание агентов и агентного моделирования.
Идея агентного моделирования была предложена как относительно
простая концепция в конце 1940-х гг. Но реального использования эта концепция тогда не получила, так как для ее реализации требовались большие
вычислительные ресурсы. Но к тому времени таких вычислительных ресурсов тогда еще не существовало, а архитектура вычислительной машины фон
Неймана, в основу которой был заложен принцип совместного хранения команд и данных в её памяти, была заложена позже – в 1944 г. А первая вычис-
лительная машина ЭНИАК, построенная по архитектуре фон Неймана, появилась лишь в 1947 г. Но и её возможности были еще не достаточны. Несмотря на это, концепция агентов медленно, но верно захватывала умы исследователей. Но для практической реализации агентных моделей на первых
порах использовались не компьютеры, а графическое изображение агентов
в виде соответствующих карт на бумаге. Одной из самых ранних концептуальных моделей, основанных на агентах, была модель сегрегации (принуди-
тельное разделение людей на расовые, этнические или другие группы) Томаса Шеллинга (род. 1921 г., американский экономист лауреат Нобелевской
премии 2005 г.), представленная им в статье2. Идея агентных моделей продолжала распространяться. В начале 1980-хгг. Роберт Аксельрод (американский политолог и экономист, профессор, род. 27 мая 1943 г.) разработал ряд
агентных моделей, для политической науки и культуры. К концу 1980-х гг.
работа Крейга Рейнольдса (Крейг В. Рейнольдс, родился 15 марта 1953 г.,
2
Динамические модели сегрегации. Американское экономическое обозре-
ние, 1969 г., Т. 59, № 2.

3. Моделирование систем
64
специалист по искусственной жизни и компьютерной графике) над моделями скопления внесла вклад в разработку некоторых из первых моделей,
основанных на биологических агентах, которые содержали социальные ха-
рактеристики. Он попытался смоделировать реальность живых биологических агентов, известных как искусственная жизнь.
Все перечисленные исследования пока еще не предполагали исполь-
зование компьютеров. Поэтому идея агентного моделирования не находила
широкого распространения вплоть до 1990-х гг. Самое первое использование термина агент, как оно используется применительно к моделированию
в настоящее время, трудно отследить. Одним из претендентов на первенство в этом вопросе можно считать статью3 Джона Холланда и Джона Миллера. Точное определение агента на сегодняшний день отсутствует.
Параллельно, в это же время, происходило развитие методов искусственного интеллекта. Это позволило сделать новый шаг к изменению
стиля взаимодействия пользователя с компьютером. Этот шаг заключался
в создании так называемых автономных агентов. Теперь пользователь не
только управлял программой путем ввода соответствующих команд, но и
сам активно мог участвовать в совместном процессе решения задачи.
В течение всех 1990-х гг. заметно расширилось применение агентно-
ориентированного моделирования (ABM – agent-based modeling) в социальных науках. Моделировались и исследовались социальные явления, такие
как сезонные миграции людей, распространение загрязнений окружающей
среды, передачи заболеваний и даже в области культуры. В течение этого
периода британцем Н. Гилбертом был опубликован первый учебник по социальному моделированию «Моделирование для социолога (1999)», основан
журнал для опубликования статей имитационной проблематики в социальных науках, основан центр исследований в социальной имитации.
К середине 1990-х гг. ABM направление в социальных науках стало
сосредотачиваться на вопросах создания эффективных команд, глубинного
понимания организационной эффективности в различных коммуникациях
и социальных сетях. В конце 1990-х гг. сформировалось отдельное общество Североамериканской ассоциации вычислительных социальных и ор-
3
Искусственные адаптивные агенты в экономической теории. Американ-
ское экономическое обозрение. 1991. Т. 81, № 2.

3.3. Методы моделирования систем
65
ганизационных наук. Был внесён значительный вклад в разработку моделей социальных сетей, благодаря чему было получено финансирование
Национального научного фонда США для ежегодной конференции по проблемам ABM. В течение этого же времени были организованы Европейская
ассоциация социального моделирования (ESSA) и Тихоокеанская Азиатская ассоциация агентного подхода в науке о социальных системах. Первый Всемирный конгресс по социальному моделированию был проведен
при их совместном спонсорстве в Японии в августе 2006 г.
Точное определение агента на сегодняшний день отсутствует. В ос-
новном используется определение, принятое на конференции по лингвистике FIRA в октябре 1996 г. в Токио: «Агент – это сущность, которая нахо-
дится в некоторой среде, интерпретирует ее и исполняет команды, воздействующие на среду». Агент может содержать аппаратные и программные
компоненты. Отсутствие четкого определения агентов и наличие у них
большого количества свойств и разнообразия примеров агентов, используемых в самых различных областях деятельности говорит о том, что агент-
ное моделирование представляет достаточно общую технологию, которая
объединяет несколько различных областей знаний.
До сих пор использование понятия агент вызывает определенные
споры в среде исследователей. Противники использования в моделировании термина агент считают его всего лишь развитием широко используемого в технических системах термина блок, дополненного элементами искусственного интеллекта.
Единого мнения по поводу определения понятия агент в научной
литературе не существует, в целом можно определить агента как активного элемента системы, созданного человеком для определенной цели.
Каждый агент должен обладать способностью решать анализируемые про-
блемы в определенной среде. Выбор способностей зависит от сложности и
типа решаемой проблемы. Отметим наиболее важные способности, приведенные в статье4:
− способность обрабатывать информацию, поступающую от других
агентов, и передавать ее;
− способность принимать решения на основе данной информации;
4
Ценина Е. В. Агентное моделирование как новый взгляд на деятельность
предприятия. Российское предпринимательство. 2017. № 3. С. 368–374.

3. Моделирование систем
66
− способность ставить собственные цели (в конечном итоге цели для
других агентов) и осуществлять действия для их выполнения;
− умение сотрудничать с другими агентами и обдумывать их спо-
собности;
− способность к изменению моделей собственного поведения (рас-
суждать).
При этом под агентами понимаются различные по своей природе
элементы, например, социальные агенты (люди, социальные группы, покупатели и т.д.), экономические агенты (государства, регионы, отрасли,
фирмы и т.д.), технические агенты (автомобили, роботы, самолеты и т.д.),
экосистемные агенты (грозовые облака, пожары, тайфуны и т.д.).
В материалах публикации5 приведено такое представление агента, как
Агент = Архитектура + Агентская программа.
Под архитектурой понимается структурная, в общепринятом
смысле, часть агента: устройство с датчиками и приводами, например, роботизированная машина, камера, компьютер. Агентская программа – это
реализация функции агента средствами искусственного интеллекта. Интеллектуальность здесь понимается в самом широком смысле. Все зависит
от области применения интеллектуальных агентов.
Концепция агентов предполагает наличие активного их поведения,
т.е. способности компьютерной программы самостоятельно реагировать на
внешние события и выбирать соответствующие действия. Агент должен по
меньшей мере обладать возможностью принимать воздействие от внешнего мира, определять свою реакцию на это воздействие и осуществлять
эту реакцию. А интеллектуальный агент должен обладать рядом знаний о
себе и окружающем мире, при этом целесообразное его поведение определяется этими знаниями. Каждый агент должен обладать способностью решать анализируемые проблемы в определенной среде. Выбор способностей
зависит от сложности и типа решаемой проблемы. Если, например, агент-
ное моделирование используется для исследования в социальной области,
то агенты должны моделировать людей с их наклонностями, привычками,
знаниями, мировоззрением, т.е. всех тех качеств, которыми может обладать
5
http://espressocode.top/agents-artificial-intelligence/

3.3. Методы моделирования систем
67
человек. Такие агенты должны быть способными действовать, рассуждать
и обмениваться данными друг с другом в сети для формирования индивидуальных или коллективных решений.
Универсальной процедуры построения агентных моделей не суще-
ствует. Проблемность состоит в том, что каждая агентная модель создается индивидуально под специфические условия той среды, в которой ей
предстоит действовать. Несмотря на это, можно выделить некоторые общие основные этапы процедуры формирования агентов:
− формулировка проблемы;
− выбор среды реализации;
− определение объектов, которых будут моделировать агенты;
− установление свойств агентов и правил их поведения;
− программная реализация модели;
− проведение экспериментов с моделью;
− проверка модели;
− анализ результатов.
Выделяют следующие типичные свойств агентов:
• адаптивность (способность обучаться);
• автономность (агент работает как самостоятельная программа, ко-
торая ставит себе цели и предпринимает действия для их достижения);
• интеллектуальность (агенты могут обладать знаниями или меха-
низмами вывода на основе обобщения, например, иметь встроенную искусственную нейронную сеть);
• коммуникативность (способность общаться с другими агентами);
• мобильность (способность к пространственному перемещению
агента либо миграции агента из одной агентской группы в другую).
Агентные модели создаются с помощью специальных программных
средств. В большинстве случаев для этого используются языки программирования Java и C++. Самым сложным в приведенном списке свойств является этап создания модели, поскольку он требует высочайшего уровня профессионализма как в разработке соответствующих алгоритмов, так и их
программной реализации.
В настоящее время существует большое количество программных си-
стем, которые позволяют реализовать агентное моделирование. Наиболее
известной агентно-ориентированной системой моделирования является

3. Моделирование систем
68
ANYLOGIC. Она разработана компанией XJ Technologiex в 1992 г. Среди свободно распространяемых агентно-ориентированных систем моделирования
можно выделить REPAST – источник библиотек для крупномасштабного
агентного моделирования и Ascape – кроссплатформенная агентная система
моделирования, написаная на языке Java. Для таких систем очень важно,
чтобы они позволяли разрабатывать модели не только пользователям с квалификацией программиста, но и обычные конечные пользователи. Поэтому
агентно-ориентированные системы должны обладать визуальными программными средствами конструирования и редактирования моделей.
Приведем некоторые примеры этих возможностей, заложенных в систему агентного моделирования ANYLOGIC и описанных в учебном пособии6. Эта система поддерживает различные подходы моделирования,
успешно применяемые в различных сферах деятельности. С помощью аген-
тов моделируют рынки (в данном случае агент – это потенциальный покупатель), конкуренцию и цепочки поставок (здесь агент – это компании),
население (здесь в качестве агентов могут выступать: семья, жители городов, избиратели) и многие другие одушевленные и не одушевленные предметы и объекты. ANYLOGIC является единственной системой моделирования, позволяющей быстро создавать гибкие модели с агентами, взаимодействующими как друг с другом, так и со своим окружением. Система поддерживает все возможные способы задания поведения агентов – диаграммы состояний, синхронное и асинхронное планирование событий.
Ниже приведен пример некоторых подробных пошаговых операций
создания модели с пояснениями.
Создание нового проекта
► Создайте новый проект
1. Щелкните мышью по кнопке панели инструментов Создать.
Появится диалоговое окно Новый Проект.
2. Щелкните мышью по кнопке Выбрать… и выберите директорию,
в которой вы будете хранить файлы вашего проекта.
3. Укажите имя нового проекта. Введите Product Life Cycle в поле ре-
дактирования Имя проекта.
4. Щелкните мышью по кнопке OK.
6
ANYLOGIC
TM
. Учебное пособие по агентному моделированию, 1992.

3.3. Методы моделирования систем
69
Новый проект создан. Вы увидите структурную диаграмму в центре
рабочей области AnyLogic ТМ, окно Проект – в левой панели, и окно Свой-
ства – в правой.
При работе с проектом, не забывайте сохранять его с помощью
кнопки панели инструментов Сохранить.
Создание агентов
В AnyLogic
ТМ
для создания агентов вам будет нужно вначале со-
здать класс активного объекта, который будет задавать внутреннюю структуру агента, а затем создать необходимое количество экземпляров этого
класса, каждый из которых будет представлять отдельного агента модели.
► Создайте класс активного объекта
1. Чтобы создать новый класс, щелкните мышью по кнопке панели
инструментов Новый класс активного объект.
2. В появившемся диалоговом окне задайте Имя нового класса: Person.
Автоматически появится окно структурной диаграммы класса Person.

3. Моделирование систем
70
Теперь, когда вы создали класс, который будет задавать структуру
агента, можно добавить агентов в модель. Для того чтобы добавить агентов в модель, нужно просто добавить объект класса, задающего структуру
агента (Person), в класс, моделирующий окружение агентов (Main).
► Добавьте агентов в модель
1. Откройте структурную диаграмму класса Main, сделав двойной
щелчок мышью по элементу Main в окне Проект.
2. Перетащите мышью класс Person из окна Проект на структурную
диаграмму класса Main.
3. Назовите объект people.
4. Задайте количество человек в вашей модели. На вкладке Количе-
ство окна Свойства задайте Количество объектов: 1000. Автоматически
будет создано 1000 экземпляров класса Person, каждый из которых будет
представлять отдельного агента.
Подобными пошаговыми операциями выполняются все процедуры
по созданию моделей всех агентов.
3.3.4. Основные этапы процесса моделирования
В зависимости от сложности и вида моделирования системы может
использоваться и различное число этапов. Это различие явно выражено в
разных источниках. Мы будем ориентироваться на общий случай возможных и необходимых этапов.
1. Формулировка и уточнение целей моделирования. Этот этап тре-
бует тщательного обдумывания целей моделирования, поскольку они опре-
деляют содержание остальных этапов моделирования. Цели моделирования могут быть самые разные. Обычно исследователей интересует поведение моделируемой системы в зависимости от значений наиболее суще-
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
