Поиск путей в графе — это нахождение оптимального пути между заданными вершинами графа.
Граф — это набор вершин (точек), которые могут соединяться отрезками прямых или, по-другому, рёбрами. Граф называется связным, если из любой его точки возможно проложить путь по рёбрам до любой другой точки.
Под циклом понимается выбранный маршрут по рёбрам графа, который начинается и заканчивается в одной точке.
Граф носит название взвешенного, кода каждое ребро имеет свой вес, то есть ему поставлено в соответствие числовое значение. Невозможно, чтобы два ребра соединяли одни и те же точки.
Существует много алгоритмов нахождения минимального пути внутри взвешенного связного графа. Самым коротким путём между двумя вершинами графа будет маршрут по рёбрам, при котором суммарный вес рёбер будет минимальным. В качестве примера практического применения графов можно привести вариант, когда нужно переехать из одного города в другой по кратчайшему пути. Существует несколько дорог между городами и каждая имеет свою длину.
На языке графов это задача о самом коротком маршруте, то есть поиске кратчайшего маршрута между точками графа или минимизация суммарного весового показателя рёбер, из которых состоит маршрут. Задача о самом коротком маршруте считается самой важной основополагающей задачей теории графов. В исходном (старом варианте) она звучит как задача о дилижансе. Важность этой задачи видна из её разных практических реализаций. К примеру, в навигаторах, работающих на основе GPS, выполняется нахождение маршрута минимальной длины между двумя перекрёстками. Вершинами графа в этом случае считаются перекрёстки, а рёбрами будут дороги, соединяющие перекрёстки. Когда суммарная длина пути между перекрёстками станет самой маленькой, то это значит, что найден оптимальный путь движения.
Проблема нахождения самого короткого пути на графе существует для случаев ориентированного, неориентированного и смешанного графов. Рассмотрим постановку задачи в наиболее простом варианте для неориентированного графа. При рассмотрении случая ориентированного или смешанного графа, необходимо ещё учесть в каких направлениях расположены рёбра графа.
Две точки (вершины) графа считаются смежными, если у них есть общее ребро, соединяющее их.
Маршрут или путь внутри неориентированного графа является последовательным набором вершин (точек). Существует функция веса, отображающая рёбра с их весами, и неориентированный граф. Тогда минимальным путём из одной вершины в другую будет считаться путь, имеющий минимальную сумму. В случае, когда у всех рёбер одинаковый вес, тогда целью становится минимизация числа рёбер, которые надо пройти по маршруту.
Задача определения минимального пути может быть поставлена в следующих вариантах:
В разных постановочных вариантах, в качестве веса ребра могут фигурировать не только меры длины, но и цена, временные интервалы, ресурсы и так далее. Или иные параметры, которые могут быть связаны с преодолением всех рёбер пути. Это означает, что задача может быть использована в самых разных научных сферах (информатике, экономике, географии и других). Но бывают случаи, когда при решении задачи о минимальном маршруте, требуется учесть различные ограничивающие факторы.
При их учёте, есть вероятность существенного усложнения задачи, например:
Так как есть много разных постановок этой задачи, то, соответственно, существуют различные алгоритмы нахождения самого короткого маршрута на графе: