Методы построения и обхода лабиринта | Статья в журнале «Молодой ученый»

Отправьте статью сегодня! Журнал выйдет 11 мая, печатный экземпляр отправим 15 мая.

Опубликовать статью в журнале

Библиографическое описание:

Дагаев, А. В. Методы построения и обхода лабиринта / А. В. Дагаев. — Текст : непосредственный // Молодой ученый. — 2022. — № 47.1 (442.1). — С. 54-57. — URL: https://moluch.ru/archive/442/96765/ (дата обращения: 30.04.2024).



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

Ключевые слова : лабиринт, алгоритм построения, алгоритм обхода.

The range of tasks in the field of telecommunications and data analysis is expanding all the time. New methods for analyzing paths in a network and complex network structures are emerging, new methods and algorithms for building and analyzing networks are emerging, one of them is the use of labyrinths. Labyrinth construction and traversal methods can be used to model network structures, find optimal paths, and simplify the analysis of the state of complex structures. The article presents the results of research in this area.

Keywords : mazes, construction algorithm, traversal algorithm.

Сегодня применение алгоритмов построения и прохождения лабиринтов улучшает оптимизацию и логику построения различных технических и математических объектов. Известен ряд литературных источников, посвященных данной тематике [1–7], но вопросам скорости обработки лабиринтов уделяется мало внимания. Применение лабиринтов в последнее время сказывается в разных технических областях. Они используются для трассировки печатных плат, в игровой индустрии — при создании динамических маршрутов и путей движения игроков, в телекоммуникациях для нахождения самых быстрых и самых коротких путей прохождения сетей, в горнодобывающей промышленности для оптимального построения шахт и др. Применение лабиринтов бывает и прикладное, например для обучения систем искусственного интеллекта [8]. Также применение методов и алгоритмов построения и прохождения лабиринтов может использоваться для построения оптимальной структуры сети, как сточки зрения минимальной длины, так и с точки зрения минимального количества энергии, требуемой для передачи данных. При анализе сетей также возможно использование многокритериального анализа. Удобство применения лабиринтов в различных областях обусловлено возможностью их бинаризации, представления в виде одного или нескольких массивов данных, с возможностью выполнения их последующей обработки и применении к ним методов оптимизации.

Рассмотрим характеристики лабиринтов подробнее. При создании лабиринтов требуется применять некоторые общие правила, такие как: отсутствие замкнутых контуров или петель, отсутствие изолированных от других частей лабиринта областей, наличие определенное количество входов и выходов для неидеальных лабиринтов. Для создания идеальных лабиринтов существует несколько типов алгоритмов. Первый основан на методике выращивания идеального лабиринта в качестве дерева, второй основан на удалении клеток для построения лабиринта, третий на основе клеточных автоматов. Тупики являются необходимым показателем сложности прохождения лабиринта. При росте количества тупиков их длина будет уменьшаться. Желательно, чтобы тупики были длинные и их было как можно больше, но с ростом количества тупиков их количество будет уменьшаться. Поэтому, существуют оптимальные границы количества ячеек тупиков для лабиринтов, которые могут варьироваться от поставленной задачи, например, от 10 до 30 процентов общего числа ячеек лабиринта. Было проведено тестирование более десяти алгоритмов построения лабиринтов. С точки зрения количества созданных тупиков, самыми лучшими алгоритмами стали алгоритм растущего дерева и алгоритм Прима.

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

Дополнительной характеристикой при построении лабиринтов является объем памяти необходимой для работы алгоритма. Для работы качественных алгоритмов требуются битовые карты лабиринтов или только одна ячейка, как в алгоритме двоичного дерева. Часть алгоритмов использует память пропорционально длине массива, например Эллера; другие имеют кввадратичную зависимость, например, алгоритм растущего дерева или Краскала. При рекурсивном делении используется память размером длины строки, для подобных алгоритмов можно применять стек. Необходимым параметром для лабиринтов является извилистость или процент ячеек, по которым проходит путь решения. Чем больше извилистость, тем сложнее лабиринт, так наибольшую извилистость имеют одномаршрутные лабиринты, а наименьшую — алгоритмы двоичного дерева, когда решение просто проходит насквозь лабиринт.

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

Результаты исследований

Рассмотрим применяемые в работе алгоритмы подробнее. Были исследованы более двадцати разных алгоритмов генерации и прохождения лабиринтов. На рис. 1–2 показаны результаты экспериментов по поиску путей в идеальных и неидеальных лабиринтах, а также на рис.3 результаты генерации идеальных лабиринтов.

На рис. 1 показаны графики работы алгоритмов, сверху вниз: Евклида, А* с манхеттенским расстоянием, А* с расстоянием Чебышева, поиск в ширину.

Поиск путей в идеальных лабиринтах

