Автореферат (Разработка метода проектирования многоагентных имитационных моделей на основе формализма машин абстрактных состояний), страница 3
Описание файла
Файл "Автореферат" внутри архива находится в папке "Разработка метода проектирования многоагентных имитационных моделей на основе формализма машин абстрактных состояний". PDF-файл из архива "Разработка метода проектирования многоагентных имитационных моделей на основе формализма машин абстрактных состояний", который расположен в категории "". Всё это находится в предмете "технические науки" из Аспирантура и докторантура, которые можно найти в файловом архиве НИУ ВШЭ. Не смотря на прямую связь этого архива с НИУ ВШЭ, его также можно найти и в других разделах. , а ещё этот архив представляет собой кандидатскую диссертацию, поэтому ещё представлен в разделе всех диссертаций на соискание учёной степени кандидата технических наук.
Просмотр PDF-файла онлайн
Текст 3 страницы из PDF
машина действий, состояния которойопределяются только состоянием данных. При этом состояние данных можетвключать символьную часть с набором ограничений на неизвестные параметры(целочисленное x неизвестно, но больше 0). Правила обновления (изменениясостояния данных), спецификации описываются на исполняемом языкепрограммирования. Состояние определяется набором значений переменных.Отношение переходовзадается неявно, с помощью предикатов, вычисляемыхв методах спецификации (программной спецификации).Исследование спецификации представляет собой генерирование частичногоповедения - конечного подмножества состояний, путем последовательногоприменения правил обновления к начальному состоянию, ограниченное длинойпоследовательности вызова методов, а также сценариями.Тестирование соответствия фактической программной реализации еѐспецификации (верификация) основано на чередующейся имитации(бисимуляции) программной реализации и спецификации, по аналогии сконцепцией интерфейсных автоматов.
При этом действия разбиваются нанепересекающиеся подмножества контролируемых и наблюдаемых. Втораямашина имитирует все контролируемые действия первой, в то время как перваямашина имитирует все наблюдаемые действия второй.Предлагаемый в данной работе метод получил название ASF (какаббревиатура от AgentServiceFramework).ASF представляет собой метод создания многоагентных программныхкомплексов для имитационного моделирования, включающий в себя процесситеративного создания и уточнения спецификаций. Особенностью являетсявозможность исследования различных аспектов программной реализации насамых ранних этапах разработки. Использование математического формализмаASM позволяет легко выбирать уровень абстракции исполняемойспецификации.
На первых этапах спецификация обладает только самымиобщими чертами, но еѐ уже можно запустить и посмотреть, верны ли самыеобщие предположения о поведении программной реализации. На более поздних13этапах подход ASF позволяет обеспечить соответствие программнойреализации многоагентного имитационного комплекса еѐ спецификации.Одна итерация процесса разработки состоит из следующих шагов:1. Разработка или уточнение исполняемой спецификации (ASM-модель в виденабора правил условных обновлений).2.
Автоматизированное исследование ASM модели самой по себе иисправление найденных ошибок.3. Автоматическая генерация программного кода на языке C++ подключаемогомодуля (plugin) для системы имитационного моделирования, реализацияметодов.4. Подключение нового модуля к ядру, возможно уже запущенному иработающему с предыдущей версией модели. При этом можно сравнитьповедение новых и старых видов агентов при работе в одной среде, в рамкаходного эксперимента.5. Автоматическая проверка соответствия С++-модели и ASM-модели,основанная на чередующейся имитации, машин действий C++-моделиОбщая для всех спецификаций часть, касающаяся обработки сообщений,описывается следующей ASM-моделью:MessageProcess(current) ={}{}Каждый класс агентов моделируется конечным автоматом, переходы междусостояниями которого инициируются обрабатываемыми агентом сообщениями.При этом реализация обработки сообщений абстрагируется.В разделе 2.3 описывается способ организации распределенных вычисленийи приводится сравнительная характеристика различных подходов.14В разделе 2.4 подробно описана используемая в ASF многоагентнаяструктура и общая структура построения имитационных экспериментов.
Агентв ASF -это именованный объект, имеющий заранее определенные состояния.Взаимодействие между агентами осуществляется посредством асинхронногообмена сообщениями. Агент выбирает сообщения, которые он желаетобрабатывать – подписывается на сообщения. Возникновение и последующаяобработка сообщения, на которое подписан агент, называется событием.Сообщение может породить несколько событий, которые будут обрабатыватьсяв соответствии с назначенными им приоритетами т.н.
приоритетнаядиспетчеризация событий. Агенты, имеющие одинаковое множествосостояний, событий и сообщений, образуют класс агентов.Имитационный эксперимент в ASF - это результат взаимодействия агентов.Существует специальный системный агент, сообщения которого управляютходом эксперимента. Среда моделирования берет на себя обеспечение общейвиртуальной среды взаимодействия агентов, системной шины сообщений. Приэтом отдельные агенты могут быть физически запущены на разных системах.Третья глава содержит детальное описание разработанной программнойархитектуры программного комплекса для имитационного моделирования атакже описание реализованного прототипа.В разделе 3.1 дается определение программной архитектуры, и основныхсвязанных понятий.В разделе 3.2 описывается базовая архитектура ядра предлагаемогокомплекса многоагентного моделирования, а также принцип декомпозиции напрограммные сервисы.
Новизна предлагаемой программной архитектурысостоит в том, что отдельные процессы, входящие в программный комплекс,представляют собой композицию слабо связанных программных сервисов,взаимодействующих асинхронно. Всего выделено пять категорий программныхсервисов:Boot-strap services – сервисы, в обязанность которых входит запуск иинициализация ядра;Kernel support services – сервисы ядра, сервисы реализующие основнуючасть функциональности программного каркаса (framework);Application support services – вспомогательные сервисы, аналог WindowsHAL – Hardware Abstraction Layer;Application services – сервисы специфичные для приложения;15Service extensions – расширения сервера (plug-ins, script).Ядро (Kernel) выступает в роли менеджера ресурсов (память, потоки, и т.д.),а также «черного ящика» для программных сервисов, через который ониполучают доступ к другим программным сервисам.
Взаимодействие ядра спрограммными сервисами происходит асинхронно.Одной из ключевых особенностей является полная интроспекция – каждыйсервис формально регистрирует свой внешний интерфейс в ядре.Использование языка Python в качестве «склеивающего» языка (glue language)позволяет объединять программные сервисы, разработанные независимо другот друга.В разделе 3.3 предлагается механизм трансляции ASM-моделей на языке C#в C++, основанный на использовании атрибутов и механизма отражения(reflection).В разделе 3.4 приводится основной перечень библиотек и технологий,выбранных для разработки прототипа.
Для обоснования выбора, указаныспецифические особенности этих инструментов, повлиявшие на выбор.В разделе 3.5 разбирается программная реализация созданного прототипа.Подробно описываются программные сервисы, входящие в состав прототипа имеханизмы работы.ПрограммныйсервисSimulationManager,реализуетподдержкумногоагентных имитационных экспериментов. Он же обеспечиваетраспределенную виртуальную среду взаимодействия.Распределенные эксперименты осуществляются за счет передачисообщений агентов по всем экземплярам сервера. Транслируются в сеть не всесообщения, а только сообщения специальных агентов – коммуникаторов.
Такойподход позволяет ограничить накладные расходы, связанные с сериализациейсообщений и сетевым взаимодействием.В разделе 3.6 созданная архитектура и реализация анализируется сразличных точек зрения. Формулируются выводы и дальнейшие перспективыразвития.Четвертая глава посвящена практическому использованию предложенногометода и прототипа.В разделе 4.1 приводятся общие свойства всех моделей, реализованных пометоду ASF для программного каркаса ASF.Core.16Программный каркас ASF.Core построен с использованием принциповсервис-ориентированной архитектуры и реализует набор программныхинтерфейсов, облегчающих построение многоагентных имитационныхэкспериментов. В программном каркасе агенты общаются друг с другомпосредством передачи сообщений. Такой подход позволяет с одной стороныминимизировать связи между кодом различных агентов, а с другой даетвозможность использовать различные схемы обработки сообщений, т.н.диспетчеры. Диспетчер определяет, в какой момент и в контексте какого потокаагент должен обработать сообщение.
Таким образом, достигается эффективноеиспользование ресурсов современных многоядерных систем. Использованиесообщений также позволяет строить распределенные вычислительныеэксперименты. При этом программный каркас берет на себя организациювиртуальной среды взаимодействия. С точки зрения агента несущественно, вкаком окружении он выполняется.В разделе 4.2 в качестве демонстрации механизма построенияраспределенныхэкспериментовприведенареализацияклассическойдемонстрационной модели HeatBugs для программного каркаса ASF.Core.
Нарис 2. приведено сравнение производительности с .NET-версией системыRePast. Критерием производительности в данном сравнении является время,затрачиваемое программным комплексом на моделирование 1000 шагов взависимости от количества агентов.Рисунок 2. Сравнение производительностиВ разделе 4.3 в качестве иллюстрации практической значимости разработкиприводится описание методов программной реализации и верификации17известной модели теории коллективных действий, изначально предложеннойМайклом Мэси. С использованием предложенных методов и алгоритмов созданмногоагентный комплекс имитационного моделирования FreeRiders, проведенаего апробация на серии имитационных экспериментов.В частности, для демонстрации эффективности средств автоматическойверификации созданной программной реализации проведено исследованиекорректности метамодели FreeRiders.