Кіріспе

Бульдік қанағаттандырылу NP-толық және демек, NP-толық проблемалар бар. Есептеу күрделілігі теориясында Кук-Левин теоремасы, сондай-ақ Кук теоремасы деп аталатын теорема, Бульдік қанағаттандырылу проблемасы NP-толық екенін көрсетеді. Яғни, ол NP класында, және NP класындағы кез келген проблеманы детерминистік Тьюринг машинасы полиномдық уақытта Бульдік қанағаттандырылу проблемасына келтіруге болады. Теорема Стивен Кук пен Леонид Левиннің есімдерімен аталады. Дәлелді Рихард Карп жасаған, ол Куктың алдыңғы дәлеліне (әртүрлі түрлендіру ұғымын қолдана отырып) негізделген. Бұл дәлел жаңа құрылған ACM Есептеу теориясы симпозиумының материалдарында жарияланған. Ричард Карптың "Комбинаторлық проблемалар арасындағы түрлендіру" атты кейінгі мақаласы, > Теодор П. Бейкер, Джон Гилл және Роберт Соловэйдің 1975 жылы жарық көрген жұмысы NP-толықтығына теориялық қызығушылықты арттырды. Олар белгілі бір оракул машина модельдерінде NP проблемаларын шешу үшін экспоненциалды уақыт қажет екенін көрсетті. Яғни, A оракулы бар, сондықтан барлық субэкспоненциалды детерминистік уақыт күрделілігі кластары T үшін, салыстырмалы күрделілік класы NPA, TA класының ішкі жиыны емес. Атап айтқанда, осы оракул үшін PA ≠ NPA. КСРО-да Бейкер, Гилл және Соловэйдің нәтижесіне эквивалентті нәтиже 1969 жылы М. Дехтиар тарапынан жарияланды. Кейін Леонид Левиннің "Жалпы іздеу проблемалары" атты мақаласы 1973 жылы жарық көрді, бірақ ол бірнеше жыл бұрын баяндамаларда талқыланды және жариялануға ұсынылды. Левиннің тәсілі Кук пен Карптың тәсілдерінен сәл өзгеше болды, себебі ол жай ғана шешімнің болуын анықтаудың орнына, шешімдерді табуды қажет ететін іздеу проблемаларын қарастырды. Ол осындай алты NP-толық іздеу проблемасын немесе жалпы проблемаларды ұсынды. Сонымен қатар, ол осы проблемалардың әрқайсысы үшін оны оңтайлы уақытта шешетін алгоритм тапты (әсіресе, бұл алгоритмдер 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 мәселесін қараңыз.