Модернизация программы агентно-ориентированного моделирования 'Лабиринт агентов'. Дипломная (ВКР). Информационное обеспечение, программирование.

Модернизация программы агентно-ориентированного моделирования 'Лабиринт агентов'. Дипломная (ВКР). Информационное обеспечение, программирование.




💣 👉🏻👉🏻👉🏻 ВСЯ ИНФОРМАЦИЯ ДОСТУПНА ЗДЕСЬ ЖМИТЕ 👈🏻👈🏻👈🏻


























































Информационное обеспечение, программирование

Вы можете узнать стоимость помощи в написании студенческой работы.


Помощь в написании работы, которую точно примут!

Похожие работы на - Модернизация программы агентно-ориентированного моделирования 'Лабиринт агентов'
Нужна качественная работа без плагиата?

Не нашел материал для своей работы?


Поможем написать качественную работу Без плагиата!

. АНАЛИЗ АЛГОРИТМОВ И ПРОГРАММНЫХ
РЕАЛИЗАЦИЙ ПОВДЕНИЯ АГЕНТОВ В ДВУМЕРНОЙ СРЕДЕ


В настоящее время существует большое количество информации, по различным
темам, среди которой пользователь ищет необходимую ему информацию, и с каждым
днем количество информации растет и растет. Уже сейчас современный человек за
месяц получает столько информации, сколько человек 17 века за всю жизнь. Каждый
день появляются все новые источники информации. Пользователю приходится одному
перерабатывать огромное количество информации, которой порой такое количество,
что в одиночку он не справляется. Здесь нам на помощь и приходят агенты,
которые помогают, пользователям в обработке информации.


Агент - это программа, самостоятельно выполняющая задание, которое
пользователь указал для выполнения, в период длительного промежутка времени,
они помогают пользователю с поиском или же сбором информации, анализом данных.
К интеллектуальным агентам могут относиться боты, компьютерные вирусы,
поисковые системы - это все относиться к интеллектуальным агентам. Агенты могут
выполнять различные действия и добиваться различных целей, в зависимости от
требования пользователя. Они могут искать нужную информацию или же собирать ее
и передавать пользователю для отчетности, или же проводить анализ данных.
Простой пример, это агент, который помогает пользователю найти самый дешевый
номер в отеле, пользователь указывает агенту страну, и нужный ему отель, а все
последующие функции выполняет сам агент, он прочесывает сайты в поиске самого
дешевого номера в отеле, всю информацию которую агент найдет, он предоставит
пользователю в виде отчета об успехах поиска.


В выпускной квалификационной работе, была модернизирована программа для 4
курса в рамках лабораторной работы “Лабиринт Агентов”. Эта программа использует
агентно-ориентированное моделирование. Есть некий лабиринт, в котором агенту
необходимо найти золото, следуя одному из видов поисков, которые включают в
себя (вертикальный поиск, горизонтальный поиск, диагональный поиск, поиск по
спирали одновременный, поиск по спирали последовательный), но лабиринт заполнен
препятствиями, которые мешают агенту найти золото, поэтому в зависимости от
поиска и занятости поля препятствиями, агент тратит различное время на поиски
золота. После выполнения всех экспериментов, данные собранные агентом выводятся
в виде отчета.


Выпускная квалификационная работа состоит из семи пунктов. В первом
разделе описаны алгоритмы и программные реализации программы “Лабиринт
агентов”. Во втором разделе описана архитектура программного комплекса. В
третьем разделе описаны структуры данных программы. В четвертом разделе описаны
алгоритмы программы “Лабиринт агентов”. В пятом разделе описаны разработанные
модули для программы. В шестом разделе описано экспериментальное тестирование.
В седьмом разделе описана оценка качества разработанного продукта.









1 . АНАЛИЗ АЛГОРИТМОВ И ПРОГРАММНЫХ РЕАЛИЗАЦИЙ ПОВДЕНИЯ АГЕНТОВ В ДВУМЕРНОЙ
СРЕДЕ




