Поиск в ширину — Википедия
Поиск в ширину — ВикипедияПоиск в ширину — Википедия
Рады представить вашему вниманию магазин, который уже удивил своим качеством!
И продолжаем радовать всех!)
Мы - это надежное качество клада, это товар высшей пробы, это дружелюбный оператор!
Такого как у нас не найдете нигде!
Наш оператор всегда на связи, заходите к нам и убедитесь в этом сами!
Наши контакты:
Telegram:
ВНИМАНИЕ!!! В Телеграмм переходить только по ссылке, в поиске много фейков!
Обход в ширину Поиск в ширину, англ. BFS , Breadth-first search — один из простейших алгоритмов обхода графа , являющийся основой для многих важных алгоритмов для работы с графами. Пусть задан невзвешенный ориентированный граф , в котором выделена исходная вершина. Требуется найти длину кратчайшего пути если таковой имеется от одной заданной вершины до другой. Частным случаем указанного графа является невзвешенный неориентированный граф, то есть граф, в котором для каждого ребра найдется обратное, соединяющее те же вершины в другом направлении. Для алгоритма нам потребуются очередь , которая сначала содержит только , и множество посещенных вершин , которое изначально тоже содержит только. На каждом шаге алгоритм вынимает из начала очереди вершину, рассматривает все исходящие из нее ребра и добавляет все связанные с ней непосещенные вершины в и в конец очереди. Если очередь пуста, то алгоритм завершает работу. Поиск в ширину также может построить дерево поиска в ширину. Изначально оно состоит из одного корня. Когда мы добавляем непосещенную вершину в очередь, то добавляем ее и ребро, по которому мы до нее дошли, в дерево. Поскольку каждая вершина может быть посещена не более одного раза, она имеет не более одного родителя. После окончания работы алгоритма для каждой достижимой из вершины путь в дереве поиска в ширину соответствует кратчайшему пути от до в. Также можно для каждой вершины считать длину этого пути, равную. Можно считать, что для непосещенных вершин эта длина бесконечно велика. Тогда на каждом шаге длина пути до равна , если посещена и в противном случае. Отсюда следует, что если на каждом шаге обновлять длины путей, то информация о множестве является избыточной, и его можно не хранить. Оценим время работы для входного графа , где множество ребер представлено списком смежности. В очередь добавляются только непосещенные вершины, поэтому каждая вершина посещается не более одного раза. Операции внесения в очередь и удаления из нее требуют времени, так что общее время работы с очередью составляет операций. Для каждой вершины рассматривается не более ребер, инцидентных ей. Так как , то время, используемое на работу с ребрами, составляет. Поэтому общее время работы алгоритма поиска в ширину —. Допустим, что это не так. Выберем из вершин, для которых кратчайшие пути от найдены некорректно, ту, настоящее расстояние до которой минимально. Пусть это вершина , и она имеет своим предком в дереве обхода в ширину , а предок в кратчайшем пути до — вершина. Так как — предок в кратчайшем пути, то , и расстояние до w найдено верно,. Так как — предок в дереве обхода в ширину, то. Если требуется найти расстояние лишь между двумя вершинами, из функции можно выйти, как только будет установлено значение. Еще одна оптимизация может быть проведена при помощи метода meet-in-the-middle. Пусть в графе разрешены ребра веса и , необходимо найти кратчайший путь между двумя вершинами. Для решения данной задачи модифицируем приведенный выше алгоритм следующим образом: Соответственно релаксируем расстояние до вершины. Таким образом, в начале дека всегда будет вершина, расстояние до которой меньше либо равно расстоянию до остальных вершин дека, и инвариант расположения элементов в деке в порядке неубывания сохраняется. Значит, алгоритм корректен на том же основании, что и обычный BFS. Очевидно, что каждая вершина войдет в дек не более двух раз, значит, асимптотика у данного алгоритма та же, что и у обычного BFS. Пусть в графе разрешены ребра целочисленного веса из отрезка , необходимо найти кратчайший путь между двумя вершинами. Представим ребро веса как последовательность ребер где — новые вершины. Применим данную операцию ко всем ребрам графа. Получим граф, состоящий в худшем случае из ребер и вершин. Для нахождения кратчайшего пути следует запустить BFS на новом графе. Данный алгоритм будет иметь асимптотику. В очереди поиска в ширину расстояние вершин до монотонно неубывает. Алгоритм поиска в ширину в невзвешенном графе находит длины кратчайших путей до всех достижимых вершин. Алгоритмы и структуры данных Кратчайшие пути в графах. Пространства имён Статья Обсуждение. Просмотры Чтение Правка История. Последнее изменение этой страницы: Политика конфиденциальности Описание Викиконспекты Отказ от ответственности. Содержание 1 Описание алгоритма 2 Анализ времени работы 3 Корректность 4 Реализация 5 Вариации алгоритма 5. Докажем это утверждение индукцией по числу выполненных алгоритмом шагов. Тогда на -ом шаге мы извлечем из очереди одну вершину и добавим в нее все непосещенные вершин , связанные с ней; расстояние до них, очевидно, будет равно. У нас останется возможно, вершин с расстоянием и вершин с расстоянием , что соответствует нашему инварианту. Расстояние до найдено некорректно, поэтому. Подставляя сюда два последних равенства, получаем , то есть,. Из ранее доказанной леммы следует, что в этом случае вершина попала в очередь и была обработана раньше, чем. Но она соединена с , значит, не может быть предком в дереве обхода в ширину, мы пришли к противоречию, следовательно, найденные расстояния до всех вершин являются кратчайшими.
Обход в ширину
Купить закладки скорость a-PVP в Сосенском
Поиск в ширину
traduire de
Поиск В Ширину — Википедия
Обход в ширину
Обход в ширину
traduire de
Купить закладки экстази в Ульяновске
Поиск В Ширину — Википедия
Поиск В Ширину — Википедия
Купить закладки MDMA в Цимлянске