Кіріспе

Буль формуласын шындыққа келтіру мүмкіндігін анықтау мәселесі Логика және компьютерлік ғылымда Буль қанағаттандыру мәселесі (кейде пропозициялық қанағаттандыру мәселесі деп аталады және SATISFIABILITY, SAT немесе B SAT деп қысқартылады) – берілген Буль формуласын қанағаттандыратын интерпретацияның бар-жоғын анықтау мәселесі. Басқаша айтқанда, берілген Буль формуласының айнымалыларын формула ДАЙЫН деп бағаланатындай етіп, ДАЙЫН немесе ЖАЛҒАН мәндерімен тұрақты түрде алмастыруға бола ма деп сұрайды. Егер осылай болса, формула қанағаттандырылатын болады. Керісінше, егер мұндай белгілеу болмаса, формуламен көрсетілген функция барлық мүмкін айнымалы белгілеулері үшін ЖАЛҒАН болады және формула қанағаттандырылмайды. Мысалы, "a ЖӘНЕ ЕМЕС b" формуласы қанағаттандырылатын, себебі a = ДАЙЫН және b = ЖАЛҒАН мәндерін табуға болады, бұл (a ЖӘНЕ ЕМЕС b) = ДАЙЫН жасайды. Ал "a ЖӘНЕ ЕМЕС a" формуласы қанағаттандырылмайды. SAT – NP-толық екені дәлелденген алғашқы мәселе; Кук-Левин теоремасын қараңыз. Бұл, NP күрделілік класындағы барлық мәселелер, оның ішінде табиғи шешімдер мен оптимизация мәселелерінің кең ауқымы, ең көп дегенде SAT-ты шешумен бірдей қиындығын білдіреді. Әрбір SAT мәселесін тиімді шешетін белгілі алгоритм жоқ және мұндай алгоритмнің жоқ екеніне кеңінен сенеді; алайда бұл сенім математикалық тұрғыдан дәлелденбеді, ал SAT-тың полиномиалдық уақыт алгоритмі бар ма деген мәселені шешу P және NP мәселесіне тең, бұл есептеу теориясындағы әйгілі ашық мәселе. Дегенмен, 2007 жылдан бастап эвристикалық SAT алгоритмдері ондаған мыңдаған айнымалыларды және миллиондаған символдардан тұратын формулаларды, сондай-ақ теоремаларды автоматты түрде дәлелдеуді қамтитын мәселелерді шеше алады.

Анықтамалар

Ұйғарымдық логикалық формула, сонымен қатар Бульдік өрнек деп аталады, айнымалылардан, ЖӘНЕ (конъюнкция, ∧), ИЛИ (дизъюнкция, ∨), ЖОҚ (негация, ¬) операторларынан және жақшалардан құрылады. Формулаға оның айнымалыларына сәйкес логикалық мәндер (яғни АҚИҚАТ, ЖАЛҒАН) тағайындау арқылы АҚИҚАТ мәні берілсе, ол қанағаттандырылатын болады. Бульдік қанағаттандыру мәселесі (SAT) – берілген формуланың қанағаттандырылатындығын тексеру. Бұл шешімді қабылдау мәселесі компьютер ғылымының көптеген салаларында, оның ішінде теориялық компьютер ғылымында, күрделілік теориясында, алгоритмдерді жасауда, криптографияда және жасанды интеллектте маңызды рөл атқарады.

Күрделілігі

SAT – бұл алғашқы белгілі NP-толық проблемасы, оны 1971 жылы Торонто университетінде Стивен Кук, ал 1973 жылы Ресей Ғылым академиясында Леонид Левин дәлелдеген. Осыған дейін NP-толық проблема деген түсінік тіпті болған жоқ. Дәлелдеме NP күрделілік класындағы кез келген шешім проблемасының CNF формулалары үшін SAT проблемасына қалай келтірілетінін көрсетеді, бұл кейде CNFSAT деп аталады. Кук келтірілімінің пайдалы қасиеті – ол қабылданатын жауаптар санын сақтайды. Мысалы, берілген графтың 3-түске боялуы мүмкін-мүмкін емесін анықтау NP-дегі тағы бір мәселе; егер графтың 17 жарамды 3-түске боялуы болса, Кук-Левин келтірілімі арқылы алынған SAT формуласында 17 қанағаттандыратын шешімдер болады. NP-толықтығы тек ең нашар жағдайлардағы орындалу уақытына қатысты. Көптеген нақты қолданыстарда кездесетін жағдайларды одан да жылдам шешуге болады. SAT-ты шешуге арналған алгоритмдерді төменде қараңыз.

