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

Специальные свойства.

1) Рефлексивность. Отношение рефлексивно, если на главной диагонали стоят единицы и антирефлексивно, если на главной диагонали нули. Поскольку на главной диагонали есть как нули, так и единицы, R не является ни рефлексивным, ни антирефлексивным (то есть общего вида).

2) Симметричность. Находим транспонированную матрицу (то есть матрицу обратного отношения:

Алгоритм решения задачи о максимальном потоке. - student2.ru

Отношение является симметричным, если Алгоритм решения задачи о максимальном потоке. - student2.ru (т.е. матрица симметрическая) и антисимметричным, если у матрицы Алгоритм решения задачи о максимальном потоке. - student2.ru нет двоек вне главной диагонали (i,j-й элемент равен двойке, если Алгоритм решения задачи о максимальном потоке. - student2.ru ).

Алгоритм решения задачи о максимальном потоке. - student2.ru .

В данном примере R не является ни симметричным, ни антисимметричным.

3) Транзитивность. Отношение является транзитивным, если Алгоритм решения задачи о максимальном потоке. - student2.ru (имеется в виду поэлементное неравенство – каждый элемент левой матрицы меньше или равен соответствующего элемента правой матрицы) . Операция С=A *B – это булево умножение булевых матриц размерности Алгоритм решения задачи о максимальном потоке. - student2.ru и Алгоритм решения задачи о максимальном потоке. - student2.ru (соответствует композиции отношений), определяемое по формуле «строка на столбец»: Алгоритм решения задачи о максимальном потоке. - student2.ru . Матрица С имеет размерность Алгоритм решения задачи о максимальном потоке. - student2.ru и также может быть получена из обычного произведения AB заменой всех ненулевых элементов на единичные. В данном примере

Алгоритм решения задачи о максимальном потоке. - student2.ru .

Следовательно, Алгоритм решения задачи о максимальном потоке. - student2.ru и отношение R транзитивно.

Построим орграф отношения G(R). Вершины этого орграфа – это элементы множества A, дуги – элементы R (вершины x и y соединяются дугой, если xRy).

 
  Алгоритм решения задачи о максимальном потоке. - student2.ru

Замечание

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

Даны Алгоритм решения задачи о максимальном потоке. - student2.ru

Алгоритм решения задачи о максимальном потоке. - student2.ru ,

Алгоритм решения задачи о максимальном потоке. - student2.ru

Найдите отношение Алгоритм решения задачи о максимальном потоке. - student2.ru , его область определения и область значений.

Решение

Матричный способ

Матрица отношения Алгоритм решения задачи о максимальном потоке. - student2.ru

При этом Алгоритм решения задачи о максимальном потоке. - student2.ru ;

Здесь Алгоритм решения задачи о максимальном потоке. - student2.ru – поэлементное отрицание, Алгоритм решения задачи о максимальном потоке. - student2.ru – булево произведение. [Операция С=A *B – это булево умножение булевых матриц размерности Алгоритм решения задачи о максимальном потоке. - student2.ru и Алгоритм решения задачи о максимальном потоке. - student2.ru (соответствует композиции отношений), определяемое по формуле «строка на столбец»: Алгоритм решения задачи о максимальном потоке. - student2.ru . Матрица С имеет размерность Алгоритм решения задачи о максимальном потоке. - student2.ru и также может быть получена из обычного произведения AB заменой всех ненулевых элементов на единичные. ]

Алгоритм решения задачи о максимальном потоке. - student2.ru ; Алгоритм решения задачи о максимальном потоке. - student2.ru ;

Алгоритм решения задачи о максимальном потоке. - student2.ru ;

Алгоритм решения задачи о максимальном потоке. - student2.ru ; Алгоритм решения задачи о максимальном потоке. - student2.ru ;

Алгоритм решения задачи о максимальном потоке. - student2.ru ;

Алгоритм решения задачи о максимальном потоке. - student2.ru /; Алгоритм решения задачи о максимальном потоке. - student2.ru .

Ответ: Алгоритм решения задачи о максимальном потоке. - student2.ru ={(a,2),(a,6),(c,1),(c,2),(c,4),(c,5),(d,6)}. Алгоритм решения задачи о максимальном потоке. - student2.ru ; Алгоритм решения задачи о максимальном потоке. - student2.ru ;

