Fundamentele Informatica IN3005 deel 2
description
Transcript of Fundamentele Informatica IN3005 deel 2
TU
Del
ft
Pa
ralle
l an
d D
istr
ibu
ted
Sys
tem
s g
rou
p
PGS
Fundamentele InformaticaFundamentele Informatica
IN3005 deel 2 IN3005 deel 2
College 2
Cees Witteveen
TU
Del
ft
Pa
ralle
l an
d D
istr
ibu
ted
Sys
tem
s g
rou
p
PGSOnderwerpenOnderwerpen
• 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
TU
Del
ft
Pa
ralle
l an
d D
istr
ibu
ted
Sys
tem
s g
rou
p
PGSReductiesReducties
• 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, is A niet essentieel moeilijker dan B. (en daarom eventueel gemakkelijker).
• Karp reducties:
polynomiale reducties voor beslissingsproblemen;
worden ook wel many-one reducties genoemd;
TU
Del
ft
Pa
ralle
l an
d D
istr
ibu
ted
Sys
tem
s g
rou
p
PGS
Algoritme voor A
Algoritme voor A
YB
Karp-reducties Karp-reducties mm
YA
A m B: voor alle IA DA: IA YA R(IA) YB
algoritme B
yes iff R(I)YB no iff R(I) YB
A
I
B
R
yes iff I YA no iff I YA
TU
Del
ft
Pa
ralle
l an
d D
istr
ibu
ted
Sys
tem
s g
rou
p
PGS eigenschap (polynomiale) eigenschap (polynomiale) reductiesreducties
Stel - A m B
- reductie m is tijdbegrensd door functie T(.)
- XB is algoritme voor B, tijdbegrensd door TB(.),
dan geldt
- er is een algoritme XA voor A, begrensd door
TA(n)= T(n) + TB( n + T(n) )
conclusie: als T en TB polynomiaal begrensd zijn,dan is TA ook polynomiaal begrensd.
TU
Del
ft
Pa
ralle
l an
d D
istr
ibu
ted
Sys
tem
s g
rou
p
PGSCorrectheid reductiesCorrectheid reducties
• betrouwbaarheid
- Neem een willekeurige instantie IA YA en 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: IA YA .
• polynomialiteit
toon aan dat transformatie van iedere instantie IA in
polynomiale tijd (polynomiaal in de lengte | IA | van IA )
kan worden uitgevoerd.
TU
Del
ft
Pa
ralle
l an
d D
istr
ibu
ted
Sys
tem
s g
rou
p
PGSReductie: vbReductie: vb
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 dij Z+;
een integer B Z+.vraag: bestaat er een tour langs alle steden in S
met totale afstand B?
TU
Del
ft
Pa
ralle
l an
d D
istr
ibu
ted
Sys
tem
s g
rou
p
PGSreductie ideereductie idee
HAMC instantieG = ( V, E )
1
1
1
1
1
1
1
1
TSP instantie( V, D, |V| )
hamiltoons circuit tour met kosten |V|
2
2
2
2
2
TU
Del
ft
Pa
ralle
l an
d D
istr
ibu
ted
Sys
tem
s g
rou
p
PGSHAMC HAMC TSP TSP
input: HAMC-instantie G = (V,E)output: yes alss G in YHAMC
beginS := V ; D := [ dij ] |V| x |V| where
dij = 1 if { vi, vj } E and dij = 2 else;B := |V|;return TSP(S,D,B) ;
end
Algoritme voor
TSP probleem
TU
Del
ft
Pa
ralle
l an
d D
istr
ibu
ted
Sys
tem
s g
rou
p
PGS HAMC HAMC TSP TSP (uitwerking)(uitwerking)
1. Constructie reductie
Laat I = ( G = (V,E)) een willekeurige instantie van HAMC zijn. Construeer de volgende instantie R(I) = (S, D, B) van TSP:
1. S := V ;
2. D := [ dij ] |V| x |V| met dij = 1 als { vi, vj } E en dij = 2 anders;
3. B := |V|;
2. Correctheid reductie
a. 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) E en (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.
TU
Del
ft
Pa
ralle
l an
d D
istr
ibu
ted
Sys
tem
s g
rou
p
PGS HAMC HAMC TSP TSP (uitwerking)(uitwerking)
b. Stel R(I) is een yes-instantie. Te bewijzen dat I een yes-instantie is. (Ga zelf na)
3. Polynomialiteit
Bedenk 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
TU
Del
ft
Pa
ralle
l an
d D
istr
ibu
ted
Sys
tem
s g
rou
p
PGSComplexiteitsklassenComplexiteitsklassen
• Definitie complexiteitsklassen
• Machinemodellen
• Onderscheid tussen klassen: hierarchiestellingen
• Onderscheid binnen complexiteitsklassen:
geschikte reducties, complete problemen
• Eigenschappen polynomiale reducties
TU
Del
ft
Pa
ralle
l an
d D
istr
ibu
ted
Sys
tem
s g
rou
p
PGSComplexiteitsklassenComplexiteitsklassen
• ComplexiteitsklasseEen complexiteitsklasse C gegeven een- machine model M - tijd/ruimte begrenzing B
is de verzameling problemen oplosbaar met M in tijd/ruimte begrenzing B.
• Voorbeelden:- P: de klasse problemen oplosbaar
met DTM in polynomiale tijd;- NP : de klasse problemen oplosbaar
met NDTM in polynomiale tijd.
TU
Del
ft
Pa
ralle
l an
d D
istr
ibu
ted
Sys
tem
s g
rou
p
PGSMachine modellenMachine 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.
TU
Del
ft
Pa
ralle
l an
d D
istr
ibu
ted
Sys
tem
s g
rou
p
PGSComplexiteitsklassenComplexiteitsklassen
• 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
TU
Del
ft
Pa
ralle
l an
d D
istr
ibu
ted
Sys
tem
s g
rou
p
PGS Complexiteitsklassen:Complexiteitsklassen:relatiesrelaties
L
NLPP
NPNP
EXPEXP
(N)PolyL
(N)PSPACE(N)PSPACE
(N)EXPSPACE
Lk NLk
is strict bevat in
is bevat in
TU
Del
ft
Pa
ralle
l an
d D
istr
ibu
ted
Sys
tem
s g
rou
p
PGS Passende reducties en Passende reducties en complexiteitsklassencomplexiteitsklassen
• Als C een complexiteitsklasse is en een reductie, dan is passend voor C als geldt C is “naar beneden gesloten” onder dwz:
X,Y: als X Y en Y C dan ook X C
• intuitie “ passend voor C”: tijd of ruimte benodigd voor uitvoering reductie valt binnen de tijd/ruimte begrenzingen van C
• Voorbeeld:
polynomiale reducties zijn passend voor P en NP
TU
Del
ft
Pa
ralle
l an
d D
istr
ibu
ted
Sys
tem
s g
rou
p
PGSGeschikte reductiesGeschikte 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
TU
Del
ft
Pa
ralle
l an
d D
istr
ibu
ted
Sys
tem
s g
rou
p
PGSDe klasse NPDe klasse NP
• geen polynomiale constructie van oplossing bekend
er zijn geen algoritmen voorhanden om een oplossing in polynomiale tijd te construeren.
(d.w.z. geen polynomiale DTM beschikbaar)
• wel polynomiale verificatie van oplossing bekend
er kan in polynomiale tijd geverifieerd worden of een voorgestelde oplossing voldoet of niet.
(d.w.z. wel polynomiale NDTM voorhanden)
TU
Del
ft
Pa
ralle
l an
d D
istr
ibu
ted
Sys
tem
s g
rou
p
PGSTwee definities van NPTwee definities van NP
- standaard definitie: [niet-deterministisch gokken]
A NP als er een NDTM 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
TU
Del
ft
Pa
ralle
l an
d D
istr
ibu
ted
Sys
tem
s g
rou
p
PGSNDTM: een berekeningNDTM: een berekening
2
1
2
1
1
1
succesvolle berekening falende berekening
certificaat c(x):2 1 2 1 1 1
invoer xinstructie keuze
TU
Del
ft
Pa
ralle
l an
d D
istr
ibu
ted
Sys
tem
s g
rou
p
PGSNDTM: input + certificaatNDTM: input + certificaat
21
2
1
1
1
succesvolle berekening falende berekening
deterministische berekening!
invoer x + certificaat 212111
TU
Del
ft
Pa
ralle
l an
d D
istr
ibu
ted
Sys
tem
s g
rou
p
PGSNDTM anders bekekenNDTM anders bekeken
• We kunnen ons derhalve een NDTM ook voorstellen als een GOKMODULE + DTM :
gokmodule DTM
gokstring (mogelijk certificaat)
yes
no
input x
TU
Del
ft
Pa
ralle
l an
d D
istr
ibu
ted
Sys
tem
s g
rou
p
PGSNDTM: simulatie met DTMNDTM: simulatie met DTM
p(|x|)
TU
Del
ft
Pa
ralle
l an
d D
istr
ibu
ted
Sys
tem
s g
rou
p
PGSSimulatie NDTM met DTMSimulatie NDTM met DTM
maximaal k>1 keuzes
Deterministische simulatie van polyNDTM kost O(kp(|x|+1)) = 2 |x|^O(1)-tijd Conclusie: P NP EXP !
k1
k2
k3
kp(|x|)
i=1..p(|x|) ki
TU
Del
ft
Pa
ralle
l an
d D
istr
ibu
ted
Sys
tem
s g
rou
p
PGSEigenschappen NPEigenschappen NP
• NP EXP:iedere polynomiale NDTM is in exponentiële tijd te simuleren met een DTM.
• voor alle NP-problemen zijn (exponentiële) backtracking algoritmen bekend.
• we weten niet of NP - P of NP P.
TU
Del
ft
Pa
ralle
l an
d D
istr
ibu
ted
Sys
tem
s g
rou
p
PGS EigenschappenEigenschappenpolynomiale reductiespolynomiale reducties
A A
(reflexiviteit)
A B en B Cimpliceert A C
(transitiviteit)
A
C
B
A
C (boven P)
P
B
A
B C en A B impliceert A
C
(geslotenheid onder )
TU
Del
ft
Pa
ralle
l an
d D
istr
ibu
ted
Sys
tem
s g
rou
p
PGSComplete, hard en easyComplete, hard en easy
• Stel C een complexiteitsklasse en een (geschikte) reductie.
- A is C -hard onder
voor iedere X in C geldt X A
- A is C -compleet onder
A is C -hard onder en A C
- A is C -eenvoudig (easy) onder
voor een X C geldt A X
TU
Del
ft
Pa
ralle
l an
d D
istr
ibu
ted
Sys
tem
s g
rou
p
PGS Structuur van NPStructuur van NP
NPCNPC
PP
NPC = { A NP | X NP [X A] }
moeilijker
TU
Del
ft
Pa
ralle
l an
d D
istr
ibu
ted
Sys
tem
s g
rou
p
PGSEigenschappen NPCEigenschappen NPC
• Als
A NPC, B NP en A B
dan B NPC.
• Als A NPC P dan P = NP.
ANPCNPC
B
P NP (def.)
NP P : Neem X NP. Dan X ≤ A. Derhalve (P gesloten) X P .
TU
Del
ft
Pa
ralle
l an
d D
istr
ibu
ted
Sys
tem
s g
rou
p
PGSWaarom Waarom NPCNPC belangrijk? belangrijk?
• Als we een polynomiaal algoritme voor een NPC-probleem A kunnen vinden ( A P) dan geldt P = NP.
• Als we voor een NPC-probleem A kunnen aantonen dat A P, dan geldt P NP.
TU
Del
ft
Pa
ralle
l an
d D
istr
ibu
ted
Sys
tem
s g
rou
p
PGSHoe Hoe A A NPCNPC te bewijzen? te bewijzen?
• Bewijs eerst A NP:
Toon aan dat voor iedere yes-instantie IA YA van A een polynomiale verificatie procedure bestaat.
• Toon aan dat B A voor een bekend NPC probleem B.
Kies een geschikt bekend NPC probleem B; construeer een polynomiale reductie B A enlaat zien dat deze correct is.
TU
Del
ft
Pa
ralle
l an
d D
istr
ibu
ted
Sys
tem
s g
rou
p
PGSTot slot : om te oefenenTot slot : om te oefenen
Hamiltoons Pad (HAMP)
instantie: G = (V,E)
vraag: is er een simpel pad in G dat alle knopen uit V bevat?
Toon nu aan:
HAMP ≤ HAMC en HAMC ≤ HAMP
TU
Del
ft
Pa
ralle
l an
d D
istr
ibu
ted
Sys
tem
s g
rou
p
PGSVolgende week:Volgende week:
• een NPC probleem SAT...
• waarom het plaatsen van receiver stations voor mobiel telefoonverkeer een moeilijk probleem is ...
• voorbeelden van handige reductietechnieken