Начните с данного графика, представьте, что закрасили узлы синим цветом и назовите его G blue .Он имеет узлы, включая s blue и t blue , и ненаправленные ребра, такие как blue <-> b blue .
Сделайте копию графика, закрасьте его узлы зеленым и назовите его G зеленый .
Теперь заново соедините все ребра, чтобы синий <-> b синий и зеленый <-> b зеленый (имеющие одинаковый вес) становятся синим <-> b зеленый и зеленый <-> b синий (с одинаковыми весами).
В этом комбинированном графике каждое ребро находится междусиний узел и зеленый узел, поэтому каждый путь чередуется между синим и зеленым.Таким образом, каждый путь из s blue , имеющий четное число шагов, заканчивается зеленым узлом.
Теперь на этом комбинированном графике ищите путь минимального веса из s синий до t зеленый .
Наконец, удалите индексы.