- •27 1.6. Аналіз підзадач
- •1.Основні положення теорії складності (np-повноти) екстремальних задач
- •1.1.Задачі, алгоритми та складність. Основні визначення.
- •1.2.Комівояжор
- •1.3.Поліноміальні та експоненціальні алгоритми
- •1.4.Поліноміальна зведеність np-повної задачі
- •Основні леми поліноміальній зведенності задач
- •1.5.Теорема кука
- •Вершинне покриття (вп)
- •ГамільтонІв Цикл (гц)
- •Розбиття
- •1.6. Методи доведення np - повноти і. Звуження задачі (зз)
- •Розклад для мультипроцесорної системи
- •Іі. Локальна заміна (лз)
- •Упорядкування усередині інтервалів (уві)
- •Тримірні сполучення (з - спол)
- •Ііі. Побудова компонентів
- •Пари близьких задач, одна р, інша np-повна
- •1.6.Аналіз підзадач
- •1.7.Розмальовування графа в 3 кольори
- •1.7.1.Розвязання np - повних задач.
Ііі. Побудова компонентів
Доведення NP-повноти задач 3 СПОЛ, ВП та ГЦ типові приклади. Основна ідея таких доведень полягає в тому, щоб за допомогою складових частин розглянутої задачі сконструювати деякі “компоненти”, поєднуючи які можна “реалізувати” індивідуальні задачі відомої NP-повної задачі.
Пари близьких задач, одна р, інша np-повна
P |
NP |
Найкоротший шлях між двома вершинами |
Найдовший шлях між двома вершинами |
Умова. Задан граф G=(V, E), довжина l(e)Z+ для кожної eE, виділені вершини а, bV та BZ+. |
Умова. Задан граф G=(V, E), дов - жина l(e)Z+ для кожної eE, Виділені вершини а, bV та BZ+. |
Питання. Існує чи ні в G простий шлях з a в b, який має довжину не більше за В? |
Питання. Існує чи ні в G простий шлях з a в b, який має довжину не менше за В? |
Реберне покриття |
Вершинне покриття |
Умова. Задан граф G=(V, E) та КZ+ . |
Умова. Заданий граф G=(V, E) та КZ+ . |
Питання. Існує EE т.,ч /E/К та для кожної вершини vV є таке ребро eE, що vE? |
Питання. Існує VV т.,ч /V/К та для кожного ребра eE є така вершина vV, що V e? |
Розклад для прямого дерева завдань |
Розклад для зворотнього дерева завдань |
Умова. Задані: множина Т завдань з одиничною тривалістю, директивний строк d(t)Z+ для кожного tT, частковий порядок на множині Т, відносно якого кожне завдання має не більш одного безпосередньо наступного за ним, mZ+. |
Умова. Задані: множина Т завдань з одиничною тривалістю, директивний строк d(t)Z+ для кожного tT, частковий порядок на множині Т, відносно якого кожне завдання має не більш одного безпосередньо попередника. |
Питання. Можна чи ні скласти для множини Т розклад на m процесорах, так, що виконується частковий порядок та директивні строки. |
Питання. Можна чи ні скласти для множини Т розклад на m процесорах, так, що виконується частковий порядок та директивні строки. |
1.6.Аналіз підзадач
1.7.Розмальовування графа в 3 кольори
Умова. Задан граф G = (V, E)
Питання. Чи вірно, що G розмальовується
в три кольори ? Чи існує така функція
,
що
,
якщо
.
Розглянемо обмеження максимальної степені вершин для задач теорії графів. Більшість задач з теорії графів може бути вирішено за поліноміальний час, якщо максимум степенів вершин графів достатньо малий.
|
P при D
|
NP при D |
Вершинне покриття |
2 |
3 |
Гамільтонов цикл |
2 |
3 |
Розмальовуваність графів в три кольори |
3 |
4 |
Множина вершин, що розрізують контур |
2 |
3 |
Необхідність аналізу підзадач NP повної задачі особливо яскраво проявляється в задачах з числовими параметрами. Покажемо це на прикладі розв’язання задачі РОЗБИТТЯ методом "динамічного програмування".
-
ji
0
1
2
3
4
5
6
7
8
9
10
11
12
13
1
T
T
F
F
F
F
F
F
F
F
F
F
F
F
1
2
T
T
F
F
F
F
F
F
F
T
T
F
F
F
9
3
T
T
F
F
F
T
T
F
F
T
T
F
F
F
5
4
T
T
F
T
T
T
T
F
T
T
T
F
T
T
3
5
T
T
F
T
T
T
T
F
T
T
T
T
T
T
8
S(a1) = 1; S(a2) = 9; S(a3) = 5; S(a4) = 3; S(a5) = 8; B = 26.
Таблиця заповнюється послідовно рядок за рядком зверху вниз.
В першому рядку t(1, j) = T необхідно і достатньо чи j = 0, чи j = S(a1). Кожний наступний рядок заповнюється з урахуванням значень в попередньому рядку. Для 1< j n, 0 j B/2, рівність t( i, j ) = T має місце, необхідно і достатньо чи t( i-1, j ) = T, чи якщо S( ai ) j і t( i-1, j-S( ai ) ) = T. Задача РОЗБИТТЯ буде вирішена, якщо t( n, B/2 ) = T.
Час роботи алгоритму обмежений поліномом
від кількості клітинок таблиці (від
nB). На перший погляд може здатись,
що ми отримали поліноміальний алгоритм.
Однак, це не так. Наявність такого
алгоритму показує, що NP повнота задачі
РОЗБИТТЯ залежить від величини цифр на
вході. Якщо б на величину таких чисел
було би заздалегідь накладене обмеження,
наприклад у вигляді поліному від Length
,
то алгоритм був би поліноміальним
(будемо називати такі алгоритми
псевдополіноміальними). Введемо дві
функції Length:
і Мах:
.
Призначення функції Length полягає в
порівнянні будь-якої індивідуальній
задачі I деякого цілого числа Length (I),
що відповідає числу символів, які
використовуються при описі I. Призначення
функції Мах полягає в порівнянні
індивідуальної задачі I цілого числа
Мах
,
що відповідає величині максимального
числа в І.
Алгоритм розв’язку задачі П будемо називати псевдополіноміальним по часу алгоритмом, якщо його часова функція обмежена зверху поліномом від двох аргументів Length і Мах .
Будь-який поліноміальний алгоритм є також псевдополіноміальним, обмеженим поліномом від одного аргументу - Length .
Будемо називати задачу П задачею з числовими параметрами, якщо не існує такого поліному р, що Мах р (Length ) для всіх ІDп.
Зауваження. Якщо NP-повна задача П не є задачею з числовими параметрами, то П не може бути вирішена псевдополіноміальним алгоритмом.
Для довільної задачі П та поліному р позначимо Пр підзадачу, яку отримуємо з П розгляданням тільки тих індивідуальних задач, для яких Мах р (Length ). Задача Пр - не є задачею з числовими параметрами.
Задачу П назвемо NP-повною в сильному значенні, якщо П належить NP та існує поліном р, що задача Пр є NP-повною.
Наприклад, для задачі комівояжер задачею Пр може служити задача Шлях Гамільтона.
Задача. Розклад для мультипроцесорної системи та Упорядкування всередині інтервалів NP-повні в сильному значенні, а задача РЮКЗАК - ні.
Приведемо сьому задачу, яку будемо використовувати для доведення сильної NP-повноти.
З-Розбиття
Умова. Задані множина А, яка
складається з Зт елементів, границя
ВZ+ та
розміри S(a)Z+
всіх елементів, аА,
причому В/4 S(a)
В/2 та
.
Питання. Можна чи ні А так
розбити на т непересічених
підчисельностей S1, S2, ... ,
Sm, що для І
i т
(кожна множина містить рівно 3 елементи).
Теорема. Задача З-Розбиття NP-повна в сильному значенні.
Нехай П та П - довільні задачі розпізнання; Dп та Dп - чисельності їх індивідуальних задач; Уп та Уп - чисельності індивідуальних задач з відповіддю “так” Мах, Length, Мах, Length - відповідні функції довжини та максимуму. Задача П псевдополіноміально зводиться до задачі П, якщо існує функція f: DпDп, котра володіє такими властивостями:
а) для ID, IУп тоді і тільки тоді, коли f(I)Eп.
б) функція f може бути обчислена за час, що обмежений поліномом від двох змінних Мах і Length .
в) існує такий поліном q1, що для всіх IDп має місце нерівність
q1(Length[f(I)]) Length(I);
г) існує такий поліном q2 від двох змінних, що для всіх IDп виконана нерівність
Мах[f(I)] q2(Мах , Length ).
Лема. Якщо П - NP-повна в сильному значенні задача, ПNP та П псевдополіноміально зводиться до П, то П - NP-повна в сильному значенні задача.
Для прикладу, скористаємося псевдополіноміальною зведеністю для доведення сильної NP-повноти задачі Упорядкування всередині інтервалів (УВІ).
Теорема. УВІ - NP-повна в сильному значенні.
Побудуємо псевдополіноміальне зведення задачі З-РОЗБИТТЯ до задачі УВІ.
Нехай
-
визначає довільну задачу З-РОЗБИТТЯ.
Побудуємо індивідуальну задачу УВІ:
В послідовності завдань, що задовольняє вище переліченим умовам, завдання t1, 1iB повинно виконуватися в проміжку часу від iB+i-1 до iB+1. При цьому залишається m окремих блоків часу B кожний. Сума часу у всіх блоках дорівнює загальному часу виконання усіх завдань, а отже усі ці блоки повинні бути заповнені повністю. Ці блоки відіграють таку ж роль, що і чисельності S1, S2, ..., Sm в пошуковаму розбитті чисельності А. Отже, шукана послідовність існує коли існує искомое розбиття у вихідній індивідуальній задачі з З-РОЗБИТТЯ. ...