Алгоритм решения задачи о максимальном потоке. - student2.ru =

={(a,1),(a,3),(a,4),(a,5),(b,1),(b,2),(b,3),(b,4),(b,5),(b,6),(c,3),(c,6),(d,1),(d,2),(d,3),(d,4),(d,5)}


a b a&b aÚb a®b a~b aÅb
x1 x2 Алгоритм решения задачи о максимальном потоке. - student2.ru f0 f1 x1Ùx2   f2 f3 x1 f4   f5 x2 f6 x1Åx2   f7 x1Úx2 f8 x1¯x2 f9 x1~x2 f10 Алгоритм решения задачи о максимальном потоке. - student2.ru f11 x2®x1 Алгоритм решения задачи о максимальном потоке. - student2.ru Алгоритм решения задачи о максимальном потоке. - student2.ru f13 x1®x2 f14 x1½x2 f15

Имеют место следующие равносильности:

1) Алгоритм решения задачи о максимальном потоке. - student2.ru – закон двойного отрицания;

2) Алгоритм решения задачи о максимальном потоке. - student2.ru , Алгоритм решения задачи о максимальном потоке. - student2.ru – коммутативность дизъюнкции и конъюнкции;

3) Алгоритм решения задачи о максимальном потоке. - student2.ru , Алгоритм решения задачи о максимальном потоке. - student2.ru – ассоциативность дизъюнкции и конъ­юнк­ции;

4) Алгоритм решения задачи о максимальном потоке. - student2.ru , Алгоритм решения задачи о максимальном потоке. - student2.ru – взаимная дистрибутивность дизъюнкции и конъюнкции;

5) Алгоритм решения задачи о максимальном потоке. - student2.ru , Алгоритм решения задачи о максимальном потоке. - student2.ru – законы идемпотентности;

6) Алгоритм решения задачи о максимальном потоке. - student2.ru , Алгоритм решения задачи о максимальном потоке. - student2.ru – законы де Моргана;

7) Алгоритм решения задачи о максимальном потоке. - student2.ru , Алгоритм решения задачи о максимальном потоке. - student2.ru , Алгоритм решения задачи о максимальном потоке. - student2.ru , Алгоритм решения задачи о максимальном потоке. - student2.ru – законы истины и лжи;

8) Алгоритм решения задачи о максимальном потоке. - student2.ru , Алгоритм решения задачи о максимальном потоке. - student2.ru – законы поглощения;

9) Алгоритм решения задачи о максимальном потоке. - student2.ru – закон склеивания;

10) Алгоритм решения задачи о максимальном потоке. - student2.ru – закон вычёркивания;

11) Алгоритм решения задачи о максимальном потоке. - student2.ru – закон исключённого третьего;

12) Алгоритм решения задачи о максимальном потоке. - student2.ru – закон противоречия.

Доказательство: прямая проверка с помощью таблиц истинности.

Определение. Булева функция f*(x1, …, xn) называется двойственной булевой функции f(x1, …, xn), если она получена из f(x1, …, xn) инверсией всех аргументов и самой функции, то есть

Алгоритм решения задачи о максимальном потоке. - student2.ru

Пример. Построим функцию, двойственную стрелке Пирса.

Алгоритм решения задачи о максимальном потоке. - student2.ru

Представление булевой функции Алгоритм решения задачи о максимальном потоке. - student2.ru в виде дизъ­юнк­ции не­сов­па­да­ю­щих элементарных кон­ъюнкций называется дизъюнктивной нор­маль­ной фор­мой (ДНФ) этой функции. Если каж­дая вхо­дя­щая в ДНФ эле­мен­тар­ная конъюнкция яв­ля­ется пол­ной (относительно набора переменных Алгоритм решения задачи о максимальном потоке. - student2.ru ), то ДНФ называется со­вер­шен­ной дизъ­юнк­тивной нормальной формой (СДНФ).

Совершенная конъюнктивная нормальная форма

Напишем СДНФ для функции Алгоритм решения задачи о максимальном потоке. - student2.ru : Алгоритм решения задачи о максимальном потоке. - student2.ru

Алгоритм решения задачи о максимальном потоке. - student2.ru

Применим к обеим частям этого равенства операцию отрицания, учитывая закон двой­но­го отрицания получим:

Алгоритм решения задачи о максимальном потоке. - student2.ru

Применим законы де Моргана:

