
- •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 - повних задач.
1.4.Поліноміальна зведеність np-повної задачі
Якщо P не зпівпадає з NP, то розбіжності між P та NP\P значно суттєві. Всі задачі із P можуть бути розв'язані поліноміальними алгоритмами, а всі задачи NP\P важкорозв'язувані. Тому, якщо P NP, то для кожної конкретної задачі П NP важливо знати, яка із двух можливостей реалізується. До тих пір, поки не доведено, що P NP, немає надії показати, що деяка конкретна задача належить NP\P. З цієї причини мета теорії складності полягає в доведенні більш слабких результатів виду: “якщо P NP, то П NP\P”.
Основна ідея подібного умовного підходу основана на перетворені задач та понять поліноміальної зведенності
Задача П1 перетворюється в задачу П2, якщо будь-яка індивідуальна задача І П1 перетворюється за поліноміальний час в деяку індивідуальну задачу J П2, т.щ. розв'язок задачі П1 можна отримати за поліноміальний час з розв'язок задачі J П2. В цьому випадку будемо казати, що П1 поліноміально зводиться до задачі П2 і позначимо це як — П1 П2.
Вихід
П1
Вихід
П2
Вхід
П2
Вхід
П1
Алгоритм
для П2
Алгоритм
для П2
Перетвор.
за пол. час
Перетвор.
за пол. час
Р
Перетвор.
за пол. час
ис.
1.1. Схема
поліноміального перетворення задачі
П1 в задачу П2 [2]
Нехай П1
та П2
— задачі розпізнавання властивостей.
Тоді поліноміальна
зведенність задачі П1
до задачі П2
означає наявність функції
:
DП1
DП2,
яка задовольняє двом умовам:
а) — обчислюється поліноміальним алгоритмом
б) для всіх
DП1 ,
YП1 тоді
і тільки тоді, коли
(
)
YП2
.
Щоб отримати конкретне уявлення про смисл цього визначення, розглянемо приклад.
Нехай
—
граф з множиною вершин
та множиною ребер
.
Простим циклом в
називаеться така послідовність <
,
,
>
різноманітних вершин із
,
що
,
,
<
k , і
,
Гальмітоновим циклом в
називаеться простий цикл, який містить
всі вершини графа
Задача гамільтонів цикл полягає в відповеді на питання — чи вірно, що граф . містить гамільтонів цикл.
Покажемо, що задача гамільтонів цикл (ГЦ), зводиться до задачі комівояжор (КМ). Для цього побудуемо функцію , яка відображає кожну індивідуальну задачу із ГЦ у відповідну індивідуальну задачу із КМ і задовольняє двом умовам поліноміальної зведенності.
Функція визначається наступним чином.
Нехай
,
=
— фіксована індивідуальна
задача із ГЦ. Відповідна задача із КМ
будується так: множена графів C співпадає
з
;
для будь-яких двох міст
,
C
відстань
.
між ними покладемо рівною 1, якщо
,
,
i 2 в іншому випадку. Межа
для
довжини шуканого маршруту береться
рівною
.
Легко помітити, що функція
здійснює
зведеність і може бути обчислена за
поліноміальний час. Для перевірки другої
вимоги необхідно показати, що
містить гамільтонів цикл тоді і тільки
тоді, коли в
є
маршрут який проходить через всі міста
і не перевищує
.
Нехай <
,
,…,
>
— гамільтонів цикл
тоді <
,
,…,
>
маршрут в
,
а його довжина рівна
(
=
).
Так як відстань між будь-якими сусідніми
містами маршрута рівна 1. Навпаки, нехай
<
,
,…,
>.
— маршрут в
, довжина якого не перевишує
Оскільки відстань між мистами рівна
або 1, або 2 і при обчислені довжини
маршрута сумується рівно
відстаней, то із того, що
=
випливає, що відстань між парою сусідніх
міст в маршруті рівна 1. По визначенню
випливає що
,
1
<
,
—
є ребрами графа
,
і, от же, <
,
,…,
>
— гамільтонів цикл в
Таким чином ГЦ
КМ.
Задача розпізнавання П називається NP-повною, якщо П NP і будь-яка інша задача розпізнавання П NP зодиться до П. Таким чином NP-повні задачі ніби “найважчі задачі із NP”. Якщо хочаб одна NP повна задача може бути розв'язана за поліноміальний час, то і всі задачі із NP також можуть бути розв'язані за поліноміальний час. Отже, будь-яка NP-повна задача П володіє властивістю: П P. тоді і тільки тоді, коли P = NP.
Рис. 1.2. Співідношення между класами P i NP задач