P срещу NP: Най-голямото предизвикателство в информатиката и неговото значение

Проблемът P срещу NP | Д-р Атанас Илчев
📞 Онлайн уроци по математика за цялата страна гл.ас. д-р Атанас Илчев Индивидуални и групови уроци • Тел: 0883 375 433 Подготовка за НВО, ДЗИ, кандидатстудентски изпити 📞 Онлайн уроци по математика за цялата страна гл.ас. д-р Атанас Илчев Индивидуални и групови уроци • Тел: 0883 375 433 Подготовка за НВО, ДЗИ, кандидатстудентски изпити
★ Интересно от математиката

Проблемът \(P\) срещу \(NP\) —
най-важният нерешен въпрос в информатиката

Милион долара награда, разклатена интернет сигурност, революция в изчислителните науки — всичко това зависи от отговора на един въпрос: дали намирането на решение е по-трудно от проверката му?

Д-р Атанас Илчев Поредица: Интересно от математиката
P срещу NP

Проблемът \(P\) срещу \(NP\) е смятан за най-голямото нерешено предизвикателство едновременно в информатиката и в математиката. Той е включен в списъка на седемте проблема на хилядолетието на Института Клей и носи награда от 1 000 000 долара. Но значението му надхвърля далеч всяка парична стойност: предположението \(P \neq NP\) е в основата на почти цялата съвременна интернет сигурност — от криптирането на банкови карти до блокчейн технологиите. Ако някой докаже, че \(P = NP\), тези системи биха се сринали.

Какво означават \(P\) и \(NP\)?

Двата класа се различават по това колко трудно е да се стигне до верен отговор спрямо това колко лесно е да се провери вече даден отговор.

Класът P

Задачи, които могат да бъдат решени за полиномиално време. С нарастването на входните данни времето за решаване расте умерено — като степенна функция на размера им.

Класът NP

Задачи, чиито решения могат да бъдат проверени за полиномиално време. Намирането на решение може да е трудно; проверката му — бърза.

„Полиномиално" означава, че времето за изчисление може да се опише с полином — израз от вида \(f(n) = 4n^5 + 7n^3 - n + 1{,}5\), където \(n\) е размерът на входа. Всичко, което расте по-бавно от експоненциална функция, се счита за „ефективно" в теорията на изчислителната сложност.

Задачата за пътуващия търговец

Класически пример за задача в \(NP\) е задачата за пътуващия търговец: дадени са \(n\) града, търсим маршрут, минаващ през всички тях, с обща дължина под зададена граница. Броят на възможните маршрути е \(\frac{(n-1)!}{2}\) — за 100 града това е около \(10^{155}\) варианта за проверка. Дори ако разгледате по един маршрут всяка наносекунда от Големия взрив насам, не бихте успели да ги изчерпите.

Въпреки многото умни евристични методи, досега никой не е открил алгоритъм, решаващ тази задача за полиномиално време. Но ако ви предоставят конкретен маршрут, проверката е тривиална — просто се сумират разстоянията между 100 града и се дава отговор „да" или „не". Точно тази асиметрия между намирането и проверката е същността на \(NP\).

ⓘ Ако P = NP...
Доказателството, че \(P = NP\), би означавало съществуването на ефективни алгоритми за всички задачи в \(NP\) — включително задачата за пътуващия търговец, задачата за сумиране на подмножества, задачата за граф-клика, алгоритъма RSA (криптиране на банкови карти) и криптографията с елиптични криви, използвана в блокчейн. Почти цялата съвременна криптография разчита на предположението, че \(P \neq NP\).

Недетерминистично изчисление

Недетерминистично изчисление

Буквата „N" в \(NP\) означава „недетерминистично". Формалната дефиниция на класа \(NP\) — тази, с която работят теоретиците — не говори за „проверка", а за изчисление: \(NP\) е множеството от задачи, решими за полиномиално време от недетерминистична машина на Тюринг. Доказано е, че двете дефиниции — чрез проверка и чрез недетерминистична машина — са математически еквивалентни.

„\(NP\) е множеството от задачи за вземане на решения, за които примерите с отговор „да" имат доказателства, проверими за полиномиално време от детерминистична машина на Тюринг, или алтернативно — задачи, решими за полиномиално време от недетерминистична машина на Тюринг." — Wikipedia, „NP (complexity)"

Какво е машина на Тюринг?

Машината на Тюринг е теоретичен модел на компютър, въведен от Алън Тюринг през 1936 г. Тя се състои от безкрайна лента с клетки, глава за четене и писане и набор от правила (алгоритъм), управляващи нейното поведение. Въпреки простотата си, тя е способна да моделира всяко изчисление, извършимо от реален компютър.