Алгоритм решения задачи о максимальном потоке. - student2.ru

(мы воспользовались тем, что Алгоритм решения задачи о максимальном потоке. - student2.ru Алгоритм решения задачи о максимальном потоке. - student2.ru Алгоритм решения задачи о максимальном потоке. - student2.ru ; это легко проверяется просмотром слу­чаев Алгоритм решения задачи о максимальном потоке. - student2.ru и Алгоритм решения задачи о максимальном потоке. - student2.ru ). Таким образом, справедлива следующая теорема:

Теорема 2.9.Любую функцию Алгоритм решения задачи о максимальном потоке. - student2.ru можно представить в виде

Алгоритм решения задачи о максимальном потоке. - student2.ru .

Определение 2.4. Формула вида Алгоритм решения задачи о максимальном потоке. - student2.ru , где M — некоторое мно­же­с­т­во битовых строк длины n, называется совершенной конъюнктивной нор­маль­ной фор­мой (СКНФ)(для набора булевых переменных Алгоритм решения задачи о максимальном потоке. - student2.ru ).

Алгоритм решения задачи о максимальном потоке. - student2.ru

Построение многочлена Жегалкина по СДНФ.

Алгоритм решения задачи о максимальном потоке. - student2.ru

Построение многочлена Жегалкина методом неопределённых коэффициентов.

Алгоритм решения задачи о максимальном потоке. - student2.ru

Метод треугольника.

x y z f треугольник Паскаля слагаемые
0 0 0 0 0 0 1 1 0 1 0 1 1
0 0 1 0 0 1 0 1 1 1 1 z
0 1 0 1 1 1 1 0 0 0 y
0 1 1 1 0 0 1 0 0 yz
1 0 0 0 0 1 1 0 x
1 0 1 1 1 0 1 xz
1 1 0 0 1 1 xy
1 1 1 1 0 xyz

Полином Жегалкина: f(x, y, z) = y⊕xz⊕xy

В зарубежной литературе представление в виде полинома Жегалкина (основное применение – в криптографии) обычно называется алгебраической нормальной формой (АНФ).

Минимизация ДНФ по карте Карно

Алгоритм решения задачи о максимальном потоке. - student2.ru

Алгоритм решения задачи о максимальном потоке. - student2.ru

Пример. Минимизировать ДНФ булевой функции Алгоритм решения задачи о максимальном потоке. - student2.ru , заданной строкой зна­че­ний (1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0).

Применяя алгоритм Куайна, представим данную функцию сокращённой ДНФ:

Алгоритм решения задачи о максимальном потоке. - student2.ru (представляем в виде СДНФ) = Алгоритм решения задачи о максимальном потоке. - student2.ru (проводим обобщённое склеивание)

Алгоритм решения задачи о максимальном потоке. - student2.ru

(проводим поглощение)

Алгоритм решения задачи о максимальном потоке. - student2.ru .

Строим таблицу Квайна:

  Алгоритм решения задачи о максимальном потоке. - student2.ru Алгоритм решения задачи о максимальном потоке. - student2.ru Алгоритм решения задачи о максимальном потоке. - student2.ru Алгоритм решения задачи о максимальном потоке. - student2.ru Алгоритм решения задачи о максимальном потоке. - student2.ru Алгоритм решения задачи о максимальном потоке. - student2.ru Алгоритм решения задачи о максимальном потоке. - student2.ru Алгоритм решения задачи о максимальном потоке. - student2.ru Алгоритм решения задачи о максимальном потоке. - student2.ru
Алгоритм решения задачи о максимальном потоке. - student2.ru ´           ´    
Алгоритм решения задачи о максимальном потоке. - student2.ru ´   ´            
Алгоритм решения задачи о максимальном потоке. - student2.ru   ´             ´
Алгоритм решения задачи о максимальном потоке. - student2.ru   ´       ´      
Алгоритм решения задачи о максимальном потоке. - student2.ru             ´ ´  
Алгоритм решения задачи о максимальном потоке. - student2.ru               ´ ´
Алгоритм решения задачи о максимальном потоке. - student2.ru     ´ ´ ´ ´      

