340 likes | 463 Views
Fundamentele Informatica IN3005 deel 2. College 2 Cees Witteveen witt@cs.tudelft.nl. Onderwerpen. Reducties definitie eigenschappen voorbeelden correctheidsbewijzen Complexiteitsklassen definitie en klassen: P, NP, E, EXP P, NP en NP-complete problemen
E N D
Fundamentele Informatica IN3005 deel 2 College 2 Cees Witteveenwitt@cs.tudelft.nl
Onderwerpen • Reducties • definitie • eigenschappen • voorbeelden correctheidsbewijzen • Complexiteitsklassen • definitie en klassen: P, NP, E, EXP • P, NP en NP-complete problemen • eigenschappen polynomiale reducties • P versus NP • belang NP-complete problemen
Reducties • Notatie: A B • Betekenis: er is een algoritme om instanties van A op te lossen met behulp van (een algoritme voor) instanties van B. • Belang: als de extra tijd/ruimte benodigd voor de reductie niet essentieel is, isAniet essentieel moeilijker danB. (en daarom eventueel gemakkelijker). • Karp reducties:polynomiale reducties voor beslissingsproblemen; worden ook welmany-one reductiesgenoemd;
R Algoritme voor A YA yesiff I YA noiffI YA Karp-reducties m A m B: voor alle IA DA: IAYAR(IA) YB A B YB I algoritme B yes iff R(I)YB no iff R(I) YB
eigenschap (polynomiale) reducties Stel • AmB • reductie mis tijdbegrensd door functie T(.) • XB is algoritme voor B, tijdbegrensd door TB(.), dan geldt • er is een algoritme XA voor A, begrensd doorTA(n)= T(n) + TB( n + T(n) ) conclusie: als T en TBpolynomiaal begrensd zijn, dan is TA ook polynomiaal begrensd.
Correctheid reducties • betrouwbaarheid • Neem een willekeurige instantie IA YAen toon aan dat R( IA ) YB. • Neem een willekeurige instantie IB R(YA ) en toon aan dat voor alle instanties IA met R(IA) = IB geldt: IAYA. • polynomialiteittoon aan dat transformatie van iedere instantieIAin polynomiale tijd (polynomiaal in de lengte|IA| vanIA )kan worden uitgevoerd.
Hamiltoons Circuit (HAMC) instantie:G = (V,E)vraag:is er een simpel circuit in G dat alle knopen uit V bevat? Traveling Sales Person(TSP) instantie:verzameling S van n steden; afstandenmatrix D = [dij]nxn met dijZ+; een integer B Z+.vraag:bestaat er een tour langs alle steden in S met totale afstand B? Reductie: vb
hamiltoons circuit tour met kosten |V| 1 2 1 2 1 2 1 1 2 2 1 1 1 reductie idee TSP instantie(V,D,|V| ) HAMC instantieG = ( V, E )
Algoritme voor TSP probleem HAMC TSP input: HAMC-instantie G = (V,E)output: yes alss G inYHAMC beginS:= V ;D:=[ dij] |V| x |V|wheredij = 1if { vi, vj } E and dij = 2 else;B :=|V|;return TSP(S,D,B); end
HAMC TSP (uitwerking) • Constructie reductieLaat I = ( G = (V,E)) een willekeurige instantievanHAMC zijn. Construeer de volgende instantie R(I) = (S, D, B) van TSP: • S:= V ; • D:=[ dij] |V| x |V| metdij = 1als { vi, vj } E en dij = 2 anders; • B :=|V|; • Correctheid reductiea. Stel I = ( G = (V,E)) is een yes-instantie van HAMC. Dan is er een circuit (vi1, vi2, vi3,…, vin, vi1) dat alle knopen uit V bevat met j=1,…,n-1: (vij, vij+1) Een(vin, vi1) E. Maar dan geldt onmiddellijk dat dvij,vi(j+1) = 1 en dvin,vi1 = 1 en derhalve is (vi1, vi2, vi3,…, vin, vi1) een tour in R(I) met kosten ≤ B. Derhalve is R(I) een yes-instantie van TSP.
HAMC TSP (uitwerking) b. Stel R(I) is een yes-instantie. Te bewijzen dat I een yes-instantie is. (Ga zelf na) • PolynomialiteitBedenk dat I = |V| +|E|.S is te construeren in O(|V|) tijd.D is te construeren in O(|V|2x |E|)-tijd.Bepaling van B kost O(|V|)-tijd. Totaal: O(|V|2x|E|) ≤ O(|I|3)-tijd
Complexiteitsklassen • Definitie complexiteitsklassen • Machinemodellen • Onderscheid tussen klassen: hierarchiestellingen • Onderscheidbinnencomplexiteitsklassen:geschikte reducties, complete problemen • Eigenschappen polynomiale reducties
Complexiteitsklassen • ComplexiteitsklasseEen complexiteitsklasse C gegeven een • machine model M • tijd/ruimte begrenzing B is de verzameling problemen oplosbaar met Min tijd/ruimte begrenzing B. • Voorbeelden: • P: de klasse problemen oplosbaar metDTM in polynomiale tijd; • NP : de klasse problemen oplosbaar met NDTM in polynomiale tijd.
Machine modellen • Deterministiche Turingmachine: • voor iedere input is er precies 1(succesvol / falend / oneindig) berekeningspad. • Niet-deterministische Turingmachine: • voor gegeven input is meer dan 1 berekeningspad mogelijk; • berekening is succesvol als er tenminste één succesvol (eindig) berekeningspad is.
Tijdklassen P O( nO(1)) NP E O(2O(n)) NE EXP O(2n^O(1)) NEXP Ruimteklassen L : O(log n) NL: PolyL: O(logO(1) n)NPolyL PSPACE O(nO(1))NPSPACE EXPSPACE O(2n^O(1))NEXPSPACE : deterministisch : niet-deterministisch Complexiteitsklassen
Complexiteitsklassen:relaties (N)EXPSPACE EXP (N)PSPACE is strict bevat in is bevat in (N)PolyL NP NLk Lk NL P L
Passende reducties en complexiteitsklassen • Als Ceen complexiteitsklasse is en een reductie, dan is passend voorCals geldt C is “naar beneden gesloten” onder dwz: X,Y: als X Y en Y Cdan ookX C • intuitie “ passend voorC”:tijd of ruimte benodigd voor uitvoering reductie valt binnen de tijd/ruimte begrenzingen vanC • Voorbeeld:polynomiale reductieszijnpassend voorPenNP
Geschikte reducties • reducties passend voor complexiteitsklassen die P omvatten: • polynomiale reducties: reducties uit te voeren in O(nO(1)) - tijd • logspace reducties:reducties uit te voeren in O(log n) - ruimte
De klasse NP • geen polynomiale constructie van oplossing bekender zijn geenalgoritmen voorhanden om een oplossing in polynomiale tijd te construeren.(d.w.z. geen polynomiale DTM beschikbaar) • wel polynomiale verificatie van oplossing bekender kan in polynomiale tijd geverifieerd worden of een voorgestelde oplossing voldoet of niet.(d.w.z. wel polynomiale NDTM voorhanden)
Twee definities van NP • standaard definitie:[niet-deterministisch gokken]A NP als er eenNDTM bestaat die iedere yes-instantie x van A oplost in polynomiale tijd,dwz. polynomiaal in de lengte |x| van x. • alternatieve definitie: [deterministisch verifieren]A NP als er een DTM M bestaat en een polynoom p(.) zodat x YA desda - er bestaat een string c(x) (certificaat voor x) met |c(x)| p(|x|);- M antwoordt ‘yes’ voor input (x, c(x)) in hoogstens p(|x|) stappen. We tonen aan dat deze definities equivalent zijn
instructie keuze NDTM: een berekening invoer x 2 1 2 1 1 1 certificaatc(x): 2 1 2 1 1 1 succesvolle berekening falende berekening
NDTM: input + certificaat invoerx+certificaat 212111 2 1 2 1 1 deterministische berekening! 1 succesvolle berekening falende berekening
gokstring (mogelijk certificaat) input x DTM yes gokmodule no NDTM anders bekeken • We kunnen ons derhalve een NDTM ook voorstellen als eenGOKMODULE+DTM :
NDTM: simulatie met DTM p(|x|)
Simulatie NDTM met DTM maximaalk>1keuzes k1 k2 k3 kp(|x|) i=1..p(|x|)ki Conclusie: P NP EXP ! Deterministische simulatie van polyNDTM kostO(kp(|x|+1)) = 2 |x|^O(1)-tijd
Eigenschappen NP • NPEXP:iedere polynomiale NDTM is in exponentiële tijd te simuleren met een DTM. • voor alleNP-problemen zijn (exponentiële)backtracking algoritmenbekend. • we weten niet ofNP - P ofNP P.
C(boven P) B C B A A A P Eigenschappenpolynomiale reducties AA(reflexiviteit) B Cen ABimpliceert A C (geslotenheid onder) AB en B Cimpliceert AC(transitiviteit)
Complete, hard en easy • StelCeen complexiteitsklasse eneen (geschikte)reductie. • A isC-hard ondervoor iedere X in C geldt XA • A is C-compleet onderA is C-hard onder en A C • A is C-eenvoudig(easy)ondervoor eenX Cgeldt AX
NPC moeilijker P Structuur van NP NPC = { A NP | X NP [X A] } NP
B Eigenschappen NPC NPC • AlsA NPC, B NP en A B dan B NPC. • AlsA NPC P dan P = NP. A P NP (def.) NP P :Neem X NP. Dan X ≤ A. Derhalve (P gesloten) X P .
Waarom NPC belangrijk? • Als we een polynomiaal algoritme voor eenNPC-probleemAkunnen vinden ( A P) dan geldt P = NP. • Als we voor eenNPC-probleemAkunnen aantonen datA P, dan geldt P NP.
Hoe A NPC te bewijzen? • Bewijs eerst A NP:Toon aan dat voor iedere yes-instantie IAYA van Aeen polynomiale verificatie procedure bestaat. • Toon aan datB Avoor een bekend NPC probleemB.Kies een geschikt bekend NPC probleem B; construeer een polynomiale reductie BA enlaat zien dat deze correct is.
Hamiltoons Pad (HAMP) instantie:G = (V,E)vraag:is er een simpel pad in G dat alle knopen uit V bevat? Tot slot : om te oefenen Toon nu aan: HAMP ≤ HAMCenHAMC ≤ HAMP
Volgende week: • een NPC probleem SAT... • waarom het plaatsen van receiver stations voor mobiel telefoonverkeer een moeilijk probleem is ... • voorbeelden van handige reductietechnieken