logo
Методичка по исследованию операций

2.3. Идея решения задачи

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

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

Определение. Любой граф без циклов называется деревом.

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

Дадим индуктивное определение индекса (по рекуррентной схеме). Положим, что на всех дугах (ai, aj) орграфа заданы веса v(ai, aj) и последовательность вершин а0,…, аn. Тогда при прямом ходе:

I(а0) ≡ |S(а0, а0) ≡ 0,

I(а1) ≡ |S(а0, а1) ≡ I(а0) + v(a0, a1) = v(a0, a1),

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

I(ai) ≡ |S(а0, аi) = I(ai1) + v(ai1, ai),

i = 2,…, n;

при обратном ходе:

I(an) ≡ |S(аn, аn) ≡ 0,

I(an1) ≡ |S(аn1, аn) = I(an) + v(аn1, аn) = v(аn1, аn),

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

I(ai) ≡ |S(ai, an) = I(ai+1) + v(ai, ai+1),

i = n – 2,…, 0.

Однако при реализации такой схемы необходимо потребовать выполнения следующего условия: подпуть оптимального пути есть путь оптимальный (это условие не работает, когда проявляется последействие, т.е. когда для I(ai) нет выбора).

Yandex.RTB R-A-252273-3
Yandex.RTB R-A-252273-4