- •1. Понятие модели. Принципы моделирования
- •9. Двойственные задачи
- •10. Теорема двойственности и экономическая интерпретация двойственных задач
- •16. Задача о нахождении кратчайшего пути от заданного узла до всех остальных узлов в графе и метод её решения- алгоритм Дейкстры
- •19. Задача о максимальном потоке и алгоритм Форда-Фалкерсона
- •Вершины — работы, дуги — зависимости
- •Событие
- •26 Задача о назначении. Венгерский алгоритм
- •30. Матричные игры. Верхняя чистая цена игры. Принцип минимакса-максимина
16. Задача о нахождении кратчайшего пути от заданного узла до всех остальных узлов в графе и метод её решения- алгоритм Дейкстры
Шаг 1. Вначале алгоритма все вершины не окрашены. Каждой вершине ν во время выполнения алгоритма ставится в соответствие либо число l(ν) — длина кратчайшего пути из s в ν, включающего только окрашенные вершины, либо l’(ν) – временная метка, которая становится равной l(ν) в момент, когда вершина ν окрашивается.
Полагаем
l(s)=0
l’(ν) = ∞, ν ≠ s
и окрашиваем вершину s.
Шаг 2. Для каждой неокрашенной вершины u, соседней с последней из окрашенных вершин ν пересчитываем l(u) по формуле:
l(u) = min {l’(u), l(ν) + l(ν,u)},
где l(ν, u) – длина дуги между ν и u.
Если l’(u) = ∞ для любой неокрашенной вершины u, то алгоритм следует закончить, т.к. в исходной сети не существует пути из s в неокрашенные вершины, в том числе и в t.
В противном случае находим вершину r, для которой, l’R = min l’(u), после чего r окрашиваем, и вносим в корневое дерево дугу (ν, r). Вершина R становится последней из окрашенных вершин.
Шаг 3. В момент, когда вершина t становится окрашенной, находим кратчайший путь, соединяющий s и t, состоящий из окрашенных дуг (ребер).
Теорема. Алгоритм Дейкстры строит в графе G = (V, E) кратчайший (s, t) путь.
17. Задача нахождения кратчайших путей между всеми парами узлов. Алгоритм Флойда
Шаг 0.
Пусть N = {1, 2, …n} — множество узлов сети.
На j-й итерации работы алгоритма будем
строить матрицу расстояний Lp, элемент
которой
равен
кратчайшей (i, j)- цепи, помежуточными
узлами в которой могут быть лишь узлы
из множества {1, 2, … , p}; и справочную
матрицу Sp, каждый элемент
которой
указывает на первый после узла I узел в
такой цепи.
Алгоритм начинает
работу с
,
где
и
После построения
матриц
и
для
каждого p = 1,2,…,n, используя для вычислений
элементы матриц, полученных на предыдущих
итерациях, необходимо выполнить следующую
процедуру:
Шаг 1.
Пусть матрицы
и
найдены.
Выделим элементы p-й строки и p-го столбца
матрицы
.
Назовем эти множества элементов базовой
строкой и базовым столбцом соответственно.
Шаг 2.
Построим матрицы
и
исходя
из следующего правила: для
.
Если
,
то
и
.
Если
,
то
и
.
Шаг 3.
Элемент матрицы
равен
длине кратчайшей цепи из узла i в
узел j. Элемент матрицы
есть
узел, стоящий после узла i в этой цепи.
Замечание.
Если
,
т.е. i-й элемент базового столбца равен
,
то для i-й строки шаг 2 выполнять не нужно.
Если
,
т.е. j-й элемент базовой строки равен
,
то для j-го столбца шаг 2 выполнять не
нужно
18. Поток по сети. Разрез. Пропускная способность разреза
19. Задача о максимальном потоке и алгоритм Форда-Фалкерсона
Сеть, потоки на сетях. Задача о максимальном потоке. Алгоритм Форда Фалкерсона.
Сеть – конечный граф без циклов и петель, ориентированный в одном общем направлении от вершины S, являющейся истоком графа, к вершине Т, являющейся стоком графа. Максимальное количество вещества cij, которое может пропустить ребро I,j в единицу времени, называется его пропускной способностью. Количество вещества ij, проходящее через ребро ijв единицу времени называется потоком по ребру fij.
Свойства потоков по ребрам:
Поток по каждому ребру не превышает его пропускную способность
Количество вещества притекающего в вершину = количеству вещества вытекающего из нее.
Общее количество вещества, исходящего из истока s совпадает с общим количеством вещества, поступающего в сток t, и называется мощностью потока в сети.
Постановка задачи
Задана сеть с фиксированными пропускными способностями дуг. Найти среди всех потоков поток максимальной мощности.
Пусть Х некоторое подмножество вершин удовлетворяющее условию sХ, tХ. Пара (Х,Х*) – разрез отделяющий Sот T. Пропускной способностью разреза (Х,Х*)называется сумма пропускных способностей дуг соответствующим этому разрезу.
Теорема Форда Фалкенсона: мощность максимального потока, пропущенного в сети равна минимальной пропускной способности разреза.
Алгоритм Форда Фалкенсона
Шаг 0
В процессе работы алгоритма каждая вершина относиться к одному из 3 множеств:
Непомеченные вершины
Помеченные, но не просмотренные
Просмотренные (окрашенные)
Шаг 1
Пометим вершину sметкой (s; +∞). Остальные вершины не помечены
Шаг 2
Пусть v некоторая помеченная, но не просмотренная вершина. Рассмотрим все соседние с v непомеченные вершины. Для каждой из таких вершин u возможны следующие ситуации:
Существует прямая дуга (v;u) и f(v;u)<c(v;u). Тогда вершина получает метку u(v+; c(v;u)- f(v;u))
Существует обратная дуга (u;v) и f(u;v)>0; u(v-; f(u;v)
Когда дуга прямая (v;u) f(v;u)=c(v;u) или обратная и f(u;v)=0, вершина метки не получает
Когда все соседние с vвершины проанализированы v переходит в множество просмотренных вершин
Шаг 3
Повторяем шаг 2 до тех пор пока не возникнет одна из следующих ситуаций:
Все вершины графа разбиты на два подмножества: первое- просмотренные (окрашенные) и второе – непомеченные, включающие в себя и вершину t. Тогда в сети построен максимальный поток мощности v и минимальный разрез (X;X*), где Х – окрашенные вершины.
Если
вершина t
получила метку, то в сети существует
увеличивающий путь с sв
t,
который можно определить, идя обратно
от t
к s.
Для найденного пути определяют величину
Ɛ увеличение мощности потока. На прямых
дугах найденного пути увеличиваем на
Ɛ, на обратных – уменьшаем на Ɛ. Мощность
равна
.
Переходим к шагу 1
20. Потоки минимальной стоимости. Алгоритм Басакера-Гоуэна
Задана сеть, к
каждой дуге которой поставлено в
соответствие 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,
то алгоритм свою работу заканчивает.
Следовательно, в сети построен поток
заданной мощности минимальной стоимости.
Замечания
Если задача на нахождение максимального потока минимальной стоимости, то алгоритм свою работу заканчивает, когда в графеGf нет пути p* из sв t.
Пример. Пусть
задан граф
,
в котором пропущен допустимый поток f
(см. Рис.1.22).
В данном графе над
каждой дугой
числа
показывают
соответственно пропускную способность,
пропущенный по дуге поток и стоимость
единицы потока. Тогда граф
имеет
вид (см. Рис. 1.23)
рис
1.22
21. Потоки минимальной стоимости. Алгоритм Клейна
Задана сеть, к каждой дуге которой поставлено в соответствие 3 числа: c(x,y) – пропускная способность,f(x,y) – поток, d(x,y) – стоимость. Требуется пропустить в сети допустимый поток заданной величины Vили максимальный поток заданной величины Vминимальной стоимости. S=
Шаг 0.
Решение начинаем с любого заданного потока F (с помощью алгоритма Форда-Фалкерсона.Вычисляем стоимость пропущенного потока)
Шаг 1.
Строим граф модифицированной стоимости.
Шаг 2.
Находим в графе Gf ориентированный цикл отрицательной длины Р*. Если в графе модифицированной стоимости Gf нет ни одного цикла отрицательной длины, то задача решена, иначе переходим к шагу 3.
Шаг 3.
В графе G определяем замкнутый путь Р соответствующий Р*. На прямых дугах пути Р находим е1, на обратных е2, находим е. На прямых увеличиваем поток на е, на обратных уменьшаем на е.
22. Элементы сетевого планирования
Сетевое планирование и управление — это совокупность расчётных методов, организационных и контрольных мероприятий по планированию и управлению комплексом работ с помощью сетевого графика (сетевой модели).
Под комплексом работ мы будем понимать всякую задачу, для выполнения которой необходимо осуществить достаточно большое количество разнообразных работ.
Для того чтобы составить план работ по осуществлению больших и сложных проектов, состоящих из тысяч отдельных исследований и операций, необходимо описать его с помощью некоторой математической модели. Таким средством описания проектов является сетевая модель.
Сетевая модель — это план выполнения некоторого комплекса взаимосвязанных работ, заданного в форме сети, графическое изображение которой называется сетевым графиком.
Главными элементами сетевой модели являются работы и события.
Термин работа в СПУ имеет несколько значений. Во-первых, это действительная работа — протяжённый во времени процесс, требующий затрат ресурсов (например, сборка изделия, испытание прибора и т.п.). Каждая действительная работа должна быть конкретной, чётко описанной и иметь ответственного исполнителя.
Во-вторых, это ожидание — протяжённый во времени процесс, не требующий затрат труда (например, процесс сушки после покраски, старения металла, твердения бетона и т.п.).
В-третьих, это зависимость, или фиктивная работа — логическая связь между двумя или несколькими работами (событиями), не требующими затрат труда, материальных ресурсов или времени. Она указывает, что возможность одной работы непосредственно зависит от результатов другой. Естественно, что продолжительность фиктивной работы принимается равной нулю.
23.
Сетевая модель. Сетевой график.
Критический срок
24 Свободный и полный резерв времени
Сетевой график — это динамическая модель производственного процесса, отражающая технологическую зависимость и последовательность выполнения комплекса работ, увязывающая их свершение во времени с учётом затрат ресурсов и стоимости работ с выделением при этом узких (критических) мест.
Основные элементы сетевого графика — работа и событие. Также важным понятием является понятие пути.