Помощь агентов для решения каких-либо задач используется давно, суть
задач всегда остается одной и той же, меняется только ее формулировка и среда,
в которой агент должен решить стоящую перед ним задачу.


Задачи по исследованию поведения агентов в двумерной среде известны давно
и имеют множество интерпретаций. К примеру, таких как “Охота на индейку” или
“Обезьяна и банан”. Эти задачи описал в своей книге “Системы искусственного
интеллекта” Девятков В.В. [1]


Суть задачи звучит следующим образом: есть поле в котором находятся
индейки и есть охотник, которому необходимо выстрелить в индейку, но, чтобы
сделать выстрел ему сначала необходимо зарядить ружье, при зарядке ружья затвор
издает звук, который могут услышать индейки и спрятаться от охотника. Индейки
бывают двух типов глухие, которые не слышат затвора ружья, и не глухие, которые
при звуке затвора прячутся. Цель проста, если охотник сначала пройдет по полю,
зарядит ружье и совершит выстрел, то попадет в глухую индейку, но если индейка
не будет глухая, останется ли она в живых?


В комнате находится обезьяна, так же в комнате подвешен банан, до
которого обезьяна не может дотянуться. У окна в комнате всегда стоит ящик,
пододвинув который под банан, обезьяна может схватить банан. Точка появления
обезьяны различна, она может находиться у окна, рядом с ящиком, у двери, под
бананом и на ящике. Обезьяна может двигать ящик, к банану, к окну или от окна,
к двери, так же обезьяна может залезать на ящик и слезать, вопрос данной задачи
следующий, будет ли банан схвачен?


Агентов так же используют и в современных играх. Они представляют собой
искусственный интеллект, который либо помогает пользователю, либо мешает
проходить уровни. В зависимости от действий пользователя в окружающей его
среде, агенты начинают себя вести по-разному, в зависимости от того как
пользователь влияет на окружающую среду или же самих агентов.


Как пример можно привести игру шахматы, где пользователь играет против
компьютера или же агента. Агент знает множество ходов и комбинаций, и в
зависимости от действий пользователя, то есть от его ходов, агент будет
по-разному реагировать, увидев ходы пользователя, агент будет ходить
основываясь на них или же выявит закономерность ходов и сходит наперед.


Так же агентов используют в симуляции каких-либо процессов. В зависимости
от описанной среды, в которой находятся агенты и их поведения можно создать
симуляцию почти чего угодно. Каких-либо физических законов, лишь описав среду и
приписав агентам поведение частиц в этой среде в зависимости от того, что
происходит в окружающей их среде. Так же агентов можно использовать для
социальных экспериментов.


Программа NetLogo программа
мульти-агентного моделирования. Данная программа позволяет работать с
разнообразными моделями, в которых используются агенты. В библиотеках данной
программы содержаться тысячи моделей на основе поведения агентов в окружающей
среде. Данные модели позволяют лучше понять те или иные аспекты реальных
моделей, используя только поведение агентов. Как уже было сказано программа
содержит огромное количество готовых моделей для изучения, и во всех них
используются агенты, для решения тех или иных задач.


Данная модель давно известна и представляет собой модель Хищник-Жертва.
На поле находятся овцы, которые свободно перемещаются по полю и едят травку,
так же на поле находится несколько волков, которые ищут овец и едят их, если
волк не находит овцу за определенное количество ходов, то он умирает, если же
находит, то у него появляются силы и он размножается. Данная модель позволяет
изучить при каком количестве овец и волков возможно совместное сосуществование,
и при каких полная гибель того или иного вида, так же есть вариант гибели сразу
двух видов.


Агенты представляют философов, сидящих за одним столом и обедающих. В
зависимости от количества философов будет разное количество столовых приборов,
изначально их по 6. Когда философ проголодается то берет два столовых прибора и
ест, пока он не наестся, он не положит приборы на стол. Так же философ может
взять только один столовый прибор, если не успел взять второй, и будет
находиться в состоянии очереди, либо ждать пока освободиться другой прибор,
либо положит его на стол. Задача данной модели заключается в следующем, найти
тот момент, когда философы смогут договориться и не будут голодать.