Қосалама қалыпты форма

Конъюнктивті қалыпты форма (әсіресе, әр өрнекте 3 литералмен) жиі SAT формулаларының канондық түрі деп есептеледі. Жоғарыда көрсетілгендей, жалпы SAT мәселесі 3-SAT-қа келтіріледі, яғни осы түрдәгі формулалардың қанағаттандырылатынын анықтау мәселесі.

Дисжюнктивті қалыпты форма

SAT формулалары егер дизъюнктивті қалыпты формада болса, яғни литералдардың конъюнкцияларының дизъюнкциясы түрінде келсе, тривиальды болады. Мұндай формула қанағаттандырылатындығы, оның кем дегенде бір конъюнкциясы қанағаттандырылатын болса ғана мүмкін, ал конъюнкция қанағаттандырылатындығы, егер ол қандай да бір x айнымалысы үшін x және NOT x екеуін бірдей қамтымаса анықталады. Мұны сызықтық уақытта тексеруге болады. Әрі, егер олар толық дизъюнктивті қалыпты формада болса, яғни әр конъюнкцияда әр айнымалы бір рет қана кездессе, оларды тұрақты уақытта тексеруге болады (әр конъюнкция бір қанағаттандыратын мәнді білдіреді). Бірақ жалпы SAT мәселесін дизъюнктивті қалыпты формаға түрлендіру экспоненциалды уақыт пен жадты қажет етуі мүмкін; мысалы, конъюнктивті қалыпты формалар үшін жоғарыдағы экспоненциалды өсу мысалында "∧" және "∨" операторларын алмастыру.

3-қанағаттандырарлық барлық бірдей емес

Тағы бір нұсқасы – барлық литералдары бірдей емес 3-қанағаттандыру проблемасы (NAE3SAT деп те аталады). Бір клаузада үш литерал бар конъюнктивті нормалық форма берілгенде, мәселе – айнымалыларға мұндай тағайындама бар ма, онда ешбір клаузада барлық үш литералдың шындық мәні бірдей болмайды, анықтаудан тұрады. Бұл проблема да NP-толық, тіпті егер ешқандай жорамау белгісі қолданылмаса да, Шейфердің дихотомия теоремасы бойынша.

2-қанағаттанушылық

SAT-ті шешу оңайырақ, егер бір сөйлемдегі литеральдар саны екіге дейін шектелсе, мұндай жағдайда бұл мәселе 2 SAT деп аталады. Бұл мәселе полиномиал уақыттың ішінде шешіледі және іс жүзінде NL күрделілік класы үшін толық. Егер қосымша барлық ОР операциялары XOR операцияларымен ауыстырылса, нәтижесі эксклюзивті немесе 2 қанағаттандырылатындық деп аталады, бұл SL = L күрделілік класы үшін толық мәселе болып табылады.

Құрамында мүйіз бар

