- •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.2.Комівояжор
Умова. Задані кінцева множіна
“міст”, “відстань” d (ci,cj) Z+
для кожної пари “міст” ci,
cj C
та межа В
Z+.
Питання. Чи існує маршрут, якій проходить через всі міста з С, довжина якого не перебільшує В? Іншими словами чи існує послідовність <cП(1), cП(2), ... , cП(m)> т.щ.
Якщо в оптимізаційній задачи серед усіх структур данного типу є структура, яка має мінімальну «вартість» (маршрут мінімальної довжини), то ці задачі можна співставити задачу розпізнавання, в якій в якості додаткового параметра фігурує чіслова межа B, а питання ставиться про існування структури даного типу, вартість якої не перевищує B (маршрут довжини не більше B). Аналогічним чином задачу розпізнавання можно отримати із задачі максимізіціі. Для цього досить умову “не перевищує” замінити умовою “не меньше”.
Для таких пар задач важливо відмітити, що оскільки значення функції легко оцінити, то задача розпізнавання не може бути складнішою відповідної функції оптимізації. Якщо для задачі про комівояжора можна за поліноміальний час знайти маршрут мінімальної довжини, то і відповідну задачу розпізнавання можна розв’язати за поліноміальний час.Для цього потрібно тільки знайти маршрут мінімальної довжини, обчислити його довжину і порівняти її з заданою межею B. Тому, якщо задача про комівояжора NP-повна, то і оптимізаційна задача про комівояжора буде не менш складною.
1.3.Поліноміальні та експоненціальні алгоритми
Скажемо, що функція f (n) є
O(g(n)), якщо існує
константа С, така, що
для всіх значень n0.
Поліноміальним алгоритмом (або
алгоритмом поліноміальної часової
складністі) називається алгоритм, в
якому часова складність дорівнює
O(p(n)), де p(n) деяка
поліноміальна функція, а n вхідна
довжина. Алгоритми, часова складність
яких не піддається подібній оцінці,
називаються експоненціальними
(функції типу nlog n за звичай
не вважаються експоненціальними).
Різниця між цими типами алгоритмів особливо помітна при вирішенні задач великого розміру.
Табл. 1 Швидкість зростання типових поліноміальних та експоненціальних функцій
Функція часової |
Розмір n |
|||||
складності |
10 |
20 |
30 |
40 |
50 |
60 |
n |
0,00001 сек |
0,00002 сек |
0,00003 сек |
0,00004 сек |
0,00005 сек |
0,00006 сек |
n2 |
0,0001 сек |
0,0004 сек |
0,0009 сек |
0,0016 сек |
0,0025 сек |
0,0036 сек |
n3 |
0,001 сек |
0,008 сек |
0,027 сек |
0,064 сек |
0,125 сек |
0,216 сек |
n5 |
0,1 сек |
3,2 сек |
24,3 сек |
1,7 хв |
5,2 хв |
13,0 хв |
2n |
0,001 сек |
1,0 сек |
17,9 хв |
12,7 днів |
35,7 років |
366 століть |
3n |
0,059 сек |
58 хв |
6,5 років |
3855 століть |
2108 століть |
1,31013 століть |
Табл. 2. Вплив збільшення швидкодії ЕОМ на час роботи алгоритмів.
|
Розмір найбільшої задачі, розв’язаної за 1 годину |
||
Функція часової складності |
На сучасних ЕОМ |
На ЕОМ в 100 разів швидших |
На ЕОМ в 1000 разів швидших |
n
|
N1 |
100 N1 |
1000 N1 |
n2
|
N2 |
10 N2 |
31,6 N2 |
n3
|
N3 |
4,64 N3 |
10 N3 |
n5
|
N4 |
2,5 N4 |
3,98 N4 |
2n
|
N5 |
N5+6,64 |
N5+9,97 |
3n
|
N6 |
N6+4,19 |
N6+6,29 |
Будемо називати задачу важковирішуваною, якщо для її вирішення не існує ПА.
В той же час, відомі ЕА, які досить добре зарекомендували себе на практиці. Через те, що часова складність визначена як міра поведінки алгоритму в негіршому випадку, то той факт, що алгоритм має часову складність порядку 2n, означає тільки те, що розв’язку хоча б однієї індивідуальної задачі розміру n потребує часу порядку 2n. Насправді може виявитися, що більшість індивідуальних задач може бути вирішена за дещо менший час.
Визначимо клас всіх задач, які можна вирішити ПА через Р та, відповідно, клас задач, вирішуваних ЕА через NP.
Питання про взаємовідношення класів P та NP має фундаментальне значення для теорії складностей екстремальних задач. Очевидно, що P NP, тобто якщо задачу можна розв’язати ПА то її можна також розв'язати і ЕА. Про те, в наш час, існує велечезна кількість задач класса NP, для яких не знайдено поліноміальних алгоритмів розв'язку, не дивлячись на наполегливі зусилля багатьох відомих дослідників. Тому прийнято вважати, що включення P в NP строге або, що P NP, хоча доведення цієї гіпотези відсутнє.