Помощь агентов в решении определенных задач признана уже давно, благодаря
агентам мы можем симулировать различные модели и проводить с помощью этих
моделей эксперименты, не прибегая к настоящей модели. Если правильно описать
среду в которой будут находится агенты и их поведение в этой среде, то можно
построить модель практически чего угодно.


В нашем случае стоит задача “Лабиринт агентов”. В лабиринте спрятано
золото, которое необходимо найти агенту или агентам, по пути встречаются
препятствия, которые мешают агенту или же агентам найти золото, так как золото
может находится в любой точке лабиринта, включая препятствия. Для поиска золота
можно использовать несколько агентов, которые вместе будут искать золото, так
же можно менять вид поиска, который используют агенты для поиска золота. Цель
задачи проста, в зависимости от количества агентов и видов поиска, какой вид
поиска в конкретной ситуации окажется быстрее и какой вид поиска окажется самым
точны, при котором будет больше количество удачный экспериментов.







В программе “Лабиринт агентов” используется несколько алгоритмов поиска
агентом золота в лабиринте. Это вертикальный поиск, горизонтальный поиск,
диагональный поиск, поиск по спирали (одновременно), поиск по спирали
(последовательно).


Вертикальный поиск. Один из возможных поисков, которые могут использовать
агенты для нахождения золота. Особенность вертикального поиска заключается в
том, что агент движется по вертикали вверх или вниз, делая шаг в сторону
(вправо или влево) лишь в том случае, когда дошел до верхнего или нижнего
предела поля, наткнулся на препятствие в виде сквозняка от ямы или от вони от
чудовища, или склона горы или же болота, или находится в тупике. Пример
вертикального поиск представлен на рисунке 1.1




Вертикальный поиск так же известный как поиск в ширину, довольно
популярный поиск информации. Вертикальный поиск используют в своих системах
такие компании как Google, Yahoo, MSN. Конечно компании Google, Yahoo, MSN не
являются вертикальными поисковыми системами, а используют горизонтальный поиск
с включением методов вертикального поиска. Вертикальный поиск позволяет найти
не углубленную информацию, а общую, то есть ту информацию которая включает в
себя картинки, видео записи, продукты компаний и просто общую информацию по
теме, если же необходима более глубокая информация по какой-либо теме
используют горизонтальный поиск.


Горизонтальный поиск. Поиск, который агент использует для поиска золота в
лабиринте. Особенность горизонтального алгоритма поиска заключается в том, что
агент движется по горизонтали вправо или влево, делая шаг в верх или вниз в том
случае, когда дошел до левого или правого предела поля, наткнулся на
препятствие в виде сквозняка от ямы, или вони от чудовища, или склона горы, или
болота, или же находится в тупике. Пример горизонтального поиска представлен на
рисунке 1.2




Горизонтальный поиск или же поиск в глубину, используется для нахождения
более углубленной информации по какой-либо теме. Является основным способом
поиска информации с помощью поисковых систем, так как находит всю информацию по
заданному вопросу, не только общую, но и углубленную.


Диагональный поиск. Поиск, который агент использует для поиска золота в
лабиринте. Данный алгоритм поиска существенно отличается способом передвижения
агента, так как движение осуществляется по диагонали и реализовано дискретным
шагом по диагонали. Диагональ перемещения проходит из левого нижнего угла поля
в правый верхний угол. Поэтому для движения используются два шага-степа: вправо
- вверх (до предела - правый верхний угол поля, т.е. max по горизонтали и
потолок) и влево - вниз (max по вертикали и предел по горизонтали слева). В
остальном алгоритм похож на предыдущие, т.е. агент так же оглядывается в
поисках золота и блеска. При обнаружении препятствия пытается сделать шаг в
противоположном направлении, если это у него не получается, то включается
алгоритм вывода агента из тупика. Пример диагонального поиска представлен на
рисунке 1.3




