Публикации по теме 'depth-first-search'


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

Поиск в глубину
Что это? Поиск в глубину (DFS) — это алгоритм обхода или поиска древовидных или графовых структур данных. Алгоритм начинается с корневого узла и исследует каждую ветвь, насколько это возможно, перед возвратом. Как ты это делаешь? Три метода DFS: Предзаказ Почтовый заказ Чтобы Главная идея Для всех трех методов: вы посещаете узел вы исследуете всю левую сторону вы исследуете всю правую сторону пройти налево пройти направо Предзаказ Создайте переменную для хранения..

Вопросы по теме 'depth-first-search'

Сохранение информации о пути в алгоритме Крускала
Я сгенерировал минимальное остовное дерево с помощью алгоритма Крускала и хотел знать, как хранить пути. Это мое минимальное остовное дерево Loc1 | Loc2 | Distance 02 | 10 | 2.00 Km 05 | 07 | 5.39 Km 02 | 09 | 5.83 Km...
367 просмотров

Как я могу определить, существует ли путь между всеми вершинами, используя рекурсивный алгоритм поиска в глубину?
Я пытаюсь понять, сильно ли связан график или нет. Чтобы считаться сильно связным, граф должен обладать следующими свойствами: 1) алгоритм DFS объявляет, что все узлы достижимы из начальной вершины 2) Когда все направления ребер меняются местами...
301 просмотров
schedule 30.09.2021

Является ли классический (основанный на рекурсии) поиск в глубину более эффективным с точки зрения памяти, чем DFS на основе стека?
Я смотрел ответы на этот вопрос @AndreyT, и у меня возник вопрос относительно эффективности памяти классической DFS по сравнению с DFS на основе стека. Аргумент состоит в том, что классическая DFS с обратным отслеживанием не может быть создана из...
1479 просмотров

Рекурсивный метод шифрования дерева с использованием dfs
Эта проблема не связана с заданием, хотя это несколько типичная проблема, «похожая на задание», которую я пытаюсь решить другим способом. Я хочу написать метод, который будет рекурсивно проходить через двоичное дерево с использованием алгоритма...
300 просмотров
schedule 28.10.2021

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

Найти все перестановки строки с определенной неизменной позицией
Учитывая Строку слов, скажите «OhMy», оставьте прописную букву фиксированной (неизменной), но мы можем изменить положение строчной буквы. Выведите все возможные перестановки. например. учитывая "OhMy", он должен выводить ["OhMy", "OyMh"] Вот...
226 просмотров

Отмена поиска в глубину или обход предварительного заказа
Допустим, у меня есть полный двоичный график высотой 2, примерно так: 0 1 2 3 4 5 6 где есть ребро от 0 до 1 и от 0 до 2, от 1 до 3 и от 1 до 4, от 2 до 5 и от 2 до 6. Я могу получить узлы в глубине первого...
2179 просмотров

Точка сочленения неориентированного графа
Меняются ли тип и количество точек сочленения при изменении точки входа (корневого узла) для неориентированного графа? Если он меняется, то почему это происходит? Я понимаю, что количество баллов может отличаться, но почему количество баллов...
343 просмотров
schedule 04.10.2021

Поиск в глубину, рекурсия, циклы For и возврат
Я пытаюсь реализовать алгоритм DFS, чтобы выяснить, есть ли путь между узлом start и узлом target . Вот код, который у меня есть: # Depth-first search def find_path2(s, t): s.visited = True if s.data == t.data: return True...
772 просмотров

OutputError: найти самый длинный путь в матрице с заданными ограничениями
Моя матрица: 4 8 7 3 2 5 9 3 6 3 2 5 4 4 1 6 Проблема (катание на лыжах): Каждое число представляет собой высоту этого участка горы. Из каждой области (т. Е. Прямоугольника) в сетке вы можете пойти на север , юг , восток ,...
1605 просмотров

Подсчитать количество достижимых узлов в направленном графике от каждого узла быстрее, чем O (V ^ 2)?
Итак, у меня есть ориентированный график, который может содержать циклы. Мне нужно для каждого узла подсчитать количество узлов, доступных из этого узла, и сохранить это в таблице. Наивный подход заключался бы в использовании DFS с каждого узла, что...
258 просмотров

Что лучше: dfs или bfs для тестирования двудольных на ориентированных графах?
Если я хочу проверить цветность двух тестов / если направленный граф является двудольным, имеет ли значение, использую ли я поиск в ширину или поиск в глубину? Есть ли еще один эффективный с точки зрения временной сложности?
244 просмотров

Сравните глубину первой ветви и границы и алгоритм поиска IDA *
Я хочу сравнить и узнать точные различия между алгоритмами первой ветви и границы глубины и алгоритмами IDA *. Я просматривал Интернет, но не могу найти четких объяснений. Пожалуйста помоги!
92 просмотров

Как выполнить возврат при использовании итеративной DFS, реализованной через стек
Я решал эту проблему Leetcode: https://leetcode.com/problems/word-search/ , и я случайно выбрал итеративную реализацию DFS с циклом while и стеком, но я столкнулся с некоторыми неудобствами при обратном отслеживании, которых я обычно не выполнял бы,...
400 просмотров

Псевдокод и сложность поиска в глубину (DFS) против поиска в ширину (BFS)
Мне нужно разработать псевдокод для алгоритма, который вычисляет количество связных компонентов в графе G = (V, E) с учетом вершин V и ребер E. Я знаю, что могу использовать поиск в глубину или в ширину для вычисления количества подключенных...
146 просмотров

Как заставить алгоритм поиска в глубину Prolog углубиться в дерево? (Применительно к Сокобану)
Я пытаюсь решить загадку Sokoban на Прологе, используя алгоритм поиска в глубину, но Я не могу выполнить глубокий поиск по дереву решений. Я могу исследовать только первый уровень. Все исходники находятся на Github (ссылки на редакцию, когда...
1038 просмотров
schedule 10.03.2022

Определение размера стека в алгоритме итеративного поиска в глубину (DFS)
Я написал итеративную реализацию алгоритма поиска в глубину (DFS) на C ++. На выходе он производит правильный порядок посещения. Алгоритм такой: Инициировать массив посещенных [] с ложными значениями. Вставляем первую вершину в стек....
606 просмотров
schedule 12.03.2022

Пространственная сложность DFS и BFS в графе
Я пытаюсь понять, какова пространственная сложность DFS и BFS на графике. Я понимаю, что пространственная сложность BFS при использовании матрицы смежности будет O(v^2) , где v - количество вершин. Используя список смежности, сложность...
3074 просмотров

Сильно связанные компоненты: алгоритм Косараджу
В алгоритме Косараджу я столкнулся с двумя возможными реализациями: 1) Поиск компонентов сильной связности в обращенном графе в топологическом порядке вершин исходного графа. 2) Поиск компонентов сильной связности исходного графа в...
668 просмотров

Определить связность неориентированного графа
Я наткнулся на эту публикацию некоторое время назад: Лучший алгоритм для определения того, является ли неориентированный граф дерево В нем говорится, что для того, чтобы определить, является ли неориентированный граф деревом, вам просто нужно...
3153 просмотров
schedule 16.04.2022