- •0Міністерство освіти і науки, молоді та спорту україни
- •«Теорія алгоритмів» Методичні вказівки
- •2.1 Види алгоритмів
- •2.2 Організація лінійних алгоритмів .
- •2.3 Організація розгалужень в са
- •2.4 Організація циклів.
- •Розділ 3. Моделі обчислень
- •3.1 Скінченний автомат, як модель перетворювача дискретної інформації
- •3.2 Визначення та властивості скінченого автомату
- •3.3 Автомат Мілі
- •3.4 Автомат Мура
- •3.5 Машина Тюрінга.
- •3.5.1 Історія
- •3.5.2 Визначення машини т.
- •3.5.3 Можливості машини Тюрінга
- •3.5.4 Приклади
- •4.1 Необхідність структурування даних. Поняття Структури даних
- •4.2 Послідовне і зв’язне розподілення даних в пам’яті еом.
- •4.2.2 Зв'язаний розподіл в пам'яті.
- •4.3 Лінійні та нелінійні структури даних.
- •4.3.1 Лінійні струтури даних
- •Однозв'язні списки
- •Двохзв'язні списки
- •4.3.2 Нелінійні структури даних
- •4.4 Статичні структури даних.
- •4.5 Уявлення в пам’яті машини множин; операції над множинами. Уявлення графів. Дерева і бінарні дерева. Характеристики дерев. Ліс. Уявлення бінарних дерев. Перехід від дерева до бінарного дерева.
- •4.5.1 Множини. Опис множин, операції над множинами.
- •4.5.2 Поняття графа як структури даних.
- •Застосування графів
- •4.5.3 Поняття дерева як структури даних
- •4.5.4 Бінарне дерево
- •Перехід від дерева до бінарного дерева
- •4.6 Порядок обходу вузлів дерева: обернений і внутрішній. Властивості обходу вузлів дерева: прямий, обернений і внутрішній. Властивості обходу дерев. Порядок та властивості обходу дерева.
- •5.1 Предмет теорії комбінаторних алгоритмів (обчислювань)
- •5.2 Правила множення і суми для знаходження
- •5.3 Види задач підрахунку числа елементів множин
- •1. Метод рекурентних співвідношень.
- •2. Метод включення і виключення.
- •5.4 Елементи комбінаторики. Набори: набори з повторюванням; специфікація набору
- •Розділ 6 Ефективність алгоритмів
- •6.1. Характеристики алгоритмів.
- •6.2 Ємна та часова складність. Поліноміальна зв’язність.
- •6.3 Класи p та np
6.3 Класи p та np
Означення. P-задачею називається задача, яка може бути розв'язана на детермінованій машині Тюрінга за поліноміальний час O (nm), де n - розмір задачі. Іншими словами, P-задача - це задача, для розв'язку якої існує поліноміальний алгоритм.
Під детермінованою машиною Тюрінга мається на увазі машина Тюрінга у вищенаведеному розумінні. "Детермінованість" означає, що в будь-який момент дія машини є чітко визначеною. На відміну від цього, не детермінована машина Тюрінга у будь-який момент часу може одночасно реалізовувати декілька можливих варіантів дій. Така машина є теоретичною абстракцією і не може бути реалізована на основі фон-нейманівських принципів. Вона могла б бути реалізована лише на багатопроцесорній машині за умови наявності необмеженої кількості процесорів.
Формально інструкцію не детермінованої машини Тюрінга можна записати у вигляді:
aisk→SAI,
це означає, що, якщо машина перебуває у стані sk і читає символ ai, вона породжує певну кількість нових машин, кожна з яких записує деякий символ з S, переходить до деякого стану з A і зсувається вправо, вліво, або залишається на місці. Можна вважати, що всі породжені машини продовжують перебір варіантів.
Означення. NP-задачею називається задача, яка може бути розв'язана на детермінованій машині Тюрінга за поліноміальний час O (nm), де n - розмір задачі.
Якщо ж обмежитися детермінованими алгоритмами, то для вирішення будь-якої NP-задачі можна використовувати схему перебору з поверненням або подібні до неї перебірні схеми. Як зазначалося раніше, подібні алгоритми є експоненційними по своїй суті, і задачі, які вимагають застосування таких алгоритмів, відносяться до класу важко вирішуваних. Втім, це не виключає існування поліноміальних алгоритмів, і для ряду задач, які мають характер пошуку на дереві, такі алгоритми дійсно були знайдені. Позначимо через P клас P-задач, а через NP - клас NP-задач Ясно, що P - підмножина NP. Але питання про те, чи є це включення строгим, залишається відкритим.
Як визначається алгоритм?
Яким вимогам має задовольняти алгоритм?
Яка функція є обчислювальною?
Що таке часова складність алгоритму?
Що таке ємнісна складність алгоритму?
Як описується складність алгоритму?
Які ви знаєте класи алгоритмів?
Що називається P - задачею?
6.4 NP-повні задачі.
Кажуть, що задача A поліноміально зводиться до задачі B, якщо рішення задачі A може бути отримано з рішення задачі B за поліноміальний час.
Задача називається NP-складною, якщо до неї за поліноміальний час зводиться будь-яка NP – задача.
Якщо NP-складна задача є NP-задачею, така задача називається NP-повною. Поняття NP-повної задачі має велике значення. Якщо для будь-якої NP-повної задачі буде знайдений поліноміальний алгоритм, це означатиме, що поліноміальний алгоритм існує для будь-якої NP-задачі, і тоді виявиться, що P = NP. Але таких алгоритмів поки що знайдено не було, і шансів на їх знаходження залишається все менше і менше.
Дуже важливим є наступний результат, що був отриманий Куком: задача про виконуваність булевого виразу є NP-повною.
6.5 NP-важкі задачі
Клас складності NP (англ. Complexity class NP) — клас складності, до якого належать задачі, що можна розв'язати не детермінованими алгоритмами за поліноміальний час; тобто, не детермінованими алгоритмами в яких завжди існує шлях успішного обчислення за поліноміальний час відносно довжини вхідного рядка; очевидно, що РNP.
Мова L належить до класу NP (не детермінованих поліноміальних) якщо вона розпізнається не детермінованою машиною Тюрінга M з поліноміальною часовою складністю T(n).
Властивості
Оскільки кожна детермінована машина Тюрінга може розглядатись як недетермінована але без вибору варіантів кроків, то клас Р є підмножиною NP Однак, до класу складності NP належить багато інших задач, що не належать до класу P.
Однією з найгостріших задач математики є з'ясування вірності тотожності Р=NP. Тобто, пошуку відповіді на питання, чи вірне те, що будь-що, що виконує недетермінована машина Тюрінга за поліноміальний час можна виконати на детермінованій машині за, можливо більший, поліноміальний час.
Приклад задач
До задач класу складності NP належать:
Розв'язність логічного виразу.
Три-кольорове розфарбування графу.
Побудова кліки з k вершин на неорієнтованому графі.
Покриття множин: нехай задане
сімейство F підмножин Ei деякої множини
E; необхідно знайти підсемейство G із F,
так, що:
Існування гамільтонового циклу на неорієнтованому графі.
Що таке NP повна задача?
Що таке NP важка задача?
Які ви знаєте властивості NP важких задач?
Приклади NP важких задач.
Література
В.А.Носов. Основы теории алгоритмов и анализ их сложности. К.л. М.: 1992. – 140 с.
А. А. Марков. Теория алгоритмов // М.: 1961
В.М. Зюзьков. Лекции по теории алгоритмов.
А. Ахо, Дж. Хопкрофт, Дж. Ульман. Построение и анализ вычислительных алгоритмов. – М.: Мир, 1979.–536с.
Э. Рейнгольд, Ю. Нивергельт, Н. Део. Комбинаторные алгоритмы. Теория и практика. – М.: Мир, 1980.–480с.
. Кристофидес. Теория графов. Алгоритмический подоход. – М.: Мир, 1978.-432с.
В.А. Горбатов. Основы дискретной математики: Уч. пос. для студентов вузов. – М.: Высш. шк., 1986.-311с.
П. олл. Вычислительные структуры. Введение в нечисленное программирование. –М.: Мир, 1978.-216с.
Н. Вирт. Алгоритмы + структуры данных=программы.-М.: 1985.-406с.
А.Т. Берзтисс. Структуры данных.-М.:Статистика, 1974.-408с.
Гудман С., Хидетниеми С. Введение в разработку и анализ алгоритмов.-М.: Мир, 1981.-368с.
М.А. Айзерман и др. Логика. Автоматы. –М.: Физматгиз, 1963.-556с.