Берілген Хорн клаузаларының қанағаттандырылуын шешу мәселесі Хорн қанағаттандырылуы немесе HORN SAT деп аталады. Оны бірлік тарату алгоритмінің бір қадамымен полиномиалдық уақытта шешуге болады, ол Хорн клаузалары жиынтығының жалғыз минималды моделін шығарады (нақтырақ айтқанда, TRUE мәніне берілген литералдар жиығына қатысты). Хорн қанағаттандырылуы P-толық. Оны Бульдік қанағаттандырылу мәселесінің P нұсқасы ретінде қарастыруға болады. Сондай-ақ, квантталған Хорн формулаларының шындығын анықтау полиномиалдық уақытта жүзеге асырылуы мүмкін. Хорн клаузалары басқа айнымалылар жиынтығынан бір айнымалының салдары болуын білдіре алатындықтан қызығушылық тудырады. Шындығында, ¬x1 ∨ ¬xn ∨ y сияқты клауза x1 ∧ xn → y түрінде қайта жазылуы мүмкін, яғни, егер x1, ..., xn-нің бәрі TRUE болса, онда y да TRUE болуы керек. Хорн формулалары класының жалпыламасы – қайта аталатын Хорн формулалары, яғни кейбір айнымалыларын тиісті инверсияларымен алмастыру арқылы Хорн түріне келтірілетін формулалар жиынтығы. Мысалы, (x1 ∨ ¬x2) ∧ (¬x1 ∨ x2 ∨ x3) ∧ ¬x1 Хорн формуласы емес, бірақ y3-ті x3-тің инверсиясы ретінде енгізу арқылы (x1 ∨ ¬x2) ∧ (¬x1 ∨ x2 ∨ ¬y3) ∧ ¬x1 Хорн формуласына қайта аталуы мүмкін. Керісінше, (x1 ∨ ¬x2 ∨ ¬x3) ∧ (¬x1 ∨ x2 ∨ x3) ∧ ¬x1 атауын өзгерту Хорн формуласына әкелмейді. Мұндай алмастырудың болуын сызықтық уақытта тексеруге болады; демек, мұндай формулалардың қанағаттандырылуы P класында болады, өйткені оны алдымен осы алмастыруды орындау арқылы, содан кейін алынған Хорн формуласының қанағаттандырылуын тексеру арқылы шешуге болады.

XOR қанағаттандырылуы

Шешімі Гаусс жою арқылы берілген XOR SAT мысалы Берілген формула ("⊕" дегеніміз XOR, - міндетті емес) (a⊕c⊕d) ∧ (b⊕¬c⊕d) ∧ (a⊕b⊕¬d) ∧ (a⊕¬b⊕¬c) Теңдеулер жүйесі ("1" дегеніміз ДӘРІК, "0" дегеніміз ДАЛЫ) Әр клауза бір теңдеуге алып келеді. a ⊕ c ⊕ d = 1 b ⊕ ¬c ⊕ d = 1 a ⊕ b ⊕ ¬d = 1 a ⊕ ¬b ⊕ ¬c = 1 Буль сақиналарының қасиеттерін пайдаланатын нормаланған теңдеулер жүйесі (¬x=1⊕x, x⊕x=0) a ⊕ c ⊕ d = 1 b ⊕ c ⊕ d = 0 a ⊕ b ⊕ d = 0 a ⊕ b ⊕ c = 1 (Егер болса, соңғы қара теңдеуге қайшы келеді, сондықтан жүйе шешімі жоқ. Сондықтан Гаусс алгоритмі тек қара теңдеулер үшін қолданылады.) Сәйкес коэффициенттер матрицасы a b c d қатар 1 0 1 1 1 A 0 1 1 1 0 B 1 1 0 1 0 C 1 1 1 0 1 D Эшелон түріне келтіру a b c d операция 1 0 1 1 1 A 1 1 0 1 0 C 1 1 1 0 1 D 0 1 1 1 0 B (айырбасталды) 1 0 1 1 1 A 0 1 1 0 1 E = C⊕A 0 1 0 1 0 F = D⊕A 0 1 1 1 0 B 1 0 1 1 1 A 0 1 1 0 1 E 0 0 1 1 1 G = F⊕E 0 0 0 1 1 H = B⊕E Диагональ түріне келтіру a b c d операция 1 0 1 0 0 I = A⊕H 0 1 1 0 1 E 0 0 1 0 0 J = G⊕H 0 0 0 1 1 H 1 0 0 0 0 K = I⊕J 0 1 0 0 1 L = E⊕J 0 0 1 0 0 J 0 0 0 1 1 H Шешім: Егер болса: Шешімі жоқ. Әйтпесе: a = 0 = ДАЛЫ b = 1 = ДӘРІК c = 0 = ДАЛЫ d = 1 = ДӘРІК Салдары ретінде: R(a,c,d) ∧ R(b,¬c,d) ∧ R(a,b,¬d) ∧ R(a,¬b,¬c) 3 қанағаттандырылатын жағдайда 1 емес, ал (a ∨ c ∨ d) ∧ (b ∨ ¬c ∨ d) ∧ (a ∨ b ∨ ¬d) ∧ (a ∨ ¬b ∨ ¬c) a=c=ДАЛЫ және b=d=ДӘРІК болғанда 3 қанағаттандырылатын. Тағы бір ерекше жағдай - әр клаузада (жалпы) OR операторлары емес, XOR (яғни, ерекше немесе) операторлары бар проблемалар класы. Бұл P класына жатады, өйткені XOR SAT формуласын mod 2 сызықтық теңдеулер жүйесі ретінде қарастыруға болады және оны Гаусс жою арқылы кубикалық уақытта шешуге болады; мысал үшін қорапты қараңыз. Бұл қайта құру Буль алгебрасы мен Буль сақиналары арасындағы туыстыққа және арифметикалық модуль екі шекті өрісті құрайды деген фактіге негізделген. XOR b XOR c {a,b,c} -дің 1 немесе 3 мүшесі ДӘРІК болса ғана ДӘРІК деп бағаланса, онда берілген CNF формуласы үшін 1 in 3 SAT мәселесінің әрбір шешімі XOR 3 SAT мәселесінің шешімі болып табылады, ал XOR 3 SAT-тің әрбір шешімі 3 SAT-тың шешімі болып табылады, суретті қараңыз. Нәтижесінде, әрбір CNF формуласы үшін формуламен анықталған XOR 3 SAT мәселесін шешу мүмкін және нәтижеге сүйене отырып, 3 SAT проблемасы шешіледі немесе 1 in 3 SAT проблемасы шешілмейді деп тұжырымдауға болады. Егер P және NP күрделілік сыныптары тең болмаса, 2 , Horn , XOR қанағаттандырылуы да, SAT-тан айырмашылығы, NP толық емес.