Рис. 1. Поиск путей в идеальных лабиринтах

На рис. 2 показаны графики работы алгоритмов, сверху вниз: Дейкстры, А* с манхэттенским расстоянием, А* с расстоянием Чебышева, поиск в ширину.

Поиск путей в неидеальных лабиринтах

Рис. 2. Поиск путей в неидеальных лабиринтах

На рис. 3 показаны графики работы алгоритмов, сверху вниз: Прима (модифицированный) [7], бинарное дерево [2], Backtracking [1], рекурсивное деление [3], Sidewinder. Как видно из графиков, скорость генерации и прохождения лабиринтов имеет одинаковую размерность, что обусловлено схожестью эвристических алгоритмов. Часть алгоритмов ввиду их небольшой скорости работы не были представлены на рис. 1–3.

Генерация идеальных лабиринтов

Рис. 3. Генерация идеальных лабиринтов

Выводы

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

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

Литература:

  1. Backtracking algorithm. — Текст: электронный / J. Buck // The Buckblog: [сайт]. — URL: https://weblog.jamisbuck.org/2010/12/27/maze-generation-recursive-backtracking (дата обращения: 01.11.2022).
  2. Binary Tree algorithm. — Текст: электронный / J. Buck // The Buckblog: [сайт]. — URL: https://weblog.jamisbuck.org/2011/2/1/maze-generation-binary-tree-algorithm (дата обращения: 01.11.2022).
  3. Division algorithm. — Текст: электронный / J. Buck // The Buckblog: [сайт]. — URL: https://weblog.jamisbuck.org/2011/1/12/maze-generation-recursive-division-algorithm (дата обращения: 01.11.2022).
  4. Eller's algorithm. — Текст: электронный / J. Buck // The Buckblog: [сайт]. — URL: https://weblog.jamisbuck.org/2010/12/29/maze-generation-eller-s-algorithm (дата обращения: 01.11.2022).
  5. Growing Tree algorithm. — Текст: электронный / J. Buck // The Buckblog: [сайт]. — URL: https://weblog.jamisbuck.org/2011/1/27/maze-generation-growing-tree-algorithm (дата обращения: 01.11.2022).
  6. Kruskal's algorithm. — Текст: электронный / J. Buck // The Buckblog: [сайт]. — URL: https://weblog.jamisbuck.org/2011/1/3/maze-generation-kruskal-s-algorithm (дата обращения: 01.11.2022).
  7. Prim's algorithm. — Текст: электронный / J. Buck // The Buckblog: [сайт]. — URL: https://weblog.jamisbuck.org/2011/1/10/maze-generation-prim-s-algorithm (дата обращения: 01.11.2022).
  8. Mazes creation for further study of swarm intelligence / A. V. Dagaev, A. A. Sorokin, R. A. Kovalenko, E. A. Yakovleva // IOP Conferences Series: Materials Science and Engineering. — 2020. — Vol. 919. — 52058.
Основные термины (генерируются автоматически): лабиринт, алгоритм, прохождение лабиринтов, алгоритм построения, двоичное дерево, график работы алгоритмов, поиск путей, рекурсивное деление, алгоритм построения лабиринтов, анализ сетей.


Ключевые слова

лабиринт, алгоритм построения, алгоритм обхода

Похожие статьи

Алгоритмы нахождения пути, их сравнение и визуализация на...

Если представить работу алгоритма на графе, подобном по структуре дереву (см. рис. 1), то получим следующее: Рис. 1. Работа алгоритма «Поиск в ширину». Добавление в очередь на проверку вершины A.

Алгоритм поиска в ширину с прерыванием в случае нахождения конечной вершины на языке

Рассмотрим работу алгоритма «А звезда» на графе (см. рис. 3)

Реализация алгоритма поиска ближайших объектов с помощью...

 В данной статье разработан алгоритм поиска ближайших объектов с помощью вспомогательной структуры, основанной на K-D tree, а также рассматривается приложение на языке Java, реализующее данный алгоритм. Ключевые слова: K-D tree, поиск объектов.

Сравнительный анализ алгоритмов нейронной сети и деревьев...

Методы построения таких моделей принято относить к области искусственного интеллекта.

В данной статье производится сравнительный анализ двух алгоритмов (нейронной сети и

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

Построение карты диспаратности по неоткалиброванной паре...

Существует множество алгоритмов построения трехмерных моделей, но все они

Поэтому поиск парных точек для построения карты смещений осуществляется по одной горизонтали.

Для поиска смещений рассматривался алгоритм Semi — Global Matching [5]. Алгоритм

Схема работы алгоритма RANSAC [4] заключается в циклическом повторении поиска.

Методические рекомендации по изучению элементов теории...

Закрепить изученный материал можно выполнением заданий на построение деревьев и

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

Также для общего развития учащихся, можно ввести задачи на прохождение лабиринтов.

Разработка алгоритма построения ультразвуковой...

Цель работы. Разработать последовательный алгоритм построения ультразвуковой

Рис. 2. Преломление на границе. Итак, для построения матрицы в осях (x, t), составим

4) Для каждого из отраженных и преломленных лучей рекурсивно повторяются шаги 2–3 до

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