Недетерминистичната машина на Тюринг е абстрактно разширение на тази идея: при всяка стъпка тя може да „избере" едновременно между множество възможни преходи и да следва всички паралелно. Ако поне един от тези клонове стигне до верен отговор, машината се счита за успешна. Това е изцяло теоретична конструкция — никакъв реален компютър не работи така.

Интуитивно: детерминистичната машина е като лабиринт, в който трябва да изберете един коридор наведнъж. Недетерминистичната е като лабиринт, в който можете да следвате всички коридори едновременно и да обявите победа, ако поне един от тях води до изход.

История: как се ражда проблемът?

История на P срещу NP

Концепцията за недетерминизъм е въведена през 1959 г. от Майкъл Рабин и Дейна Скот в статията им „Крайни автомати и техните задачи за решения". Те описват недетерминистичен автомат като машина, която приема дадена входна лента, ако сред всички възможни комбинации от избори съществува поне една, водеща до крайно (приемащо) състояние.

Проблемът \(P\) срещу \(NP\) в съвременния му вид е формулиран от Стивън Кук в статията му от 1971 г. „Сложността на процедурите за доказване на теореми". Кук идентифицира и първата \(NP\)-пълна задача — задачата за удовлетворяемост на булеви формули (SAT).

Година по-късно, 1972 г., Ричард Карп разширява резултата на Кук, като доказва, че още 21 конкретни задачи са \(NP\)-пълни — сред тях задачата Graph Clique и задачата за Хамилтонов цикъл. Днес са известни хиляди \(NP\)-пълни задачи.

Защо \(NP\), а не нещо по-интуитивно?

Защо NP

Естествено е да се запитаме: защо класът \(NP\) е дефиниран чрез недетерминистични машини вместо чрез по-достъпното понятие за „проверяемост"? Причините са две.

Първо, недетерминистичните машини позволяват да се разсъждава за задачите от гледна точка на намирането на решение, а не само на неговата проверка — което дава по-широк теоретичен обхват. Второ, математическата структура на недетерминистичната машина на Тюринг е почти идентична с тази на детерминистичната: единствената разлика е, че функцията за преход към следващото състояние се заменя с релация — т.е. от едно състояние могат да водят много преходи вместо един. Тази минимална промяна на дефиницията е достатъчна, за да се получи качествено различно изчислително поведение.

Ключов извод: определението чрез недетерминизъм и определението чрез проверяемост са математически еквивалентни. Математиците предпочитат първото заради по-чистата му формална структура; всички останали — второто, заради интуитивната му яснота. И двете описват един и същи клас задачи.

Проблемът \(P\) срещу \(NP\) стои нерешен вече над 50 години. Повечето специалисти смятат, че \(P \neq NP\), но убедително доказателство — в нито една посока — все още не е намерено. Това прави въпроса не просто математически предизвикателен, а и философски дълбок: означава ли творчеството и откритието нещо принципно по-трудно от проверката?

P срещу NP Полиномиално време NP-пълни задачи Машина на Тюринг Изчислителна сложност Криптография Задача за пътуващия търговец
Следваща статия от поредицата
Интересни факти от историята на математиката

Запишете урок

Индивидуални и групови онлайн уроци по математика за цялата страна

🎓 Подготовка за изпити
  • НВО по математика след 7 клас
  • НВО по математика след 10 клас
  • Кандидатстудентски изпити по математика
  • Прием в университети в чужбина (ISEE, SAT, A-Level)
📚 Текущо обучение и студенти
  • Усвояване на текущия учебен материал (всички класове)
  • Студенти: Мат. анализ, Линейна алгебра, Аналитична геометрия, Диф. уравнения, Теория на вероятностите, Статистика и др.

Харесва ли ви съдържанието?

Ако тази статия ви е харесала, можете да подкрепите създаването на нови безплатни материали.

📞 Онлайн уроци по математика за цялата страна гл.ас. д-р Атанас Илчев Индивидуални и групови уроци • Тел: 0883 375 433 Подготовка за НВО, ДЗИ, кандидатстудентски изпити 📞 Онлайн уроци по математика за цялата страна гл.ас. д-р Атанас Илчев Индивидуални и групови уроци • Тел: 0883 375 433 Подготовка за НВО, ДЗИ, кандидатстудентски изпити

Коментари

Популярни публикации от този блог

Множества. Основни понятия - обединение, сечение, разлика и допълнение на множества

Триъгълник. Сбор на ъгли в триъгълник. Външен ъгъл на триъгълник 7 клас

Ъгли получени при пресичането на две прави с трета. Теореми признаци, за успоредност на две прави 7 клас