Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
методичка2.doc
Скачиваний:
2
Добавлен:
01.04.2025
Размер:
3.11 Mб
Скачать

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 належать:

  1. Розв'язність логічного виразу.

  2. Три-кольорове розфарбування графу.

  3. Побудова кліки з k вершин на неорієнтованому графі.

Покриття множин: нехай задане сімейство F підмножин Ei деякої множини E; необхідно знайти підсемейство G із F, так, що:

  1. Існування гамільтонового циклу на неорієнтованому графі.

Що таке NP повна задача?

Що таке NP важка задача?

Які ви знаєте властивості NP важких задач?

Приклади NP важких задач.

Література

  1. В.А.Носов. Основы теории алгоритмов и анализ их сложности. К.л. М.: 1992. – 140 с.

  2. А. А. Марков. Теория алгоритмов // М.: 1961

  3. В.М. Зюзьков. Лекции по теории алгоритмов.

  4. А. Ахо, Дж. Хопкрофт, Дж. Ульман. Построение и анализ вычислительных алгоритмов. – М.: Мир, 1979.–536с.

  5. Э. Рейнгольд, Ю. Нивергельт, Н. Део. Комбинаторные алгоритмы. Теория и практика. – М.: Мир, 1980.–480с.

  6. . Кристофидес. Теория графов. Алгоритмический подоход. – М.: Мир, 1978.-432с.

  7. В.А. Горбатов. Основы дискретной математики: Уч. пос. для студентов вузов. – М.: Высш. шк., 1986.-311с.

  8. П. олл. Вычислительные структуры. Введение в нечисленное программирование. –М.: Мир, 1978.-216с.

  9. Н. Вирт. Алгоритмы + структуры данных=программы.-М.: 1985.-406с.

  10. А.Т. Берзтисс. Структуры данных.-М.:Статистика, 1974.-408с.

  11. Гудман С., Хидетниеми С. Введение в разработку и анализ алгоритмов.-М.: Мир, 1981.-368с.

  12. М.А. Айзерман и др. Логика. Автоматы. –М.: Физматгиз, 1963.-556с.

47