
- •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 - повних задач.
Тримірні сполучення (з - спол)
Умова. Дана множина МWXY, де W, X, Y - неперетинні множини, що містять однакове число елементів q.
Питання. чи вірно, що М містить тримірні сполучення, тобто або підмножину ММ, т.щ.М= q, і ніякі два різні елементи М не мають жодної рівної координати?
Вершинне покриття (вп)
Умова. Дан граф, G=(V, E) та додатне ціле число K, K |V |.
Питання. Чи є в
графі G вершинне покриття, що не
перебільшує К елементів, тобто така
підмножина VV,
що | V
| K та для
кожного ребра
хоча б одна з вершини u
або v належить V
?
Кліка
Умова. Дан граф G=(V, E) та додатне число J |V |.
Питання. Вірно чи ні, що G містить деяку кліку потужності не менше J, тобто така підмножина VV, що | V | J та будь-які дві вершини з V поєднані ребром з Е?
ГамільтонІв Цикл (гц)
Умова. Дан граф G=(V, E).
Питання. Вірно чи ні, що G містить гамільтонів цикл, тобто таку послідовність вершин <v1, ... , vn> графа G, що n = |V|, {vn, v1}E для всіх і, 1 i n.
Розбиття
Умова. Задана кінцева множина А та “вага” S(a) Z+ для кожного a A.
Питання. Існує чи ні, підмножина
A
A, така, що
?
1.6. Методи доведення np - повноти і. Звуження задачі (зз)
Доведення методом (ЗЗ) задачі П NP полягає в тому, щоб показати, що задача П містить в собі в якості приватного випадку відому NP-повну задачу П. Досить часто такі доведення не приводяться у зв’язку з очевидністю.
Розклад для мультипроцесорної системи
Умова. Задана кінцева множина А “завдань”, “тривалості” l(a) < Z+ для кожного aA, число mZ+ “процесор” та “директивний строк” D Z+.
Питання. Чи існує
розбиття A=A1A2
... Am
множини А на m неперетинних,
множин т.щ.
?
Доведення методом (ЗЗ) Розглянемо
тільки ті індивідуальні задачі, для
котрих m = 2 та
задача перетворюється в Розбиття.
Іі. Локальна заміна (лз)
ЛЗ - полягає в тому, що обирається деяка характерна властивість відомої NP-повної задачі, за допомогою ії утворюється сімейство основних модулів, а відповідні індивідуальні задачі заданої задачі отримуємо шляхом одноманітної заміни кожного основного модуля деякою іншою структурою. Зведення задачі ЗДІЙСН до З-ЗДІЙСН відноситься до цього типу.
Досить часто виявляється корисним доповнити розглядаєму індивідуальну задачу допоміжними елементами (обмежниками), які накладають допоміжні обмеження на способи отримання відповіді “так”.
Упорядкування усередині інтервалів (уві)
Умова. Задана кінцева множина “завдань” Т та для кожного t Т ціле число r(t)0 - час готовності, “директивний строк” d(t)Z+.
Питання. Чи існує для Т допустимий розклад, тобто така функція :ТZ+, що для всіх tT має місце:
(1). (t)r(t), (2). (t)+l(t) d(t) та (3). якщо tT\{t}, то або (t)+l(t) (t), або (t)(t)+l(t)?
Теорема. УВІ - NP-повна.
Зведемо до цієї задачі задачу Розбиття.
Розглянемо в якості базисних модулів вихідної індивідуальної задачі Розбиття окремі елементи аА. Операція локальної заміни перетворює а в завдання ta, т.щ. r(ta)=0, d(ta)=B+1 та l(ta)=S(a).
В якості обмежника візьмемо ще одне
завдання
,
т.щ. r(
)=[B/2],
d(
)=[(B+1)/2]
та l(
)=1.
Зрозуміло, що ця задача може бути
побудована за поліноміальний час по
вихідній задачі Розбиття.
Обмежник не дозволить побудувати допустимий розклад, якщо В непарне (Розбиття також не має рішень) тому, що r( )=d( ) та - не може бути включено в розклад.
Нехай В парне. r( )=B/2 та d( )=r( )+1. - В+1. Тоді час, що доступний для виконання решти завдань, ділиться на два окремих блоки, довжиною В/2 кожний.
Рис. 1.4. Розклад, по будований за допомогаю “обмежника” при зведенні задачі РОЗБИТТЯ к задачі УПОРЯДКУВАННЯ УСЕРЕДЕНІ ІНТЕРВАЛІВ
Таким чином, задача складання розкладу
перетворюється в задачу вибору підмножин,
завдань які будуть виконуватися раніше
та після
.
Загальний час в обох блоках рівен В.
Звідси слідує, що кожен з цих блоків
повинен бути повністтю заповнений. Це
можливо тоді і тільки тоді, коли існує
підмножина A
A тока, що
.
Останній та найбільш важкий метод доведення NP-повноти - це