Если в столбце лишь один крестик, то соответствующую строку надо выбрать обя­за­тель­но; это строка Алгоритм решения задачи о максимальном потоке. - student2.ru . Далее вычеркиваем все столбцы, на пересечении которых с уже вы­бранной строкой стоят крестики (это столбцы 3, 4, 5, 6). В каждом из оставшихся столб­цов стоят два крестика. Множество оставшихся строк имеет 4 минимальных под­мно­жества, удовлетворяющих требованию, чтобы каждый из невычеркнутых столбцов имел крестик хотя бы в одной из строк данного подмножества; выпишем эти под­мно­же­с­тва, обозначая строки их номерами:

Алгоритм решения задачи о максимальном потоке. - student2.ru .

Таким образом, для рассматриваемой функции имеется 4 тупиковых ДНФ:

Алгоритм решения задачи о максимальном потоке. - student2.ru , Алгоритм решения задачи о максимальном потоке. - student2.ru , Алгоритм решения задачи о максимальном потоке. - student2.ru и Алгоритм решения задачи о максимальном потоке. - student2.ru .

Первые три из них являются МДНФ.

Алгоритм решения задачи о максимальном потоке. - student2.ru
Алгоритм решения задачи о максимальном потоке. - student2.ru

Алгоритм решения задачи о максимальном потоке. - student2.ru

Алгоритм решения задачи о максимальном потоке. - student2.ru

Три приведенных ниже логических элемента составляют функционально полную систему для проектирования цифровых логических устройств, в том числе и соответствующих логических блоков и устройств компьютера, поскольку реализуют функционально полный набор логических функций, состоящий из логических функций: И (конъюнкции), ИЛИ (дизъюнкции), НЕ (отрицания).

1. Логический элемент НЕ, который называется также инвертором, выполняет логическую операцию отрицания (инверсии).

Алгоритм решения задачи о максимальном потоке. - student2.ru

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

Алгоритм решения задачи о максимальном потоке. - student2.ru

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

Европейский стандарт (Европа и бывший СССР) и стандарт ANSI:

Алгоритм решения задачи о максимальном потоке. - student2.ru

Алгоритм решения задачи о максимальном потоке. - student2.ru

Алгоритм решения задачи о максимальном потоке. - student2.ru

"Исключающее ИЛИ" (XOR)

Алгоритм решения задачи о максимальном потоке. - student2.ru

Алгоритм решения задачи о максимальном потоке. - student2.ru

Алгоритм решения задачи о максимальном потоке. - student2.ru
Алгоритм решения задачи о максимальном потоке. - student2.ru

Найти максимальный поток в заданной транспортной сети, используя алгоритм Форда-Фалкерсона. Проверить ответ по теореме Форда-Фалкерсона (найти минимальный разрез графа сети).

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

1°. Положить f=Df=0, c = пропускным способностям заданной транспортной сети.

2°. Переприсвоить: f=f+Df. Вычислить остаточные пропускные способности Dc, от­ве­ча­ющие пропускным спо­соб­ностям c и потоку Df.

3°. Для транспортной сети спропускными способностями Dc найти путь l из s в t, об­ла­да­ющий максимальной про­пуск­ной способностью. Пусть j — пропускная спо­соб­ность это­го пути. Если j=0 (путь отсутствует), то перейти к пункту 4°; в про­тив­ном случае переопределить добавочный поток Df, полагая

Алгоритм решения задачи о максимальном потоке. - student2.ru

После этого перейти к пункту 2°.

4°. Закончить работу алгоритма. Поток f — ответ задачи.

Пусть функ­ция c описывает пропускные способности исходной сети и f — стан­дарт­ный пред­ста­ви­тель исходного потока. Тогда остаточные пропускные способности Dc оп­ре­деляются следующим образом:

Dc(u, v)=c(u, v)-f(u, v)+ f(v, u).

Пример решения задачи

Задан граф транспортной сети

Алгоритм решения задачи о максимальном потоке. - student2.ru Алгоритм решения задачи о максимальном потоке. - student2.ru Алгоритм решения задачи о максимальном потоке. - student2.ru

Составляем матрицу пропускных способностей:

  Алгоритм решения задачи о максимальном потоке. - student2.ru Алгоритм решения задачи о максимальном потоке. - student2.ru Алгоритм решения задачи о максимальном потоке. - student2.ru t
s
Алгоритм решения задачи о максимальном потоке. - student2.ru
Алгоритм решения задачи о максимальном потоке. - student2.ru
Алгоритм решения задачи о максимальном потоке. - student2.ru