Поиск по спирали (одновременно). В данном алгоритме введены специальные
параметры для синхронизации поиска между агентами, когда в настройках
количество агентов более одного. Также они позволяют отслеживать продвижение
агента в определенном направлении. Таким образом, агент поменяет направление
движения, только если встретит препятствие, в том числе и границы поля, или уже
исследованное поле. Это позволяет организовать общее продвижение агентов по
спирали одновременно. Пример поиска по спирали (одновременно) представлен на
рисунке 1.4



Рисунок 1.4 - Поиск по спирали (одновременно)




Поиск по спирали (последовательно). В отличие от предыдущего алгоритма здесь
не используются дополнительные параметры, но из-за этого продвигаться по полю
может лишь один из агентов (если их больше одного), другой начинает своё
движение только когда первый окажется в тупике, из которого невозможно
выбраться. Хотя этот алгоритм, в общем, и затрачивает больше времени для
поиска, чем предыдущий, но является более экономичным при использовании
ресурсов. Если, например, агенты были бы реализованы аппаратно, то имелись бы в
виду энергетические ресурсы. Пример поиска по спирали (последовательно)
представлен на рисунке 1.5




Рисунок 1.5 - Поиск по спирали (последовательно)







В лабиринте агент следует следующим задачам. Ему необходимо найти золото,
если золото было найдено, то в окне сообщений выведется информация об успехе,
если же нет, то информация о провале. При поиске золота и хождению по лабиринту
агент встречает препятствия по пути, среди которых ямы со сквозняком, горы со
склоном, чудовища с вонью и болото. В отличии от всех других препятствий болото
замедляет движение агента по лабиринту пока он находится в зоне действия
болота.


База знаний агентов. Представляет собой два вида базы знаний, первая
общая база знаний агентов, вторая личная база знаний агентов.


Общая база знаний агентов. Если на поле присутствует несколько агентов и
пользователь, выбрал в настройках программы, общую базу знаний, то агенты будут
работать сообща, то есть каждый агент будет знать о перемещениях других агентов
по полю и не будет ходить в уже посещенные ячейки. Эта база знаний представляет
собой общий разум агентов, где они идут только туда где еще не был никто из
них. С общей базой знаний поиск проходит быстрее так как агенты знают где они
уже были, и не пытаются идти в уже посещенные ячейки.




Личная база знаний. Так же пользователь может выбрать личную базу знаний
агентов, в настройках программы. Личная база знаний подразумевает, что у
каждого агента она своя и каждый агент знает только о своем передвижении, агент
не знает куда уже ходили другие агенты до него, поэтому чтобы не ходить в одну
и ту же ячейку дважды, агенты общаются друг с другом. Пример общения агентов
представлен на рисунке 1.6. Перед тем как сходить в ячейку они спрашивают у
других агентов были ли они в ней, если ответ положительный, то агент выбирает
другую клетку для посещения.


Выход из лабиринта. Агенты могут покинуть лабиринт если найдут выход или
же остаться в лабиринте и продолжить поиски золота. Но не всегда, есть шанс
найти золото оставшись в лабиринте.


Требования программного комплекса “Лабиринт Агентов”. При запуске
программы необходимо указать имя пользователя, а также выбрать, что будет с
файлами предыдущей работы, сохранить их или же перезаписать. При настройке поля
компьютером необходимо указать все настройки, которые могут понадобиться
компьютеру для подготовки поля к экспериментам. В эти настройки входят такие
как, процент заполнения поля ямами и горами, количество агентов, настройки
агентов, будут ли они постоянными или же изменяться после каждого эксперимента,
количество испытаний, которое хочет провести пользователь, так же время
задержки, необходимое пользователю, базу знаний агентов, будет ли она индивидуальной
или совместной.


Если же поле будет настроено пользователем для проведения экспериментов
самостоятельно, то он должен расположить на поле ямы, горы, чудовище, золото и
болота. Выбрать необходимое количество испытаний и время задержки. После чего может
смело приступать к выполнению экспериментов.