Шефердің дихотомия теоремасы

Жоғарыда көрсетілген шектеулер (CNF, 2CNF, 3CNF, Horn, XOR SAT) қарастырылған формулаларды субформулалардың конъюнкциясы ретінде қарастырады; әрбір шектеу барлық субформулалар үшін нақты бір форманы белгілейді: мысалы, 2CNF-те субформулалар тек екілік дизъюнкциялардан ғана тұруы мүмкін. Шефердің дихотомия теоремасы, осы субформулаларды құру үшін қолданылатын Буль функцияларына қолданылатын кез келген шектеу үшін, сәйкес қанағаттандырылатындық мәселесі P немесе NP-толық болатынын айтады. 2CNF, Horn және XOR SAT формулаларының қанағаттандырылатындығының P класына жатуы осы теореманың ерекше жағдайлары болып табылады. және т.б. Мұндай кеңейтулер көбінесе NP-толық болып қалады, бірақ қазір осындай көптеген шектеулерді шеше алатын өте тиімді шешушілер бар. Қанағаттандырылатындық мәселесі қиындап кетеді, егер "барлығы үшін" (∀) және "бар" (∃) кванторлары Буль айнымалыларын байланыстыруға рұқсат етілсе. Мұндай өрнектің мысалы size=100%; ол жарамды, себебі x және y-дың барлық мәндері үшін z-дың сәйкес мәнін табуға болады, атап айтқанда, егер x және y екеуі де FALSE болса, z=TRUE, ал әйтпесе z=FALSE. SAT өзі (жасырын түрде) тек ∃ кванторларын қолданады. Егер тек ∀ кванторларына ғана рұқсат етілсе, онда тавтология мәселесі пайда болады, ол co-NP-толық. Егер екі кванторға да рұқсат етілсе, онда бұл мәселе квантталған Буль формуласы (QBF) мәселесі деп аталады, оның PSPACE-толық екендігі көрсетілген. PSPACE-толық мәселелердің NP-дегі кез келген мәселеден қатаң түрде қиын деп кеңінен сенеді, бірақ бұл әлі дәлелденбеген. Жоғары параллель P жүйелерін қолдану арқылы QBF SAT мәселелерін сызықтық уақытта шешуге болады. Кәдімгі SAT формуланың шындыққа сай келетін кем дегенде бір айнымалы мәнінің бар-жоғын сұрайды. Мұндай мәндердің санымен айналысатын түрлі нұсқалар бар: MAJ SAT формуланың шындыққа сай келетін барлық мәндердің көпшілігін табуды сұрайды. Ол PP класы үшін толық екені белгілі. #SAT, формулаға қанша айнымалы мәні сәйкес келетінін санау мәселесі, шешім емес, санау мәселесі болып табылады және #P-толық. UNIQUE SAT формуланың дәл бір ғана мәні бар-жоғын анықтау мәселесі. Ол US үшін толық, бұл күрделілік класы, ол анықталмаған полиномдық уақытта жұмыс істейтін Тьюринг машинасымен шешілетін мәселелерді сипаттайды, және егер дәл бір анықталмаған қабылдау жолы болса, қабылдайды, әйтпесе қабылдамайды. UNAMBIGUOUS SAT - бұл кіріс ең көп дегенде бір қанағаттандыратын мәні бар формулалармен шектелген кезде қанағаттандырылатындық мәселесіне берілген атау. Бұл мәселе USAT деп те аталады. UNAMBIGUOUS SAT үшін шешу алгоритміне бірнеше қанағаттандыратын мәндері бар формула бойынша кез келген мінез-құлықты, соның ішінде шексіз циклдеуді көрсетуге рұқсат етіледі. Бұл мәселе оңай көрінсе де, Валиант пен Вазирани оны шешу үшін практикалық (яғни, кездейсоқ полиномдық уақыт) алгоритм болса, онда NP-дегі барлық мәселелерді осылай оңай шешуге болады екенін көрсеткен. MAX SAT, ең жоғары қанағаттандырылатындық мәселесі, SAT-тың FNP жалпылауы. Ол кез келген мәнмен қанағаттандырылатын максималды сандағы дизъюнкцияларды табуды сұрайды. Ол тиімді шамалау алгоритмдеріне ие, бірақ NP-де дәл шешу қиын. Одан да нашар, ол APX-толық, яғни P=NP болмаса, бұл мәселе үшін полиномдық уақытқа жуықтап келу схемасы (PTAS) жоқ. WMSAT - монотонды Буль формуласын қанағаттандыратын ең төменгі салмақты табу мәселесі (яғни, ешқандай жоққа шығарусыз формула). Пропозициялық айнымалылардың салмақтары мәселенің кіріс бөлігінде берілген. Мәннің салмағы - нақты айнымалылардың салмақтарының қосындысы. Бұл мәселе NP-толық (Th. 1-ге қараңыз). Басқа жалпылауларға бірінші және екінші реттік логикаға қанағаттандырылатындық, шектеулерді қанағаттандыру мәселелері, 0-1 бүтін санды бағдарламалау жатады.

