Кіріспе

Бульдік функциялардың стандартты түрі

Бульдік логикада формула, егер ол бір немесе бірнеше клаузалардың конъюнкциясы болса, конъюнктивті қалыпты формада (КҚФ) немесе клаузалық қалыпты формада болады, мұнда клауза – литеральдардың дизъюнкциясы; яғни, бұл сомалардың көбейтіндісі немесе ОР-лардың АНД-ы. Канондық қалыпты форма ретінде, ол автоматтандырылған теореманы дәлелдеуде және схемалар теориясында пайдалы. Автоматтандырылған теореманы дәлелдеуде "клаузалық қалыпты форма" түсінігі көбінесе тар мағынада қолданылады, яғни КҚФ формуласының литеральдар жиындары түріндегі нақты бір бейнесін білдіреді.

ҚНҚ-ға айналдыру

Классикалық логикада кез келген логикалық формуланы эквивалентті CNF (конъюнктивтік нормалды форма) түріндегі формулаға түрлендіруге болады. Бұл түрлендіру логикалық эквиваленттіліктердің ережелеріне негізделген: қос жосық жою, Де Морган заңдары және тарату заңы.

Есептеу күрделілігі

Есептеу күрделілігі мәселелерінің маңызды жиынтығы, конъюнктивті қалыпты түрінде (CNF) берілген буль формуласының айнымалыларына, формуланың шындыққа сай болатындай мәндерді тағайындауды қамтиды. k SAT мәселесі – CNF түрінде берілген буль формуласына қанағаттандыратын мәндерді табу мәселесі, мұнда әрбір дизъюнкцияда ең көп дегенде k айнымалы болады. 3 SAT NP-толық (k>2 кез келген басқа k SAT мәселесі сияқты), ал 2 SAT-тың полиномиалдық уақытта шешімі бар екені белгілі. Осының салдарынан, формуланы DNF-ке түрлендіру, қанағаттандырылуын сақтап, NP-қиын міндет болып табылады; сондай-ақ, CNF-ке түрлендіру, жарамдылығын сақтап, NP-қиын; демек, эквиваленттілікті сақтап DNF немесе CNF-ке түрлендіру де NP-қиын. Бұл жағдайдағы типовой мәселелер "3CNF" формулаларына қатысты: конъюнктивті қалыпты формада, әрбір конъюнкцияда үштен артық айнымалы болмайды. Мұндай формулалардың практикада кездесетін мысалдары өте үлкен болуы мүмкін, мысалы, 100 000 айнымалы және 1 000 000 конъюнкция. CNF формуласын "kCNF" (k≥3) эквисатисфакциялық формуласына түрлендіруге болады, о үшін k-дан артық айнымалы бар әрбір конъюнкцияны екі конъюнкциямен және Z жаңа айнымалысымен ауыстырып, қажет болған жағдайда осы әрекетті қайталап отыру керек.