Ограничения программного комплекса “Лабиринт Агентов”. Число агентов,
зависит от размера поля заданного пользователем, при минимальном поле 10 на 10
клеток, всего можно поставить 96 агентов, это связанно с тем, что 96 клеток из
100 будет заняты агентами, а оставшиеся 4 клетки будут включать в себя золото,
болото, чудовище и яму. Максимальное количество агентов составляет 396 на поле
20 на 20 клеток, ограничения на количество агентов ставиться автоматически в
зависимости от размера поля заданного пользователем. Время задержи не должно
быть меньше 20мс из-за того, что если время задержки будет меньше 20мс
пользователь не увидит движения агента, а увидит лишь его путь, по которому
будет сложно понять как двигался агент, особенно если не знать алгоритмов
поиска агента, поэтому было принято, что минимально время задержки составит
20мс, максимально 100мс, так как при задержки 100мс агент будет двигаться
достаточно медленно, чтобы пользователь смог разобрать его траекторию движения.
Агентов никогда не может быть меньше 1, так как суть экспериментов заключается
в поиске золота агентами, а при их отсутствии все эксперименты закончатся
провалом. Процент заполнения поля, это настройка лабиринта включает сюда, горы
и ямы, в зависимости от процента гор и ям будет больше или же меньше, в каждом
эксперименте поле должно быть заполнено ямами и горами, минимальное значение
это 1 яма и 1 гора, при заполнении поля на 1%. Так как ямы и горы обязательны
для экспериментов, то процент заполнения поля равный 0 мы поставить не можем.


Рассмотрим ограничения, которые появляются если поле заполняет сам
пользователь. При расстановке агентов, пользователь все так же зависит от
размеров поля, в зависимости от размеров поля зависит количество агентов,
которое пользователь может поставить. Для правильной работы программы,
пользователь обязательно должен поставить хотя бы одного агента на поле, в
противном случае, программа сообщит ему об этом. Так же поле должно в себя
включать ямы, горы, золото, чудовище и болота. Для работы программы
пользователь обязан расставить все эти предметы на поле в количестве равному 1.
Заполнение поля ямами и горами пользователь решает сам, по-своему желанию или
же требованиям лабораторной работы. А вот количество золота и чудовища не
должно превышать 1. А количество болото всегда должно быть равно 2. Так как при
попадании в болото, агент замедляется и какое-то время стоит на месте, при
большом количестве болот, один эксперимент бы занимал большое количество
времени, не говоря уже о 100 экспериментах.


Представим для программы агентно-ориентированного моделирования “Лабиринт
агентов” структурную схему приложения.


Структурная схема представлена на рисунке 2.1







В программе агентно-ориентированного программирования “Лабиринт агентов”
агенты для исследования лабиринта используют данные и знания. Перемещаясь по
лабиринту агентам необходимо знать в каких частях лабиринта они уже были, в
какие ячейки они должны сходить и уметь определять, что перед ними находится
золото или же чудовище.


У каждого агента есть база знаний, с помощью которой агент свободно
передвигается по лабиринту в поисках золота, и не ходит по одним и тем же
местам. База знаний агентов. Представляет
собой два вида базы знаний, первая общая база знаний агентов, вторая личная
база знаний агентов.


Общая база знаний агентов. Если на поле присутствует несколько агентов и
пользователь, выбрал в настройках программы, общую базу знаний, то агенты будут
работать сообща, то есть каждый агент будет знать о перемещениях других агентов
по полю и не будет ходить в уже посещенные ячейки. Эта база знаний представляет
собой общий разум агентов, где они идут только туда где еще не был никто из
них. С общей базой знаний поиск проходит быстрее так как агенты знают где они
уже были, и не пытаются идти в уже посещенные ячейки.


