logo search
discrete_math1

10. Экстремальные задачи теории графов: задача о кратчайшем пути, алгоритм Дейкстры.

Определение. Графом G называется пара (V, E), где – непустое множество вершин графа, а– множество ребер графа, причем каждое ребро – это неупорядоченная пара различных вершин.

Определение. Если задача состоит в том, чтобы найти экстремум (максимум или минимум) определенной функции от этих значений, то её принято называть экстремальной задачей.

Задача о кратчайшем пути - поиск кратчайшего пути между двумя вершинами в предположении, что каждое ребро графа имеет определенную длину. Например, пусть имеется сеть до­рог, соединяющих несколько населенных пунктов. Часто возникает задача найти такой путь для перевозки груза из пункта А в пункт В через другие промежуточные пункты, чтобы суммарная длина дорог, составляющих этот путь, была минимальна. Иногда требуется, чтобы такой путь обеспечивал минимальное время или минимальные затраты на перевозку груза из А в В. Всё это разные варианты задачи о крат­чайшем пути. Схема алгоритма Дейкстры для решения задачи о кратчайшем пути такова:

  1. найти вершину и1, ближайшую к вершине и0 (выбирается кратчайшее ребро, инцидентное вершине и0);

  2. пусть уже найдены k самых близких к и0 вершин и1, и2,…, иk и известны величины d(и1), d(и2),…, d(иk) – их удаленности от вершины и0 (причем d(и1) ≤ d(и2) ≤ … ≤ d(иk)); тогда для каждой вершины и из множества V \{и0, и1, и2,…, иk} вычислить параметр D(и), задаваемый равенством D(и) = min{d(иi) + l (ui, u)},

  3. где минимум берется по i = 0, 1, 2,…, k, а l (ui, u) – длина ребра [ui, u];

  4. следующая вершина иk+1 – ближайшая к и0 среди всех вершин из множества V \{и0, и1, и2,…, иk} – находится из условия D(иk+1) = min{D(и)}, где минимум ищется по всем вершинам и из множества V \{и0, и1, и2,…, иk};

  5. положить d(иk+1) = D(иk+1).

Шаги 2 – 4 повторяются в цикле по k = 1, 2, 3,…, n – 1.