Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
IO итог.docx
Скачиваний:
9
Добавлен:
28.10.2018
Размер:
2.32 Mб
Скачать

64)Применим ли алгоритм Дейкстры поиска кратчайшего пути в

случае отрицательных длин ребер? Ответ обоснуйте.

Алгори́тм Де́йкстры (Dijkstra’s algorithm) — алгоритм на графах, изобретённый нидерландским ученым Э. Дейкстрой в 1959 году. Находит кратчайшее расстояние от одной из вершин графа до всех остальных. Алгоритм работает только для графов без рёбер отрицательного веса.

2

1

3

2

3

-2

Алгоритм Дейкстры:

d(1)=0 => y=1; d(2)=∞, d(3)=∞;

d(2)=min {d(2); d(1)+d(1,2)}=min{∞; 0+3}=3

d(3)=min {d(3); d(1)+d(1,3)}=min{∞; 0+2}=2

A(3)=2-min => d(3)=2 – окончательная, но это не правильно.

Рассмотрим другой способ решения задачи:

Пересчет оценок производится по всем вершинам. Если оценка, ранее объявленная окончательной, получает меньшее значение, то окончательные оценки уменьшаются.

Условие окончания: все вершины имеют окончательные оценки и не меняются при очередном пересчете.

  1. d(1)=0 => d(2)=∞, d(3)=∞; y=1 – окончательная.

  2. d(2)=min {d(2); d(1)+d(1,2)}=3

  3. d(3)=2 – min – окончательная.

  1. d(1)=min {d(1); d(3)+d(3,1)}= min{0;2+∞}=0

d(2)=min {d(2); d(3)+d(3,2)}=3

получаем:

d(3)=2 - окончательная;

d(1)=0 - окончательная;

d(2)=3 => y=2

  1. d(1)=min {d(1); d(2)+d(2,1)}=min{0;3+∞}=0

d(3)=min {d(3); d(2)+d(2,3)}= min{2;3+(-2)}=1 – окончательная.

Итого:

d(1)=0; d(2)=3; d(3)=1.

y=3 – из него нет путей, значит оценки не изменятся.

Окончательный ответ: минимальный путь из 1 в 3 это {(1,2),(2,3)}.

65.Постановка задачи о максимальном потоке в сети.

Перед тем, как перейти непосредственно к задаче о максимальном потоке, рассмотрим сопутствующие определения.

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

В графе выделены две вершины: источник s и сток t. граф связен, то есть

Пусть дана сеть, пропускная способность которой задается функцией c.

Потоком в сети G назовем функцию, обладающую следующими свойствами:

  1. Ограничение, связанное с пропускной способностьюдля всех u, v из V.

  2. Кососимметричность для всех u, v из V.

  3. Сохранение потока для всех u, v из V-{s,t}

Величина потока определяется как сумма потоков по всем ребрам выходящим из истока.

Дан ориентированный граф. Будем рассматривать его ка сеть труб, по которым некоторое вещество движется от источника к стоку. Веса на ребрах – пропускная способность трубы.

Задача о максимальном потоке.

Требуется найти максимально возможнуюскорость производства (и потребления) вещества, при которой его еще можно доставить от истока к стоку при данных пропускных способностях труб. Или - для данной сети G с истоком s и стоком t найти поток максимальной величины.

66.Алгоритм Форда-Фалкерсона решения задачи о максимальном потоке в сети. Приведите пример.

  1. Обнуление всехдля данной сети

  2. Поиск - множество узлов , в который можно будет перейти из узла по ребру с

(ребят, смотрите чтобы этот вопрос начинался с новой страницы, иначе все сбивается)

Выбор

Возврат к шагу 2

  1. «Определение остаточной сети»

Максимальный поток:

4.

Поиск узла из списка доступных. «Откат назад»

  1. Поток в сети

при найденных путях

Пример решения задачи с помощью алгоритма Форда-Фалкерсона:

Зададим с известными

Обнулим все сети

Перейдем по ребру , т.к. она имеет

Перейдем по ребру , т.к. она имеет

Перейдем по ребру , т.к. невозможно сделать шаг по из-за того, что

  1. п

Максимальный поток пути:

Приступим к 2 шагу. Перейдем по ребру , т.к. она имеет

От вершины 3 возможно пройти по ребру , т.к. текущий поток в ребре больше в отличие от ребра

Перейдем к вершине 2, т.к. она является единственной не посещенной для вершины 1

По аналогичной причине движемся к сети

Максимальный поток пути:

Вернемся к вершине 3, т.к. исследование вершин в «глубину» не окончено

Возможно сделать шаг напрямую к стоку сети

Максимальный поток пути:

Начнем новый шаг: перейдем к вершине 2

Идет исследование вершин в «глубину», значит перейдем к вершине , т.к. текущий поток по ребру

Вершина – посещенная, значит, имеем единственный возможный путь по ребру

Движемся к , т.к. отсутствуют другие непосещенные вершины

Максимальный поток пути:

Следующий шаг: выберем дугу , т.к. она ближе к насыщению, чем дуга . По дуге движение невозможно

Перейдем к вершине 2

Завершаем путь в стоке сети

Максимальный поток пути:

Выполним последний шаг для насыщения ребра

Завершаем путь в вершине

Максимальный поток пути:

Получаем итоговую транспортную сеть

  1. Выпишем все рассмотренные пути:

Максимальный поток сети:

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