Личная база знаний. Так же пользователь может выбрать личную базу знаний
агентов, в настройках программы. Личная база знаний подразумевает, что у
каждого агента она своя и каждый агент знает только о своем передвижении, агент
не знает куда уже ходили другие агенты до него, поэтому чтобы не ходить в одну
и ту же ячейку дважды, агенты общаются друг с другом. Перед тем как сходить в
ячейку они спрашивают у других агентов были ли они в ней, если ответ
положительный, то агент выбирает другую клетку для посещения. Пример общения
агентов представлен на рисунке 3.1







Для выбора той или иной базы знаний у агента, пользователь может
воспользоваться настройками программы агентно-ориентированного программирования
“Лабиринт агентов”. Пример выбора базы знаний агентов представлен на рисунке
3.2




Лабиринт представлен в виде двумерного массива, каждая ячейка лабиринта
имеет свой номер, отличный от всех других ячеек. В каждой ячейке может
находиться золото, или болото, или чудовище, или горы, или ямы, независимо от
ее расположения. При поиске золота агент проверяет каждую ячейку, в которую он
собирается идти, и если там находится препятствие, то агент его обходит. [7]


В программе агентно-ориентированного моделирования “Лабиринт агентов”
имеется множество данных, включая данные исследований, которые проводит
пользователь. Для сохранения этих данных и для более удобной работы с ними, все
данные исследований и ключевые данные настроек, сохраняются в специальном
текстовом файле, в корне программы. При запуске программы пользователь может
либо удалить результаты предыдущих экспериментов, либо же продолжить сохранять
результаты в том же файле. Пример выбора представлен на рисунке 3.3




Рисунок 3.3 - Выбор сохранения результатов работы




Рисунок 3.4 - Результаты экспериментов в программе




Данные и результаты экспериментов записываются в специальном поле в
программе, где их можно изучить, при каждом новом эксперименте эти данные
удаляются с формы, но сохраняются в файле. Пример вывода данных результата в
программе, представлен на рисунке 3.4


Всего программа создает два файла с результатами экспериментов, один из
них называется result, а второй short. Их отличия в том, что result записывает, всю информацию по
экспериментам, копируя информацию из результатов представленных в программе в
отдельный файл, а short представляет
результаты экспериментов в специальном виде, укороченном по сравнению с файлом result, где все данные записаны в строки.
Пример результатов в файле result,
представлен на рисунке 3.5




Рисунок 3.5 - Результаты экспериментов в файле result




Пример сохранения данных экспериментов в файле short, представлен на рисунке 3.6




Рисунок 3.6 - Результаты экспериментов в файле short







Сформируем таблицу с результатами экспериментов, для более удобного
восприятия, результаты тестирования представлены в таблице 3.1




Таблица 3.1 - Результаты тестирования


Поле программы агентно-ориентированного моделирования “Лабиринт агентов”
реализуется с помощью двумерного массива. При прохождении агентом этого
массива, номер каждой ячейки записывается в памяти агентов, поэтому они не
будут ходить по одному и тому же маршруту, а все объекты в лабиринте, такие как
горы, золото и т.д., расставляются в лабиринте случайным образом. Поэтому
каждый эксперимент, каждое прохождение агентом лабиринта является
исключительным.









В программе “Лабиринт агентов” используются различные алгоритмы поиска
агентом золото, каждый из этих алгоритмов уникальный и по-своему хорош. Для
проведения экспериментов мы используем такие виды поиска как вертикальный
поиск, горизонтальный поиск, диагональный поиск, поиск по спирали
(одновременно), поиск по спирали (последовательно). Разберем несколько примеров
поиска и приведем их блок-схемы. [5]


Вертикальный поиск. Один из простых поисков, но в то же время
эффективных. Алгоритм вертикального поиска заключается в следующем: агент, всегда
движется только вертикально, изначально он движется вниз, проверяя свободно ли
нижняя клетка (нет ли там болота, ямы, горы, чудовища, золота или стены
лабиринта), при нахождении золота эксперимент заканчивается, агент движется
вниз до тех пор пока не встретит одно из препятствий, если он не сможет сходить
в нижнею клетку, то агент свернет влево или вправо и продолжит движение вниз,
если же и после поворота движение вниз не возможно, то агент начнет двигаться
вверх, до следующего препятствия, после которого он опять свернет и начнет
двигаться вниз. Пример блок-схемы алгоритма вертикального поиска представлен на
рисунке 4.1