Алгоритмы оптимальной структуры компьютерной сети

Рассмотрен генетический алгоритм. Целью статьи является анализ данного алгоритма и

Эффективность работы представленного генетического алгоритма зависит от правильного

2015г 213–215 стр. Филимонов А. Построение мультисервисных сетей Ethernet [Текст].

генетический алгоритм сети, метод моделирования сети, оптимальная структура сети...

Сравнение работы алгоритмов кластеризации | Статья в журнале...

Проекты. Меню. Поиск.

Нейронная сеть учится на полностью готовых, размеченных человеком данных [1].

Для демонстрации работы алгоритмов сгенерировано несколько разных наборов данных (Рис.1). Чтобы провести сравнение трех алгоритмов будем

Рис. 1. Распределение наборов данных. Рассмотрим три алгоритма кластеризации

Автоматизация проектирования маршрутов обхода геометрических...

И первый, и второй вариант, в чистом виде, не гарантируют эффективную работу алгоритма.

, где - длина наименьшего пути (global_best_tour), найденного со времени начала поиска.

Рис.3. Изменение длины маршрута в зависимости от количества итераций алгоритма.

Предлагаемый алгоритм позволяет эффективно решать задачи построения маршрутов...

Похожие статьи

Алгоритмы нахождения пути, их сравнение и визуализация на...

Если представить работу алгоритма на графе, подобном по структуре дереву (см. рис. 1), то получим следующее: Рис. 1. Работа алгоритма «Поиск в ширину». Добавление в очередь на проверку вершины A.

Алгоритм поиска в ширину с прерыванием в случае нахождения конечной вершины на языке

Рассмотрим работу алгоритма «А звезда» на графе (см. рис. 3)

Реализация алгоритма поиска ближайших объектов с помощью...

 В данной статье разработан алгоритм поиска ближайших объектов с помощью вспомогательной структуры, основанной на K-D tree, а также рассматривается приложение на языке Java, реализующее данный алгоритм. Ключевые слова: K-D tree, поиск объектов.

Сравнительный анализ алгоритмов нейронной сети и деревьев...

Методы построения таких моделей принято относить к области искусственного интеллекта.

В данной статье производится сравнительный анализ двух алгоритмов (нейронной сети и

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

Построение карты диспаратности по неоткалиброванной паре...

Существует множество алгоритмов построения трехмерных моделей, но все они

Поэтому поиск парных точек для построения карты смещений осуществляется по одной горизонтали.

Для поиска смещений рассматривался алгоритм Semi — Global Matching [5]. Алгоритм

Схема работы алгоритма RANSAC [4] заключается в циклическом повторении поиска.

Методические рекомендации по изучению элементов теории...

Закрепить изученный материал можно выполнением заданий на построение деревьев и

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

Также для общего развития учащихся, можно ввести задачи на прохождение лабиринтов.

Разработка алгоритма построения ультразвуковой...

Цель работы. Разработать последовательный алгоритм построения ультразвуковой

Рис. 2. Преломление на границе. Итак, для построения матрицы в осях (x, t), составим

4) Для каждого из отраженных и преломленных лучей рекурсивно повторяются шаги 2–3 до

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

Алгоритмы оптимальной структуры компьютерной сети

Рассмотрен генетический алгоритм. Целью статьи является анализ данного алгоритма и

Эффективность работы представленного генетического алгоритма зависит от правильного

2015г 213–215 стр. Филимонов А. Построение мультисервисных сетей Ethernet [Текст].

генетический алгоритм сети, метод моделирования сети, оптимальная структура сети...

Сравнение работы алгоритмов кластеризации | Статья в журнале...

Проекты. Меню. Поиск.

Нейронная сеть учится на полностью готовых, размеченных человеком данных [1].

Для демонстрации работы алгоритмов сгенерировано несколько разных наборов данных (Рис.1). Чтобы провести сравнение трех алгоритмов будем

Рис. 1. Распределение наборов данных. Рассмотрим три алгоритма кластеризации

Автоматизация проектирования маршрутов обхода геометрических...

И первый, и второй вариант, в чистом виде, не гарантируют эффективную работу алгоритма.

, где - длина наименьшего пути (global_best_tour), найденного со времени начала поиска.

Рис.3. Изменение длины маршрута в зависимости от количества итераций алгоритма.

Предлагаемый алгоритм позволяет эффективно решать задачи построения маршрутов...

Задать вопрос