Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Кратчайшие пути.
Пусть G(V, E) - конечный неориентированный граф и пусть заданы две его вершины s и t. Требуется найти кратчайший путь (длина пути равна числу входящих в него ребер) от вершины s к вершине t. Сначала мы опишем алгоритм, который находит длину кратчайшего пути. Алгоритм ДЛИНА 1) Помечаем вершину s пометкой 0. Полагаем i = 0. 2) Находим все непомеченные вершины, связанные ребром с вершинами, имеющими оплетку i- Если таких вершин нет, t недостижимо из s, стоп. Если такие вершины есть, помечаем их i+1. 3) Если вершина t помечена, переходим к 4) Если нет, то увеличиваем i на 1 и повторяем шаг 2). 4)Длина кратчайшего пути от s к t равна i+1, стоп. Корректность алгоритма следует из следующего утверждения. Факт1. Вершина v графа G(V, E) помечается в алгоритме пометкой Доказательство индукцией по i. Ясно, что при i=0, Сделаем к данному алгоритму дополнительные замечания. 1.
|