Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
шпоры мат.мод.doc
Скачиваний:
4
Добавлен:
24.04.2019
Размер:
206.85 Кб
Скачать

35. Приведите примеры задач нахождения кратчайших путей в графе. Перечислите алгоритмы нахождения кратчайших путей в графе.

Присвоим каждой дуге имя. Приставим себе, что эта сеть состоит из труд, по которым течет вода и известна пропускная способность этих труб.

1.Рассмотрим путь (a->b) соединяющий точку S и T. По этому пути в T попадает две единицы продукции, при этом труба b будет насыщена. Вычитает из показателей труб число 2, тогда получим следующую сеть. 2. Далее видно, что по дуге (k,f) в T попадает –1 единица продукции и по пути (c,p,f) попадает –2 единицы продукции, по пути (a,m,f) –1 единица продукции. Вычитая соответствующие значения получаем следующий граф. Если рассмотреть последнюю сеть, то видно, что насыщены трубы b и f – и это означает, что в точку T попадает 2+4=6 единиц продукции, т.е. пропускная способность этой сети или максимальный поток из S и T =6.

Если рассмотреть простой разрез (b;f), то суммарная пропускная способность этих дуг =6, и равна максимальной величине потока из S и Т.По теореме Форда-Фанкерсона максимальная величина потока через сеть равна минимальному из всех пропускных способностей её простых разрезов. Значит минимальный разрез нашей сети состоит из дуг b и f.

36. Изложите алгоритм Дейкстры для нахождения кратчайших путей в графе.

Алгоритм Дейкстры для нахождения кратчайших путей в графе Разработан для нахождения кратчайшего пути между заданным исходным узлом и любым другим узлом сети. В процессе перехода от узла i к узлу j используется процедура пометки рёбер. Обозначим ui кратчайшее расстояние, от исходного узла до узла i, через dij – длинной ребра (i,j). Тогда для узла j определим метку [uj;i]=[ui+dij,i]; dij>=0. Метки в алгоритме Дейкстры могут быть двух типов: временными и постоянными. Временные метки могут изменяться, если будет найден более короткий путь к данному узлу. Когда станет очевидно, что не существу ет более короткого пути от исходного узла к данному, статус временной метки изменится на постоянную.

37. Изложите вычислительную схему алгоритма Дейкстры для нахождения кратчайших путей в графе.

Шаг 0. Исходному узлу присваивается метка [0:-]:i=1;

Шаг i. а) вычисляются временные метка [ui+dij;i} для всех узлов j которых можно достич непосредственно из узла I и которые не имеют постоянных меток, если узел j узел имеет метку [uj;k] полученный от другого узла k и если выполняется условие ui+dij<uj, то метки [uj;k] заменяется на метку [ui+dij;i].

б)если все узлы имеют постоянные метки процесс вычисления заканчивается. В противном случае выбирается метка: [ur;S] с наименьшим значение расстояния ui среди всех временных меток,если несколько-произволен

38. Изложите алгоритм Флойда для нахождения кратчайших путей в графе.

Шаг 0. Определяем начальную матрицу расстояний D0 и матрицу последовательности узлов S0. диагональные элементы обеих матриц помечаются знаком «-», так как эти элементы в вычислениях не участвуют. Полагаем k =1птак как эти элементы в вычислениях не участвуют. Основной шаг k:

Задаем строку k и столбец k как ведущую строку и ведущий столбец. Рассматриваем возможность применения треугольного оператора ко всем элементам dij матрицы Dk-1. если выполняется неравенство ,то выполняются следующие действия:а) создаем матрицу Dk путем замены в матрице Dk-1 элемента dij на сумму ;б) создаем матрицу Sk путем замены элемента sj на k.

1)После реализации n шагов алгоритма можно определить кратчайший путь по матрицам Dn и Sn между узлами i и j, пользуясь следующими правилами: Расстояние между i и j равно dij в матрице Dn.2)Промежуточные узлы пути от узла i к узлу j определяем по матрице Sn.

Пусть sij = k, тогда имеем путь i → j → k.

Если далее sik = k и skj = k, тогда считаем, что весь путь определен, так как найдены все промежуточные узлы. В противном случае повторяем описанную процедуру для путей от узла i к узлу j и от узла k к узлу j.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]