Горизонтальный поиск. Данный поиск почти идентичен вертикальному поиску,
различия лишь в том, что агент движется уже по горизонтали.









Рисунок 4.1 - Алгоритм вертикального поиска




Рисунок 4.2 - Алгоритм горизонтального поиска


Диагональный поиск. По сравнению с вертикальным и горизонтальным поиском
диагональный поиск занимает больше времени. Суть поиска заключается в том, что
он идет по диагонали, если это возможно, то есть агент всегда старается
двигаться по диагонали или ищет подходящее место откуда он сможет начать
двигаться по диагонали. Алгоритм диагональное поиска заключается в следующем.
Агент начинает двигаться по диагонали, в сторону которую это возможно, в
приоритете начать движение в правую сторону, но если это будет невозможно, то
движение начнётся в лево. Само движение на поле представляет собой движение
вперед-вверх-вперед или же вперед-вниз-вперед, в зависимости от того куда
направляется агент в верх поля или же спускается вниз поля. Благодаря
диагональному поиску большинство препятствий агент обходит, используя этот
поиск, но если же препятствие появилось на пути в виде болота, горы, чудовища,
ямы, границ лабиринта, то агент начинает двигаться в противоположном
направлении в зависимости от того куда он шел на поиски. Если движение по
диагонали становится невозможно, то агент начинает двигаться, используя метод
горизонтального поиска, до тех пор, пока не появится возможность начать
движение опять по диагонали или же агент не найдет золото. Пример блок-схемы
алгоритма диагонального поиска представлен на рисунке 4.3









Рисунок 4.3 - Алгоритм диагонального поиска


По спирали (одновременно). Используя метод поиска по спирали
(одновременно), агент движется по спирали и ищет золото, но полнота этого поиска
открывается тогда, когда мы используем больше чем 1 агента при поиске золота в
лабиринте. Два агента одновременно движутся по лабиринту используя метод поиска
по спирали, в этом и заключается главная особенность данного вида поиска.
Начинает свое движение агент, используя поиск по спирали, всегда с движения
вверх, если же по какой-либо причине он не может двигаться вверх, то он начнет
движение влево, если же и в лево он не сможет сходить, то пойдет вниз. Движение
агента продолжается либо до первого препятствия в виде болота, чудовища, ямы
или до границы лабиринта, далее агент продолжает движение в другую сторону,
рисуя тем самым спираль, агент движется от внешнего круга спирали к ее центру,
дойдя до центра и не найдя золото, агент возвращается на изначальную позицию и
начинает движение в другую сторону, по тому же алгоритму какой он уже
использовал. Но главная идея этого поиска заключается в одновременном поиске
золота агентами. Поэтому в независимости, сколько агентов у нас будет на поле,
все они будут использовать один и тот же метод, поиск по спирали, они поделят
между собой территорию лабиринта и будут одновременно двигаться в поисках
золото, не пересекаясь друг с другом. Пример блок-схемы алгоритма поиска по
спирали (одновременно), представлен на рисунке 4.4




Рисунок 4.4 - Алгоритм поиска по спирали (одновременно)




По спирали (последовательно). Данный метод поиска использует тот же самый
алгоритм, что и поиск по спирали. Агент начинает свое движение вверх, если же
оно невозможно, то он идет влево, если же и влево нет возможности сходить, то
агент начинает движение вниз лабиринта, идя до границы лабиринта и поворачивая,
тем самым рисуя своими движениями спираль, от внешнего круга к центру спирали.
Если по пути агенту встретятся препятствия в виде болота, ям, чудовища или гор,
то агент обойдет препятствие и продолжит движение в том направлении в каком он
шел, если это будет возможность. Главная особенность этого вида поиска и его главное
отличие от поиска по спирали (одновременно) в том, что изначально движется
только один агент и при его попадании в тупик, он останавливается и начинает
двигаться второй агент и так далее пока золото не будет найдено или все агенты
не окажутся в тупиках.




