Кіріспе
Бульдік қанағаттандырылу NP-толық және демек, NP-толық проблемалар бар. Есептеу күрделілігі теориясында Кук-Левин теоремасы, сондай-ақ Кук теоремасы деп аталатын теорема, Бульдік қанағаттандырылу проблемасы NP-толық екенін көрсетеді. Яғни, ол NP класында, және NP класындағы кез келген проблеманы детерминистік Тьюринг машинасы полиномдық уақытта Бульдік қанағаттандырылу проблемасына келтіруге болады. Теорема Стивен Кук пен Леонид Левиннің есімдерімен аталады. Дәлелді Рихард Карп жасаған, ол Куктың алдыңғы дәлеліне (әртүрлі түрлендіру ұғымын қолдана отырып) негізделген. Бұл дәлел жаңа құрылған ACM Есептеу теориясы симпозиумының материалдарында жарияланған. Ричард Карптың "Комбинаторлық проблемалар арасындағы түрлендіру" атты кейінгі мақаласы, > Теодор П. Бейкер, Джон Гилл және Роберт Соловэйдің 1975 жылы жарық көрген жұмысы NP-толықтығына теориялық қызығушылықты арттырды. Олар белгілі бір оракул машина модельдерінде NP проблемаларын шешу үшін экспоненциалды уақыт қажет екенін көрсетті. Яғни, A оракулы бар, сондықтан барлық субэкспоненциалды детерминистік уақыт күрделілігі кластары T үшін, салыстырмалы күрделілік класы NPA, TA класының ішкі жиыны емес. Атап айтқанда, осы оракул үшін PA ≠ NPA. КСРО-да Бейкер, Гилл және Соловэйдің нәтижесіне эквивалентті нәтиже 1969 жылы М. Дехтиар тарапынан жарияланды. Кейін Леонид Левиннің "Жалпы іздеу проблемалары" атты мақаласы 1973 жылы жарық көрді, бірақ ол бірнеше жыл бұрын баяндамаларда талқыланды және жариялануға ұсынылды. Левиннің тәсілі Кук пен Карптың тәсілдерінен сәл өзгеше болды, себебі ол жай ғана шешімнің болуын анықтаудың орнына, шешімдерді табуды қажет ететін іздеу проблемаларын қарастырды. Ол осындай алты NP-толық іздеу проблемасын немесе жалпы проблемаларды ұсынды. Сонымен қатар, ол осы проблемалардың әрқайсысы үшін оны оңтайлы уақытта шешетін алгоритм тапты (әсіресе, бұл алгоритмдер P = NP болған жағдайда ғана полиномдық уақытта жұмыс істейді).
In computational complexity theory, the Cook–Levin theorem, also known as Cook's theorem, states that the Boolean satisfiability problem is NP complete. That is, it is in NP, and any problem in NP can be reduced in polynomial time by a deterministic Turing machine to the Boolean satisfiability problem. The theorem is named after Stephen Cook and Leonid Levin. The proof is due to Richard Karp, based on an earlier proof (using a different notion of reducibility) by Cook. in conference proceedings of the newly founded ACM Symposium on Theory of Computing. Richard Karp's subsequent paper, "Reducibility among
combinatorial problems",
>
The theoretical interest in NP completeness was also enhanced by the work of Theodore P. Baker, John Gill, and Robert Solovay who showed, in 1975, that solving NP problems in certain oracle machine models requires exponential time. That is, there exists an oracle A such that, for all subexponential deterministic time complexity classes T, the relativized complexity class NPA is not a subset of TA. In particular, for this oracle, PA ≠ NPA. In the USSR, a result equivalent to Baker, Gill, and Solovay's was published in 1969 by M. Dekhtiar. Later Leonid Levin's paper, "Universal search problems", was published in 1973, although it was mentioned in talks and submitted for publication a few years earlier. Levin's approach was slightly different from Cook's and Karp's in that he considered search problems, which require finding solutions rather than simply determining existence. He provided six such NP complete search problems, or universal problems. Additionally he found for each of these problems an algorithm that solves it in optimal time (in particular, these algorithms run in polynomial time if and only if P = NP).
Анықтамалар
Шешімдік мәселе NP класында болады, егер оны детерминистік емес Тьюринг машинасы полиномиалдық уақытта шеше алатын болса. Бульдік қанағаттандыру мәселесінің бір мысалы – Бульдік операторлар арқылы байланыстырылған Бульдік айнымалылардан құралған Бульдік өрнек. Егер айнымалыларға дұрыс немесе бұрыс мәндерін тағайындаудың нәтижесінде бүкіл өрнек шын болып шықса, онда мұндай өрнек қанағаттандырылатын болады.
Идея
NP-дегі кез келген шешім есепті қарастыра отырып, оны полиномиалдық уақытта шешетін детерминистік емес машинаны құрастырыңыз. Содан кейін, осы машинаға берілген әрбір кіріс үшін, машинаға нақты кіріс берілген кезде машина дұрыс жұмыс істейтінін, тоқтатылатынын және "иә" деп жауап беретінін анықтайтын Бульдік өрнек құрастырыңыз. Осы өрнекті қанағаттандыру мүмкін болса және тек қана машина дұрыс жұмыс істеп, "иә" деп жауап бере алатын болса, құрастырылған өрнектің қанағаттандырылуы машинаның "иә" деп жауап беретініне балама болады.
Күрделілігі
Жоғарыда аталған әдіс күрделілік бойынша детерминистік емес Тьюринг машинасының кодтауын қамтамасыз етеді, бірақ әдебиет күрделілік саласында одан да күрделі тәсілдерді сипаттайды. Квазилинейлік нәтиже алғаш рет Куктың бастапқы жарияламынан жеті жыл кейін пайда болды. НП-толық проблеманың бар екенін дәлелдеу үшін SAT-ты қолдану, логикадағы басқа есептеу проблемаларына және басқа күрделілік сыныптарының толықтығына дейін қолданылуы мүмкін. Квантталған Буль формулалары мәселесі (QBF) өз айнымалылары үшін ішкі әмбебап кванторлар мен барлыққа қатысты кванторларды қосатын кеңейтілген Буль формулаларын қамтиды. QBF мәселесі полиномдық кеңістік күрделілігімен шектелген Тьюринг машинасымен есептеуді кодтау үшін пайдаланылуы мүмкін, бұл нағыз квантталған Буль формулаларын тану мәселесі PSPACE-толық екенін көрсетеді. Сол сияқты, тәуелділікпен квантталған Буль формулалары логарифмдік кеңістік күрделілігімен шектелген Тьюринг машинасымен есептеуді кодтайды, бұл NL-толық проблеманың бар екенін дәлелдейді.
Салдарлар
Дәлелдеу NP-дегі әрбір мәселені полиномиялық уақыт ішінде (әрине, логарифмдік кеңістік жеткілікті) Бульдік қанағаттандыру мәселесінің бір мысалына дейін азайтуға болатынын көрсетеді. Бұл дегеніміз, егер Бульдік қанағаттандыру мәселесін детерминистік Тьюринг машинасымен полиномиялық уақытта шешуге болатын болса, онда NP-дегі барлық мәселелер полиномиялық уақытта шешілуі мүмкін, сондықтан NP күрделілік класы P күрделілік класына тең болады. NP-нің толықтығының маңыздылығы 1972 жылы Ричард Карптың "Комбинаторлық мәселелер арасындағы азайту" атты маңызды мақаласын жариялауымен анықталды, онда ол әрқайсысы өзінің шешілмейтіндігімен танымал болған 21 түрлі комбинаторлық және графтық теориялық мәселенің NP-толық екенін көрсетті. Карп өзінің әрбір мәселесін NP-толық екендігін басқа мәселені (бұл мәселенің NP-толық екендігі дәлелденген) осы мәселеге дейін азайту арқылы көрсетті. Мысалы, ол 3SAT мәселесін (конъюнктивті қалыпты формадағы (CNF) өрнектер үшін Бульдік қанағаттандыру мәселесі) NP-толық екенін көрсетті, SAT-тың кез келген мысалын 3SAT-тың эквивалентті мысалына азайту арқылы (полиномиялық уақытта). Грей мен Джонсон өздерінің "Компьютерлер және шешілмейтіндік: NP толықтығының теориясына нұсқау" кітабында 300-ден астам NP-толық мәселелер ұсынды, ал жаңа мәселелер әлі де сол күрделілік класы ішінде бар екендігі анықталуда. SAT-тың көптеген практикалық мысалдары эвристикалық әдістермен шешілсе де, SAT үшін детерминистік полиномиялық уақыт алгоритмі бар ма деген сұрақ (соның салдарынан басқа барлық NP-толық мәселелер) күрделілік теоретиктерінің, математикалық логиктердің және басқалардың онжылдықтар бойы күш салып жатқанына қарамастан, әлі де шешілмеген әйгілі мәселе болып табылады. Толығырақ мақаланың P және NP мәселесін қараңыз.
The significance of NP completeness was made clear by the publication in 1972 of Richard Karp's landmark paper, "Reducibility among combinatorial problems", in which he showed that 21 diverse combinatorial and graph theoretical problems, each infamous for its intractability, are NP complete. Karp showed each of his problems to be NP complete by reducing another problem (already shown to be NP complete) to that problem. For example, he showed the problem 3SAT (the Boolean satisfiability problem for expressions in conjunctive normal form (CNF) with exactly three variables or negations of variables per clause) to be NP complete by showing how to reduce (in polynomial time) any instance of SAT to an equivalent instance of 3SAT. Garey and Johnson presented more than 300 NP complete problems in their book Computers and Intractability: A Guide to the Theory of NP Completeness, and new problems are still being discovered to be within that complexity class. Although many practical instances of SAT can be solved by heuristic methods, the question of whether there is a deterministic polynomial time algorithm for SAT (and consequently all other NP complete problems) is still a famous unsolved problem, despite decades of intense effort by complexity theorists, mathematical logicians, and others. For more details, see the article P versus NP problem.