Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.
Nástěnka
❗22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
❗04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
❗23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.
Nejste přihlášen(a). Přihlásit
Stránky: 1
Dobrý den,
učím se na zkoušku z Teorie grafů a diskrétní optimalizace a stále mi není jasný problém splnitelnosti logických formulí (SAT) a jeho modifikace.
Co jsem vyčetl:
- Dle Cookovy věty platí, že SAT je NPC
- podle jedné z vět 2-SAT je P
- dle důkazu je 3-SAT NPC a lze na něj redukovat SAT
Co nechápu:
- proč 2-SAT není také NPC, když je speciálním případem SAT?
- když mohu redukovat SAT na 3-SAT, proč nemohu redukovat ještě o jeden literál méně a dostat se tak na 2-SAT?
Možná mi stále i po několikanásobném přečtení výkladu celé problematiky nedochází ta hranice mezi P, NP a NPC. Přečetl jsem toho i spoustu, co mi vrátil google, ale stále mi to není úplně jasné :(
Děkuji za odpověď.
Offline

To, že SAT je NPC znamená, že neexistuje polynomiální algoritmus, který pro každou instanci SATu vrátí správný výsledek. Existují ale algoritmy, které v polynomiálním čase řeší speciální instance SATu. Např. algoritmus pro 2-SAT najdeš na webu, pro instance 3-SATu bez negovaných literálů napíše program taky každý (return true).
Redukce na 3-sat funguje tak, že přidávám nové proměnné, každá nová proměnná mi substituuje něco složitějšího. Kdybych mohl ale přidanou proměnnou dát jen do kluzule o dvou literálech, substituovala by pouze jinou proměnnou, což nám k řešení problému nepomůže.
Offline
Kondr napsal(a):
To, že SAT je NPC znamená, že neexistuje polynomiální algoritmus, který pro každou instanci SATu vrátí správný výsledek. Existují ale algoritmy, které v polynomiálním čase řeší speciální instance SATu. Např. algoritmus pro 2-SAT najdeš na webu, pro instance 3-SATu bez negovaných literálů napíše program taky každý (return true).
Redukce na 3-sat funguje tak, že přidávám nové proměnné, každá nová proměnná mi substituuje něco složitějšího. Kdybych mohl ale přidanou proměnnou dát jen do kluzule o dvou literálech, substituovala by pouze jinou proměnnou, což nám k řešení problému nepomůže.
Já si myslím, že je nutné předpokládat, že
. V opačném případě první věta neplatí.
Offline
Stránky: 1