Находим путь из s в t как можно большей пропускной способности. Путь максимальной пропускной способности можно найти с помощью алгоритма волны, а для небольшой сети – визуально по графу.

Примечание1

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

Примечание2

При решении задачи можно использовать как язык матриц, так и язык графов. Ниже приводятся оба способа записи решения.

Путь 1. Алгоритм решения задачи о максимальном потоке. - student2.ru . Пропускная способность: 10. Составляем матрицу остаточных пропускных способностей/добавочного потока

  Алгоритм решения задачи о максимальном потоке. - student2.ru Алгоритм решения задачи о максимальном потоке. - student2.ru Алгоритм решения задачи о максимальном потоке. - student2.ru t
s 0/10
Алгоритм решения задачи о максимальном потоке. - student2.ru 5/10
Алгоритм решения задачи о максимальном потоке. - student2.ru
Алгоритм решения задачи о максимальном потоке. - student2.ru

При отображении данной информации на графе будем использовать формат

A/B/C, где A = c(u,v) – остаточная пропускная способность дуги, B = c(v,u) – остаточная пропускная способность противоположной дуги, C= f(u,v) – добавочный поток через данную дугу. Для дуг, через которые добавочный поток не идёт, третья компонента отсутствует. Остаточные пропускные способности дуг, входящих из s и дуг, исходящих из t вычислять не нужно, на графе они присутствуют для большей наглядности.

Алгоритм решения задачи о максимальном потоке. - student2.ru

Путь 2. Алгоритм решения задачи о максимальном потоке. - student2.ru . Пропускная способность: 7. Матрица остаточных пропускных способностей/добавочного потока:

  Алгоритм решения задачи о максимальном потоке. - student2.ru Алгоритм решения задачи о максимальном потоке. - student2.ru Алгоритм решения задачи о максимальном потоке. - student2.ru t
s 23/7
Алгоритм решения задачи о максимальном потоке. - student2.ru
Алгоритм решения задачи о максимальном потоке. - student2.ru 0/7
Алгоритм решения задачи о максимальном потоке. - student2.ru 5/7

Соответствующий граф:

Алгоритм решения задачи о максимальном потоке. - student2.ru

Путь 3. Алгоритм решения задачи о максимальном потоке. - student2.ru . Пропускная способность: 5. Матрица остаточных пропускных способностей/добавочного потока:

  Алгоритм решения задачи о максимальном потоке. - student2.ru Алгоритм решения задачи о максимальном потоке. - student2.ru Алгоритм решения задачи о максимальном потоке. - student2.ru t
s 18/5
Алгоритм решения задачи о максимальном потоке. - student2.ru
Алгоритм решения задачи о максимальном потоке. - student2.ru
Алгоритм решения задачи о максимальном потоке. - student2.ru 0/5

Соответствующий граф:

Алгоритм решения задачи о максимальном потоке. - student2.ru

Путь 4. Алгоритм решения задачи о максимальном потоке. - student2.ru . Пропускная способность: 5. Матрица остаточных пропускных способностей/добавочного потока:

  Алгоритм решения задачи о максимальном потоке. - student2.ru Алгоритм решения задачи о максимальном потоке. - student2.ru Алгоритм решения задачи о максимальном потоке. - student2.ru t
s 18/5
Алгоритм решения задачи о максимальном потоке. - student2.ru 0/5
Алгоритм решения задачи о максимальном потоке. - student2.ru
Алгоритм решения задачи о максимальном потоке. - student2.ru 5/5

Соответствующий граф:

Алгоритм решения задачи о максимальном потоке. - student2.ru

Путь 5. Отсутствует. Алгоритм завершён.

Максимальный поток: Алгоритм решения задачи о максимальном потоке. - student2.ru

Находим проверочный разрез (минимальное сечение). Все дуги, входящие в проверочный разрез, должны быть насыщенными (иметь остаточную пропускную способность 0). В нашем случае это дуги Алгоритм решения задачи о максимальном потоке. - student2.ru Искомый разрез (он может быть не единственным) составляют дуги Алгоритм решения задачи о максимальном потоке. - student2.ru

Графическое изображение проверочного разреза:

Алгоритм решения задачи о максимальном потоке. - student2.ru

Пропускная способность данного разреза равна 15+5+7=27=П, что соответствует теореме Форда-Фалкерсона.

Наши рекомендации