Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Асимптотические представлення

Складність алгоритму

Довжина слова, що кодує задачу I, – це величина n, функцією від якої визначається складність алгоритму А.

Визначення. Під складністю алгоритму надалі розуміється його тимчасова складність, тобто функція f (n), що кожній довжині n вхідного слова (коду задачі) ставить у відповідність максимальне (по всіх індивідуальних задачах довжини n) число елементарних дій, затрачуване алгоритмом у процесі рішення задач цієї довжини.

Для точного визначення цієї функції необхідно зафіксувати схему кодування задачі і модель обчислювального пристрою, на якому працює алгоритм.

Дуже часто, щоб порівняти одну величину з інший, досить знать не точні, а наближені значення. У таких випадках звичайно записують: A» B (A приблизно дорівнює B). Для оперирования наближеними величинами в математику прийнято використовувати символ O, що дає можливість заміняти символ» символом =. Запис O(f(n)) застосовується тоді, коли f(n) є функцією від цілого позитивного n, однак точне значення цієї функції невідомо, – відомо лише, що значення це невелико. Більш точно, запис O(f(n)) означає, що існує позитивна константа з, така, що величина xn, представлена як O(f(n)), задовольняє умові:

| xn | £ c | f (n)| для всіх n ³ 0.

Наприклад, співвідношення Hn = ln(n) + v + O(1/n) означає, що | Hn – ln(n) + v | £ c/n. Константа з невідома, однак, зрозуміло, що O(1/n) буде як завгодно мало, якщо n досить велико.

Символ O завжди коштує в правій частині рівності. Наприклад, n2/2 + n = O(n2) означає, що n2/2 + n не більше, ніж n2, тобто при досить великому n значення вираження n2/2 + n будить приблизно дорівнює n2. Якщо це оцінка складності алгоритму, то можна сказати, що складність алгоритму квадратична.

Для O(f(n)) здійсненні наступні властивості:

f(n) = O(f(n)),

cO(f(n)) = O(f(n)),

O(f(n)) + O(f(n)) = O(f(n)),

O(O(f(n))) = O(f(n)),

O(f(n)) O(g(n)) = O(f(n)g(n)),

O(f(n)g(n)) = f(n)O(g(n)).

Класи складності задач

Запис f (n) ~ O(g (n)) означає, що існує константа з, така, що | f (n)| £ c | g (n)| для всіх n ³ 0. Алгоритм називається поліноміальним, якщо його складність TA (n) ~ O(p (n)), де p (n) - поліноміальна функція.

Приклад неполіноміальної функції - n log n .

Складність моделювання машиною B роботи алгоритму складності f (n) на машині А.

 

Моделируемая Моделююча машина А
машина B 1МТ kМТ МДП
1-стрічкова МТ (1МТ) - O(f (n)) O(f (n))log f (n)
k-стрічкова МТ (kМТ) O(f 2(n)) - O(f (n))log f (n)
Машина довільного доступу (МДП) O(f 3(n)) O(f 2(n)) -

 

Приклад - розпізнавання паліндрома (слова, симетричного щодо середини): на 1-МТ його складність O(n2), а вже на 2-МТ - O(n).

Цю таблицю можна розглядати як виправдання (обґрунтування розумності) усієї наступної теорії. Для будь-якої функції складності:

* аддитивной константою можна зневажити – це, як правило, накладні витрати, помітні лише на задачах малого обсягу;

* мультиплікативна константа переборюється зростаючою швидкодією комп'ютерів;

* ступінь полінома, як видно з таблиці, для однієї і тієї ж задачі може бути різної при різних архитектурах машин; тому, якщо будувати машинно-незалежну теорію складності, ступенем полінома приходиться зневажити. Таким чином, мовчазно приймається теза: перенос задачі на детерминированную машину будь-якої мислимої архітектури змінює її складність не більш ніж полиномиально. У термінах, що вводяться нижче, це означає, що приналежність (або неприналежність) задачі класові P не залежить від типу машини, на якій написаний алгоритм рішення задачі. Тому -

* задачі експонентної складності зберігають цю складність (тобто важко вычислимы) на машині будь-якої архітектури.

