A Boole-képletek ( SAT , vyp ) kielégíthetőségének problémája a számítási komplexitás elmélete szempontjából fontos algoritmikus probléma .
A feladatpéldány egy logikai képlet , amely csak változónevekből, zárójelekből és műveletekből ( ÉS ), ( OR ) és ( HE ) áll. A probléma a következő: lehetséges-e hamis és igaz értékeket rendelni a képletben előforduló összes változóhoz úgy, hogy a képlet igaz legyen?
A Stephen Cook által 1971-ben bebizonyított Cook-tétel szerint a konjunktív normál formában írt Boole-képletek SAT-problémája NP-teljes . A konjunktív formában való írás követelménye elengedhetetlen, hiszen például a diszjunktív normál formában bemutatott képletek SAT-problémája a képletrekord méretétől függően lineáris időben triviálisan megoldódik (a képlet kielégítéséhez csak a jelenléte legalább egy olyan kötőszóra van szükség , amely nem tartalmaz egyszerre és nem tagadást valamelyik változóhoz ).
A felismerési probléma pontos megfogalmazása érdekében egy véges ábécét rögzítünk, amelynek segítségével nyelvi példányokat adunk meg. Hopcroft , Motwani és Ullman Bevezetés az automataelméletbe , a nyelvekbe és a számításba című könyvükben a következő ábécé használatát javasolja : .
Az ábécé használatakor a zárójelek és az operátorok természetesen íródnak, és a változók a következő neveket kapják: , számuk alapján bináris jelöléssel .
Legyen néhány logikai képlet , amely a szokásos matematikai jelöléssel van írva, karakterhosszúságú. Ebben az egyes változók minden előfordulását legalább egy szimbólum írta le, ezért ebben a képletben legfeljebb változó szerepel. Ez azt jelenti, hogy a fent javasolt jelölésben minden változó szimbólumokkal lesz írva . Ebben az esetben az új jelölésben a teljes képlet karakterhosszú lesz, vagyis a karakterlánc hossza polinomszámmal fog növekedni .
Például a képlet a következő lesz : .
Stephen Cook 1970-es cikkében vezették be először az " NP-teljes probléma " kifejezést , és a SAT probléma volt az első olyan probléma, amelyre ezt a tulajdonságot bebizonyították.
A Cook-tétel bizonyítása során az NP osztály minden egyes problémája kifejezetten SAT-ra redukálódik. A Cook-féle eredmények megjelenése után az NP-teljesség számos egyéb problémára is bebizonyosodott. Ilyenkor leggyakrabban egy-egy feladat NP-teljességének bizonyítására adjuk meg a SAT-probléma adott feladatra való polinomiális redukcióját , esetleg több lépésben, azaz több köztes feladat felhasználásával.
A SAT probléma érdekes, fontos speciális esetei a következők:
A SAT-feladatok párhuzamosításának egyik leghatékonyabb módszere a CDCL-megoldók (CDCL, angol konfliktusvezérelt záradéktanulás ), amelyek a DPLL algoritmus nem kronologikus változataira épülnek [1] [2] .
NP-teljes problémák | |
---|---|
A halmozás (csomagolás) maximalizálási problémája |
|
gráfelmélet halmazelmélet | |
Algoritmikus problémák | |
Logikai játékok és rejtvények | |