1 / 39

ДИСКРЕТНЫЕ ЭКСТРЕМАЛЬНЫЕ ЗАДАЧИ

ДИСКРЕТНЫЕ ЭКСТРЕМАЛЬНЫЕ ЗАДАЧИ. Институт математики , ауд. 220 пятница 14:15. Лектор: Кононов Александр Вениаминович. http :// www . math . nsc . ru / LBRT / k 5/ dep . html. Программа первого семестра. Введение Графы Остовные деревья Кратчайшие пути Потоки в сетях

Download Presentation

ДИСКРЕТНЫЕ ЭКСТРЕМАЛЬНЫЕ ЗАДАЧИ

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. ДИСКРЕТНЫЕ ЭКСТРЕМАЛЬНЫЕ ЗАДАЧИ Институт математики, ауд. 220пятница 14:15 Лектор: Кононов Александр Вениаминович http://www.math.nsc.ru/LBRT/k5/dep.html

  2. Программа первого семестра • Введение • Графы • Остовные деревья • Кратчайшие пути • Потоки в сетях • Максимальное паросочетание • Матроиды

  3. 1. Введение 1.1. Перечисление (перебор) 1.2. Время работы алгоритмов 1.3. Алгоритм сортировки слиянием

  4. 2. Графы 2.1 Основные определения 2.2 Деревья, обходы и разрезы 2.3 Связность 2.4 Эйлеровы и двудольные графы

  5. 3. Остовные деревья 3.1 Задача о минимальном остовном дереве 3.2 Задача о минимальном взвешенном ориентированном остовном дереве 3.3 Упаковка остовных деревьев

  6. 4. Кратчайшие пути 4.1 Кратчайшие пути из одной вершины 4.2 Кратчайшие пути между всеми парами вершин 4.3 Задача о минимальном усредненном цикле

  7. 5. Потоки в сетях 5.1 Теорема о максимальном потоке и минимальном разрезе 5.2 Теорема Менгера 5.3 Алгоритм Эдмонса-Карпа 5.4 Блокирующие потоки 5.5 Алгоритм Голдберга-Тарьяна

  8. 6.Максимальное паросочетание 6.1 Двудольное паросочетание 6.2 Матрица Татта 6.3 Теорема Татта 6.4 Алгоритм Эдмонса

  9. Матроиды 7.1 Независимые системы и матроиды 7.2 Жадный алгоритм для задачи максимизации независимой системы

  10. Литература • Korte B., Vygen J. Combinatorial Optimization: theory and algorithms. (Algorithms and Combinatorics 21), Springer, Berlin, 2000. • Пападимитриу Х., Стайглиц К. Комбинаторная оптимизация. Алгоритмы и сложность. М.: Мир, 1985.

  11. Веккомбинаторной оптимизации • Теория чисел ~ 4000 летназад • Геометрия ~ 2600 летназад • Анализ ~ 300 летназад • Алгебра ~ 200 летназад ---------------------------------------------------- Комбинаторная оптимизация ~ 50 летназад!

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

  13. Производство печатных плат • Даны: Множество точекp1,…,pnR2 . • Найти: Перестановкуp: {1,..., n}g{1,..., n} такую что d(pp (i),pp (i+1))минимально.

  14. Задача о назначении • Даны:Множествочиселp1,…,pn R+ (длительность работ),mNрабочих, инепустое подмножествоSi  {1,..., m} рабочихдлякаждойработыi {1,..., n}. • Найти:Числа xij  R+ (i =1,...,n;j  Si) так что(i=1,...,n)и минимизирующее maxj.

  15. Комбинаторная оптимизация Вычислительные проблемы ― не толькозадачки, которые должны быть решены; они― также объекты, которые заслуживают изучения. Задачи и алгоритмы можно формализовать и изучать математически. Х. Пападимитриоу

  16. Задача разметки печатных плат • Даны: Множество точекp1,…,pnR2 . • Найти: Перестановкуp: {1,..., n}g{1,..., n} такую что d(pp(i),pp(i+1))минимально.

  17. Алгоритм ??? Input: N точек … Найти оптимальный путь !!! Output:оптимальный путь NO

  18. Алгоритм ??? Input: N точек … Перебрать все возможные перестановки и выбрать оптимальную ! Output:оптимальный путь NO

  19. Перебор с возвратом (1, 1, … , 1, 1) (1, 1, … , 1, n) (1, 1, … , 1, 2) (1, 1, … , 1, 3) ••• (1, 1, … , 2, 1) (1, 1, … , 2, n) (1, 1, … , 2, 2) (1, 1, … , 2, 3) ••• (1, 1, … , 3, 1) ••• (1, 1, … , 3, n) (1, 1, … , 3, 2) (1, 1, … , 3, 3) ••• n!перестановок nn шагов n! << nn

  20. Лексикографический порядок Определение 1.1 Пустьx,y Rn―два вектора. Вектор x лексикографическименьшечем y, если существует индексj{1,..., n},такой чтоxi=yiдляi =1,...,j – 1и xj <yj.

  21. Алгоритм перебора путей Input: Натуральное число n  3. Множество{p1,…,pn}точек на плоскости Output: Перестановкаπ*:{1,..., n}→{1,..., n}, минимизирующая cost(π*):= d(pp (i) ,pp (i+1) ). • Set π(i):=i,π*(i):=ifori =1,...,n. Set i:=n −1. • Letk:=min({π(i)+1,…,n+1}\ {π(1),…, π(i) −1}). • If k  nthen: Set π(i):=k. Ifi=n& cost(π)< cost(π*)then set π*:=π. If i<nthen set π(i+1):=0 & i:=i+1. If k =n+1then set i:=i − 1. If i 3then go to 2.

  22. Пример π:= (1, 2, 3, 4, 5, 6 ) i := 5 k := 6 π:= (1, 2, 3, 4, 6, 0 ) i := 6 ? cost(π) < cost(π*) ? k := 5 π:= (1, 2, 3, 4,6, 5 ) i := 5 k := 7 i := 4 k := 7 k := 5 π:= (1, 2, 3, 5, 0, 5 ) i := 5 k := 4 π:= (1, 2, 3, 5, 4, 0 ) i := 6 ? cost(π) < cost(π*) ? k := 6 π:= (1, 2, 3, 5,4, 6 ) •••

  23. Полезное обозначение Определение 1.2 Пустьf , g : D gR+ двефункции. Будем говорить, что fестьO(g)(иписатьf=O(g)),еслисуществуютконстантыα, β >0,такие чтоf(x) αg(x)+βдля всехx D. Еслиf= O(g) иg= O(f),тобудем писать f= Θ(g).

  24. Алгоритм перебора путей Input: Натуральное число n  3. Множество{p1,…,pn }точек на плоскости Output: Перестановкаπ*:{1,..., n}→{1,..., n}, минимизирующая cost(π*):= d(pp (i) ,pp (i+1) ). • Set π(i):=i,π*(i):=ifori =1,...,n. Set i:=n −1. • Letk:=min({π(i)+1,…,n+1}\ {π(1),…, π(i) −1}). • If k  nthen: Set π(i):=k. Ifi=n& cost(π)< cost(π*)then set π*:=π. If i<nthen set π(i+1):=0 & i:=i+1. If k =n+1then set i:=i − 1. If i 3then go to 2.

  25. k:=min({π(i)+1,…,n+1}\ {π(1),…, π(i) −1}) • For j := 1 tondoaux(j) := 0. • For j := 1 toi – 1doaux(π(j)) := 1. • Set k := π(i) + 1. • Whilek ≤ n and aux(k) = 1 dok := k+ 1.

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

  27. Время работы алгоритма Определение 1.3 ПустьалгоритмAполучает на входе множествоX, ипустьf:X→R+.Если существует константаα>0такая чтоалгоритмAзаканчивает вычисления не более чемчерезαf(x)элементарныхшагов (включаяарифметическиеоперации) длялюбоговхода xX, тобудемговорить, чтоO(f)время работы алгоритмаA.

  28. Размер входа • Размер входапримера с рациональными даннымиравен числу бит требуемых для его двоичного представления.

  29. Полиномиальный алгоритм • Определение 1.4 Алгоритм срациональным входомназывается полиномиальным, еслисуществует целоеkтакое чтоалгоритм работает время O(nk), гдеnесть размер входаивсечисла, используемые алгоритмомвпроцессе вычислений ограничены величиной O(nk) бит. Алгоритм спроизвольным входомназывается сильно полиномиальным, еслисуществует целоеkтакое чтоалгоритм работает время O(nk) на любом входесостоящим из n чисел ион полиномиальный нарациональном входе. Если k=1алгоритмназывается линейным.

  30. Таблица 1.1

  31. Таблица 1.2

  32. Алгоритм сортировки слиянием Input: Список a1,…,an действительных чисел. Output: Перестановка π : {1,..., n}g{1,..., n}, такая что ap(i)≤ap (i+1)для всехi =1,...,n– 1. • Ifn=1 thenset π(1) :=1andstop (return π ). • Set m:= [n/2]. Let ρ:=Merge-Sort(a1,…,am). Let σ :=Merge-Sort(am+1,…,an). • Set k:=1, l:=1. While k ≤m and l ≤n–mdo: If aρ(k)≤am+σ(l)then setπ(k+l – 1):= ρ(k) and k:= k +1. else set π(k+l – 1):=m+σ (l) and l:=l +1. While k ≤ m do:Setπ(k+l –1):= ρ(k) and k:= k+1. While l ≤ n-m do:Setπ(k+l –1):= m +σ (l) and l:= l +1.

  33. Время работы алгоритма Теорема 1.5 Алгоритм сортировки слияниемнаходит решение за O(n log n) элементарных операций.

  34. Алгоритм сортировки слиянием Input: Список a1,…,an действительных чисел. Output: Перестановка π : {1,..., n}g{1,..., n}, такая что ap(i)≤ap (i+1)для всехi =1,...,n– 1. • Ifn=1 thenset π(1) :=1andstop (return π ). • Set m:= [n/2]. Let ρ:=Merge-Sort(a1,…,am). Let σ :=Merge-Sort(am+1,…,an). • Set k:=1, l:=1. While k ≤m and l ≤n –mdo: If aρ(k)≤am+σ(l)then setπ(k+l – 1):= ρ(k) and k:=k +1. else set π(k+l – 1):=m+σ (l) and l:= l +1. While k ≤ m do:Setπ(k+l –1):= ρ(k) and k:= k+1. While l ≤ n-m do:Setπ(k+l –1):= m +σ (l) and l:= l +1.

  35. Доказательство теоремы 1.5 • T(n) время работы алгоритма на примере с nчислами. • Грубо оценим шаг 3 сверху через 5n + 2.

  36. Упражнение 1.1

  37. Упражнение 1.2

  38. Упражнение 1.3 Показать, что время работы алгоритма перебора путей есть O(n•n!).

  39. Упражнение 1.4 Пусть s, tстрочки из нулей и единиц длины m. Скажем, что s лексикографически меньшечемtеслисуществует индексj{1,..., n},такой чтоsi=tiдляi=1,...,j-1иsj<tj. Дано nстрочек длины m, требуется упорядочить строчки в лексикографическом порядке. Доказать, что существует линейный алгоритм, решающий эту задачу, то есть алгоритм с временем работы O(mn).

More Related