Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
metod_potentsiala.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
690.69 Кб
Скачать
  1. Задача о максимальном потоке. Алгоритм Форда-Фалкерсона (Ford-Fulkerson) (назначе­ние алгоритма и его пошаговая реализация в общем виде).

Алгоритм форда

  1. Задача нахождения потока заданной величины минимальной стоимости в сети. Алгоритм Басакера-Гоуэна (Basaker r.G., Gowen p.J.) (назначение алгоритма и его пошаговая реализация в общем виде).

Задана сеть, к каждой дуге которой поставлено в соответствие 3 числа: c(x,y) – пропускная способность,f(x,y) – поток, d(x,y) – стоимость. Требуется пропустить в сети допустимый поток заданной величины Vили максимальный поток заданной величины Vминимальной стоимости. S=

ШАГ 0 Решение начинаем с нулевого потока V’=0.

Шаг 1Строим граф модифицированных стоимостей Gfпо следующим правилам:

· Множество вершин графа Gf совпадает с множеством вершин графа G

· Если в графе Gf(x,y)>0, но f(x,y)<c(x,y) то в графе Gfрисуем 2 дуги – прямую l(х,у)=d(x,y), обратную l(х,у)=-d(x,y),

· Если в графе Gf(x,y)=0, то рисуем одну прямую дугу l(x,y)=d(x,y)

· Если f(x,y)=c(x,y) то в графе Gfрисуем одну дугу обратную l(x,y)= -d(x,y),

Шаг 2 Находим в графе Gf минимальный путь из sв tp*. Определяем путь наисходом графе Gсоответствующий пути p*p. На прямых дугах вычисляем, на обратных - , . На прямых дугах пути p величину потока увеличиваем наƐ, на обратных уменьшаем на Ɛ.

Шаг 3 Получаем. Если v’=v, то алгоритм свою работу заканчивает. Следовательно, в сети построен поток заданной мощности минимальной стоимости.

  1. Дискретное программирование. Задача целочисленного линейного программирования Метод Гомори. Метод ветвей и границ.

Дискретное программирование (дискретная оптимизация) — раздел математического программирования.

В противоположность задачам оптимизации с непрерывными переменными, переменные в задачах дискретного программирования принимают только дискретные значения, например, целочисленные.

Задачи комбинаторной оптимизации можно решить с помощью методов дискретного программирования. Одними из основных методов решения задач дискретного программирования являются метод ветвей и границ и динамическое программирование.

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

Общая идея метода может быть описана на примере поиска минимума функции на множестве допустимых значений переменной. Функция и переменная могут быть произвольной природы. Для метода ветвей и границ необходимы две процедуры: ветвление и нахождение оценок (границ).

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

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

В основе метода ветвей и границ лежит следующая идея: если нижняя граница значений функции на подобласти дерева поиска больше, чем верхняя граница на какой-либо ранее просмотренной подобласти, то может быть исключена из дальнейшего рассмотрения (правило отсева). Обычно минимальную из полученных верхних оценок записывают в глобальную переменную; любой узел дерева поиска, нижняя граница которого больше значения, может быть исключен из дальнейшего рассмотрения.

Если нижняя граница для узла дерева совпадает с верхней границей, то это значение является минимумом функции и достигается на соответствующей подобласти.

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