SAT-ты шешу алгоритмдері

SAT мәселесі NP-толық болғандықтан, оның үшін тек экспоненциалды ең нашар күрделілікке ие алгоритмдер ғана белгілі. Осыған қарамастан, 2000-шы жылдары SAT үшін тиімді және кеңейтілген алгоритмдер әзірленді, бұл ондаған мың айнымалысы мен миллиондаған шектеуі (яғни, дизъюнкциялары) бар мәселелерді автоматты түрде шешу мүмкіндігін айтарлықтай арттырды. Электрондық жобалауды автоматтандыру (EDA) саласындағы осындай мәселелердің мысалдары: формальды эквиваленттілікті тексеру, модельді тексеру, конвейерлік микропроцессорларды формальды тексеру, жоспарлау және кестелеу мәселелері және т.б. SAT шешімі табушысы электрондық жобалауды автоматтандыру құралдарының маңызды бөлігі саналады. Қазіргі заманғы SAT шешімдерін табушылар қолданатын негізгі техникалар: Дэвис-Путнам-Логеман-Ловеланд алгоритмі (немесе DPLL), қақтығысқа негізделген дизъюнкцияларды үйрену (CDCL) және WalkSAT сияқты стохастикалық жергілікті іздеу алгоритмдері. Көптеген SAT шешімдері уақыт шектеулерін қамтиды, сондықтан олар шешім таппаған жағдайда да, белгілі бір уақыт ішінде тоқтатылады. Әртүрлі SAT шешімдері әртүрлі мәселелерді оңай немесе қиын деп табады, ал кейбіреулері қанағаттандырылмауды дәлелдеуде, ал басқалары шешімдерді табуда жақсы нәтижелер көрсетеді. Жақында терең оқыту техникаларын пайдаланып, мәселенің қанағаттандырылуын анықтауға бағытталған әрекеттер жасалды. SAT шешімдері SAT шешімдері байқауында жасалады және салыстырылады. Қазіргі заманғы SAT шешімдері бағдарламалық жасақтаманы тексеру, жасанды интеллектте шектеулерді шешу және операциялық зерттеулер сияқты салаларға да маңызды әсер етеді.