Рисунок 4.5 - Алгоритм поиска по спирали (последовательно)


Так же не стоит забывать о функции, которую могут использовать агенты, а
именно личная база знаний агентов. Эта функция позволяет агентам знать лишь о
своем перемещении по лабиринту, и для дальнейшего движения им необходимо
работать сообща. При движении агент всегда говорит о своих намерениях сходить в
ту или иную ячейку, если в ней уже побывал кто-то из агентов, то ему ответят,
что в данной ячейке уже были и тогда агент пойдет в другую ячейку. Используя
эту функцию каждый, агент является отдельным элементом со своим разумом, а не
частью целого, как это будет при общей базе знаний. Пример блок-схемы алгоритма
поиска с личной базой знаний, представлен на рисунке 4.6




Рисунок 4.6 - Алгоритм поиска с личной базой знаний


Для программы агентно-ориентированного программирования “Лабиринт
агентов” было разработано несколько модулей, которые не только влияют на
проведение экспериментов, но также преображают программу, меняя ее интерфейс на
более удобный пользователю.


Специальный объект на поле, при попадании в который агент останавливается
на короткий промежуток времени и потом опять продолжает движение. Было решено
ввести всего 2 болота на поле из-за того, что при большой концентрации болота
на поле агент просто не сможет нормально искать золото, а больше всего простоит
в болоте, это не только повредит проводимому нами эксперименту, но также и
увеличит количество времени его проведения. Ниже представлено описание кода
болота. [10]


beginnot(mas[x-1,y] div 102=1)
then[x-1,y]:=mas[x-1,y]+1000;not(mas[x+1,y] div 102=1) then[x+1,y]:=mas[x+1,y]+1000;not(mas[x,y-1]
div 102=1) then[x,y-1]:=mas[x,y-1]+1000;not(mas[x,y+1] div 102=1)
then[x,y+1]:=mas[x,y+1]+1000;


Данный код создает новую процедуру болото. Данная процедура создает
вокруг ячейки с болотом (клетки с буквой Б) создает обозначение слякоти, то
есть расставляет букву “с”.


for i:=1 to
Похожие работы на - Модернизация программы агентно-ориентированного моделирования 'Лабиринт агентов' Дипломная (ВКР). Информационное обеспечение, программирование.
Реферат: Внутренняя структура протона и новый способ получения энергии. Скачать бесплатно и без регистрации
Реферат: История болезни
Реферат: Rape Essay Research Paper RapeSeek safe grounds
Сочинение По Литературе 6 Класс Дубровский Краткое
Реферат: Использование объектов интеллектуальной собственности в рекламе
Методика Преподавания Курсовая Работа
Отличие Монографии Диссертации
Реферат по теме Аналитическая философия
Реферат по теме Особенности художественной речи сатирического произведения на примере сказки М.Е. Салтыкова-Щедрина "Повесть о том, как один мужик двух генералов прокормил"
Миниатюрное Сочинение Про Осень
Реферат: Инвестиционный менеджмент 5
Сочинение Мое Отношение К Гриневу
Хузин У Окна Картина Сочинение 6 Класс
Реферат На Тему Грибоедов А.С.
Реферат: Метод анализа иерархий Т. Саати
Сочинение Каким Я Представляю Автора Слова
Реферат по теме Сущность лидерства и стили руководства
Контрольная Работа 2 Класс Гармония
Патентная Стратегия Реферат
Клуб Эссе Ростов
Реферат: Оценка положений мерчандайзинга применительно к открытому акционерному обществу «N-ский ликеро-водочный завод» 12
Реферат: Выдающийся портрет античности. Сократ
Реферат: Edenic Myth In The Great Gatsb Essay

Report Page