
- •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 - повних задач.
27 1.6. Аналіз підзадач
1.Основні положення теорії складності (np-повноти) екстремальних задач
1.1.Задачі, алгоритми та складність. Основні визначення.
Більшість дискретних і комбінаторних
задач, взагалі кажучи, допускає розв’язок
за допомогою деякого процесу перебирання.
Так, наприклад, задачу про “Рюкзак”
вигляду
, можна
вирішити, перебираючи булеві n-мірні
вектори. Такі задачі називаються
переборними. Однак, число кроків
переборного методу зростає екстремально
в залежності від розмірів задачі. Для
деяких задач такого типу можна побудувати
ефективні методи розв’язку,
хоча їх кількість і невелика.
Аналіз труднощів, які зустрічаються на шляху створення ефективних методів розв'язку дискретних задач, призвів до постановки центральної теоретико-методологічної проблеми всієї дискретної математики - чи можна виключити перебирання при розв'язку дискретних задач? Більш того, при пошуку ефективних точних методів розв'язку таких задач потрібно враховувати можливість відсутності таких методів та визнати, що існують “важковирішувані задачі”.
В переборних задачах, як правило, має місце кінцева множина варіантів (в задачі про “Рюкзак” розглядається 2n векторів довжини n). Але із зростанням n число векторів швидко зростає і задача стає “важковирішуваною”. Загальноприйнято вважати переборну задачу вирішуваною ефективно, якщо є алгоритм, який вирішує її за час, що обмежений поліномом від “розміру задачі”.
На жаль, довести що задача “важковирішувана” не менш складно, ніж знайти ефективні алгоритми. Однак, знання цього факту дає цінну інформацію про те, які підходи до її розв’язку будуть найбільш перспективними. Наприклад, можна розробляти ефективні алгоритми, які дозволяють вирішувати різні часткові випадки поставленої загальної задачі.
Можна зайнятися пошуком алгоритмів, хоча і не гарантуючих швидкого розв'язку, однак, працюючих досить швидко в більшості випадків. Можливо навіть послабити постановку задачі та шукати швидкий алгоритм, в якому заданим вимогам задовольняє більша частина характеристик.
Основне призначення теорії складності екстремальних задач полягає в тому, щоб допомогти розробникам алгоритмів і спрямувати їх зусилля на вибір таких підходів, які, вірогідніше за все, призведуть до практично корисних алгоритмів.
Задача. Під масовою задачею (просто задачею) ми будемо розуміти деяке загальне питання, на яке слід дати відповідь. За звичай задача містить декілька параметрів, конкретні значення яких не визначені.
Задача П визначається наступною інформацією:
загальним списком всіх її параметрів,
формуванням тих вимог, котрим повинна задовольняти відповідь або, іншими словами, розв'язок задачі.
Індивідуальна задача І отримується з масової задачі П, якщо всім параметрам задачі П присвоїти конкретне значення.
Під алгоритмом будемо розуміти загальну процедуру розв’язку задачі, яка виконується ним крок за кроком. Для визначеності ми можемо вважати її програмою для ЕОМ.
Будемо говорити, що алгоритм вирішує масову задачу П, якщо його можно застосувати до будь-якої індивідуальної задачі І з П і обов’язково дає розв'язок задачі І.
У широкому розумінні поняття ефективності пов’язано з усіма обчислювальними ресурсами, необхідними для роботи алгоритму. Ми будемо розуміти під найефективнішим алгоритмом - найшвидший.
Час роботи алгоритму зручно виражати у вигляді функції від одної змінної, яка характеризує розмір індивідуальної задачі, тобто обсяг вхідних даних, які потрібні для опису цієї задачі. Досить часто розмір задачі вимірюється неформально. В задачі «комівояжора» наприклад, для цієї мети за вичай використовується число міст (хоча в задачах існують ще й величини, які визначають відстань між містами).
Існують різні шляхи опису даної індивідуальної задачі. Ми будемо вважати, що з кожною масовою задачею пов’язана деяка фіксована схема кодування, яка відображає індивідуальні задачі у відповідні ланцюги символів.
Вхідна довжина індивідуальної задачі І з П визначається як число символів в ланцюжку, одержаному застосуванням до задачі І схеми кодування для масової задачі П.
Часова складність алгоритму відображає потрібні для його роботи затрати часу. Це функція, яка кожній вхідній довжині n ставить у відповідність максимальний (по всім індивідуальним задачам довжини n) час, який витрачається алгоритмом на розв'язок індивідуальних задач цієї довжини. Така функція буде визначена, якщо буде зафіксована схема кодування та обрано обчислювальний пристрій (або модель), який визначає час роботи. Однак, для нас подібні деталі будуть несуттєвими.
Виходячи з міркувань зручності теорія складності екстремальних задач будується для задач розпізнавання властивостей. Такі задачи мають лише два можливих розв'язки — «так» або «ні». Можна сказати, що задача розпізнавання П складається просто з двух множин: множини DП всіх можливих індивідуальних задач і множини YП (YП DП) — індивідуальних задач з відповіддю “так”. Задача розпізнавання, яка є відповідною задачі про “комівояжора”, може бути сформульована наступним чином.