Ідея полиномиальности (точніше - розгляд складності з точністю до полиномиальности) - перший ключовий момент теорії. Надалі для зручності формулювань розглядаються тільки задачі розпізнавання властивостей, тобто задачі, рішення яких - це відповідь «так» або «ні». Задача розпізнавання G характеризується двома безлічами: безліччю DG всіх індивідуальних задач і безліччю індивідуальних задач YG з відповіддю «так». При розумних схемах кодування S задача розпізнавання G перетворюється в задачу розпізнавання мови L (G, S) в алфавіті K схеми кодування: L(G, S) ={безліч усіх a ÎK* , що є кодами задач з YG при схемі кодування S. Природно вважати, що коди однієї і тієї ж задачі при різних розумних схемах кодування розрізняються по довжині не більш, ніж полиномиально. «Розумні схеми кодування» - це схеми стиснуті і полиномиально декодируемые.

Детерминированная (тобто звичайна) машина Тьюринга (ДМТ) із двома заключними станами: q («так») і q («ні»).

Мова LM розпізнається ДМТ M, якщо LM = { a ÎK*: M (a) = q }.

Якщо M зупиняється на усіх a ÎK*, то тимчасова складність TM (n) визначається так:

TM (n) = max TM (a) по усім a таким, що |a| = n.

ДМТ M називається поліноміальної, якщо існує такий поліном p (n), що для будь-яких n TM (n) £ p (n).

Клас мов P - це безліч усіх мов, для яких існують распознающие їхній ДМТ.

Задача розпізнавання G належить класові P при кодуванні S, якщо L (G, S)Î P.

Задача комівояжера формулюється як задача розпізнавання в такий спосіб:

Чи існує шлях, що проходить через усі міста, довжина якого не перевершує B?

Поліноміальне рішення цієї задачі невідомо. Однак перевірка пред'явленого рішення полиномиальна. Аналогічною властивістю - поліноміальної проверяемостью - володіє задача про ізоморфізм подграфу (у рішення входить указівка конкретної функції, що відображає графа в подграф). Таким чином, з поліноміальної проверяемости не випливає поліноміальна можливість розв'язання.

Недетерминированный «алгоритм»: недетерминированное угадування + поліноміальна детерминированная перевірка.

Недетерминированная машина Тьюринга (НДТМ) містить звичайний детерминированный блок і модуль, що угадує. Обчислення при даному вхідному слові a складається з двох етапів. Спочатку угадує модуль пише на стрічці довільне слово bÎ K* ліворуч від вхідного слова, а потім детерминированный блок перевіряє, чи не є (рішенням, і переходить або в q, або в q. Таким чином, існує нескінченна безліч різних обчислень при даному вхідному слові a.

НДТМ М приймає a, якщо хоча б одне з обчислень на вході a є приймаючої, тобто переводить М в q.

Мова LM, розпізнаваний М, - це безліч усіх слів у K*, прийнятих М.

Час прийняття a TM (a) = min числа кроків по всіх приймаючих обчисленнях a.

Тимчасова складність М TM (n) = max TM (a) по усім a таким, що |a| = n.

TM (n) = 1, якщо немає жодного слова довжини n, прийнятого М.

Клас NP - це безліч усіх мов, прийнятих НД-машинами за поліноміальний час. Очевидно, що P Í NP.

Теорема. Якщо G Í NP, то існує такий поліном p, що G може бути вирішена детерминированным алгоритмом з тимчасовою складністю O(2 p (n) ).

Дійсно, нехай q (n) - поліном, що обмежує тимчасову складність НД-алгоритма, що вирішує задачу G. Тоді існує слово-здогад довжини £ q (n), що детерминированно перевіряється за час q (n). Загальне число здогадів не перевершує k q (n), де k - потужність алфавіту. Тому час роботи детерминированного алгоритму не перевершує q (nk q (n). ð

Мова L 1 полиномиально зводимо до мови L 2, якщо існує функція f, що задовольняє двом умовам:

1) f має поліноміальну складність;

2) для кожного a aÎ L 1, якщо і тільки якщо f (a)Î L 2.

Позначення: L 1 µ L 2.

Теорема. Якщо L 1 µ L 2, то з L 2 Î P випливає, що L 1 Î P. Еквівалентне формулювання: з L 1 Ï P випливає, що L 2 Ï P.

Доказ очевидний.

Зведення задачі G1 до задачі G2 означає, що G2 не простіше, ніж G1.

Це зрозуміло: адже легку задачу можна звести до важкого, а важку до легкого - немає: якщо «важка» зведена до легкого, виходить, вона не така вуж важка.

Приклад. Зведення задачі про існування гамильтонова циклу до задачі про комівояжера.

Нехай в індивідуальній задачі про гамильтоновом цикл G = (V, E), ï V ï= m.

Відповідна задача про комівояжера будується так:

d (vi, vj) = 1, якщо (vi, vjE, і 2 у противному випадку; B = m.

Функція f, що здійснює це зведення, полиномиальна, оскільки обчислення d (vi, vj) зводиться до з'ясування входження (vi, vj) у E; усього таких з'ясувань m (m - 1)/2.

Якщо G містить гамильтонов цикл, то цей цикл є маршрутом у f (G) з довжиною m. Він мінімальний, тому що усі ваги на ребрах цього маршруту рівні 1. Отже, у цьому випадку задача f (G) дає позитивну відповідь. Якщо ж G не містить гамильтонов цикл, то довжина мінімального маршруту в f (G) більше m, і відповідь у задачі f (G) - негативний. ÿ

Теорема. Відношення (транзитивно.

Доказ тривіальний. ÿ

Мови L 1 і L 2 полиномиально еквівалентні, якщо L 1 µ L 2 і L 2µ L 1. Це дійсне відношення еквівалентності: воно симетрично по визначенню, а транзитивність µ тільки що доведена. Виникають класи еквівалентності, причому P - найменший клас.

Мова L називається NP-повним, якщо L Î NP і будь-яка інша мова L ’Î NP зводиться до L. Тим самим NP-повні задачі - самі важкі в класі NP, і якщо хоча б одна NP-повна задача утримується в P, те і всі NP-повні задачі утримуються в P.

Помітимо, що в цьому випадку всі задачі з NP утворювали б єдиний клас поліноміальної еквівалентності.

Теорема. Якщо L 1, L 2 Î NP, L 1 - NP-повний і L 1 µ L 2, то L 2 - також NP-повний.

Дійсно, по визначенню, для будь-якого L ’Î NP L’ µ L 1 і, отже, у силу транзитивності відносини поліноміального зведення L ’ µ L 2. ÿ

Теорема Кука. Задача выполнимости конъюнктивной нормальної форми є NP-повною. 

Ця теорема, доказ якої займає більш семи книжкових сторінок, - останній і вирішальний ключовий момент NP-теорії. Адже з визначення NP-повної задачі не випливає, що існує хоча б одна така задача. Теорема Кука дає конструктивний доказ існування таких задач.

Є 6 змістовно цікавих задач, NP-повнота яких доводиться зведенням до задачі Кука:

1. 3-выполнимость - выполнимость для КНФ, до якої кожна диз'юнкція містить рівно 3 литерала.

2. Верхове покриття - чи мається в графі G(V, E) верхове покриття не більш ніж з k елементів, тобто таке V¢ Í V, що ½V¢½£ k і хоча б один кінець будь-якого ребра належить V¢?

3. Кліка - чи вірно, що граф містить кліку потужності ³ k?

4. Гамильтонов цикл.

5. k-раскрашиваемость - чи можна розфарбувати граф G(V, E) у k квітів, де k <½V½?

6. Ізоморфізм подграфу.

Усього ж у даний час відомо кілька сотень NP-повних задач з теорій графів, граматик, автоматів і т.д. Для усіх них NP-повнота доводиться зведенням до якої-небудь іншої NP-повної задачі. Таким чином, задача Кука - очевидно, єдина задача, NP-повнота якої доведена прямо, без зведення.


<== предыдущая лекция | следующая лекция ==>
Масові задачі | ЛЕКЦІЯ 8.Поняття і способи їхніх представлень
Поделиться с друзьями:


Дата добавления: 2014-01-07; Просмотров: 400; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.046 сек.