Изменения

Перейти к: навигация, поиск

Обход в ширину

10 байт добавлено, 06:39, 1 ноября 2011
Нет описания правки
Алгоритм поиска в ширину в невзвешенном графе находит оптимальные расстояния до всех достижимых вершин.
|proof=
Допустим, что это не так. Выберем из вершин, для которых найдено неоптимальное расстояние от <tex> s </tex> ту, длина кратчайшего пути найденного расстояния до которой минимальна. Пусть это вершина <tex> u </tex>, и она имеет своим предком в дереве обхода в ширину <tex> v </tex>, а предок в оптимальном пути до <tex> v </tex> — вершина <tex> w </tex>. Расстояние до вершин <tex> v </tex> и <tex> w </tex> найдено корректно, путь через <tex> w </tex> оптимальный, а через <tex> v </tex> — нет, поэтому <tex> d[w] < d[v] </tex>. Из ранее доказанной леммы следует, что в этом случае вершина <tex> w </tex> попала в очередь и была обработана раньше, чем <tex> v </tex>. Но она соединена с <tex> u </tex>, значит, <tex> v </tex> не может быть предком <tex> u </tex> в дереве обхода в ширину, мы пришли к противоречию, следовательно найденные расстояния до всех вершин оптимальны.
}}
Анонимный участник

Навигация