T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica in345 Deel 2 College 5 Cees Witteveen
T U Delft Parallel and Distributed Systems group PGS Uitwerking opgave Naam: Half Clique Gegeven: Graaf G =(V,E). Vraag : Heeft G een clique met |V|/2 knopen ? Te bewijzen: Half Clique is in NPC (aanname: bekend is dat CLIQUE in NPC) G=(V,E), K |V| = n Clique instantieHalf Clique instantie G + G 1 + G 2 G2G2 |V 2 |=n G=(V,E), K G |V| = n G1G1 |V 1 | = 2n-2k G 1 is volledig
T U Delft Parallel and Distributed Systems group PGS Overzicht Optimaliseringsproblemen - Turingreducties - FP en FNP - Zelf-reduceerbaarheid De polynomiale hierarchie - Turing machines met een orakel - De klassen PH en PSPACE Wat komt er volgende week?
T U Delft Parallel and Distributed Systems group PGS O E Zoeken, optimaliseren, opsommen en tellen zoekproblemen: gegeven een verzameling O van objecten vind een (willekeurig) object x met eigenschap E(x) (een oplossing) x
T U Delft Parallel and Distributed Systems group PGS O E Zoeken, optimaliseren, opsommen en tellen optimaliseringsproblemen: gegeven een kostenfunctie c zoek in O naar object x met eigenschap E(x) waarvoor c(x) minimaal of maximaal is. x
T U Delft Parallel and Distributed Systems group PGS O E Zoeken, optimaliseren, opsommen en tellen opsommingsproblemen: zoek in O naar alle objecten x met eigenschap E(x).
T U Delft Parallel and Distributed Systems group PGS O E Zoeken, optimaliseren, opsommen en tellen telproblemen: zoek in O naar het aantal objecten x met eigenschap E(x). 7
T U Delft Parallel and Distributed Systems group PGS Zoek- en optimaliserings problemen: complexiteit Als C een complexiteitsklasse is, dan is FC de klasse van alle functies berekenbaar met de tijd/ruimte begrenzing geassocieerd met C. Vb: - FP: klasse van alle functies berekenbaar in polynomiale tijd. - FNP: klasse van alle functies berekenbaar in niet-deterministische polynomiale tijd. probleem: hoe beslissings en zoekproblemen aan elkaar te relateren?
T U Delft Parallel and Distributed Systems group PGS Turing reducties polynomiale turingreducties Een probleem A is een polynomiaal turing reduceerbaar tot een probleem B als er een algoritme X A voor A bestaat dat - een (hypothetisch) algoritme X B voor B als subroutine gebruikt en - een polynomiaal algoritme voor A zou zijn als alle X B -aanroepen O(1)-tijd zouden kosten. Notatie: A T B
T U Delft Parallel and Distributed Systems group PGS Turingreducties (ii) voor beslissingsproblemen: - als A B dan ook A T B: many-one reducties zijn te beschouwen als eenmalige aanroepen van een B-algoritme - voor iedere A: A T A c een probleem B is - NP-hard (onder T ) als voor iedere A NP, A T B; NP-easy als B T A voor een A NP; NP-equivalent als A NP-hard NP-easy ;
T U Delft Parallel and Distributed Systems group PGS Relatie beslissings-en zoekproblemen beslissingsvariant A: Gegeven x 1,... x n, is er een y waarvoor E(y) geldt ? zoekvariant FA: Gegeven x 1,... x n, geef een y waarvoor E(y) geldt. er geldt altijd: A T FA (gebruik eerst algoritme voor FA om antwoord te bepalen; als er een y gevonden wordt, geef “ja” als antwoord anders “nee”)
T U Delft Parallel and Distributed Systems group PGS Zelfreduceerbaarheid Voor sommige problemen geldt ook: FA T A (zelfreduceerbare problemen) vb: FSAT T SAT. FSAT is in polynomiale tijd oplosbaar als we een orakel voor SAT-problemen kunnen raadplegen. Voor FSAT geldt nu: FSAT is NP-equivalent (onder T )
T U Delft Parallel and Distributed Systems group PGS FSAT T SAT: constructie input: U = {u 1,u 2,... u n }, C = {C 1,..., C m } output: t met t(C) = 1 als C vervulbaar; anders nil begin t := nil; sat := true; i := 1 while (i n and sat) do C’ := C/ { u i := 0 }; if SAT(U,C’) = “yes” then { t := t {u i 0 }; i := i +1; C := C’ } else { C’ : = C/ { u i := 1 }; if SAT(U,C’) = “yes” then { t := t {u i 1 }; i := i +1; C := C’ } else t:= nil; sat := false } return t end Dit is een aanroep van het SAT-orakel (U,C) moet wel onvervulbaar zijn
T U Delft Parallel and Distributed Systems group PGS NP-equivalent: vb TSP-optval is NP-equivalent 1. TSP T TSP-optval raadpleeg TSP-opt orakel voor optimale waarde W van oplossing; als W K geef “ja” anders “nee” 2. TSP-optval T TSP gebruik TSP-orakel log (|C| x d max )-maal om met binary search waarde optimale tour vast te stellen TSP-optval : gegeven een TSP-instantie, bepaal de waarde W van een kortste tour
T U Delft Parallel and Distributed Systems group PGS P, NP, Co-NP en NP-easy Co-NPC NPC NPCo-NP P NP-easy
T U Delft Parallel and Distributed Systems group PGS Voorbij NP-easy? Co-NPC NPC P NP-easy Co-NP NP PSPACE ? ?? ? ?
T U Delft Parallel and Distributed Systems group PGS Polynomiale hierarchie (1) NP-easy: klasse van beslissingsproblemen oplosbaar in polynomiale tijd met deterministisch algoritme dat gebruik maakt van orakel in NP. notatie: P NP NP NP : klasse van beslissingsproblemen oplosbaar in polynomiale tijd met niet-deterministisch algoritme dat gebruik maakt van orakel in NP.
T U Delft Parallel and Distributed Systems group PGS Polynomiale hierarchie (2) P = P P P NP NP NP NP = NP P P NP Generalisatie:
T U Delft Parallel and Distributed Systems group PGS Polynomiale hierarchie (3) (P) (NP) (co-NP) (NP-equivalent) PH
T U Delft Parallel and Distributed Systems group PGS Relevantie PH NP-problemen: oplosbaar met backtracking algoritmen. NP NP - problemen: oplosbaar met double-backtracking algoritmen. Voorbeeld: Minimale Boolese Expressie Gegeven een formule F, is F een kortste formule onder alle formules equivalent met F? is in 2.
T U Delft Parallel and Distributed Systems group PGS Vb: Minimale Boolese Expressie (MBE) in 2 MBE: Gegeven een boolese formule F, is F een kortste formule onder alle formules die equivalent zijn met F? 2 = co-NP NP. We moeten derhalve laten zien dat no - instanties van MBE efficient te verifieren zijn met een NP-orakel: Neem nu een instantie F van MBE en gok een kortere boolese formule E. Verifieer nu of F equivalent is aan E, dwz. of E F. Dit kan door met een SAT-orakel na te gaan of ((E F) (F E)) vervulbaar is. Als het antwoord “no” is, is E equivalent aan F.
T U Delft Parallel and Distributed Systems group PGS Voor de volgende week: zijn sommige NPC-problemen toch doenlijk? benaderingen: iets is altijd beter dan niets (of toch niet). een O(1)-algoritme voor een langste pad probleem. (met prijs voor de beste verklaring)