Upload
foster
View
47
Download
0
Embed Size (px)
DESCRIPTION
Fundamentele Informatica IN3120. College 2. Cees Witteveen Parallelle en Gedistribueerde Systemen Faculteit EWI, TU Delft. Test. a. b. c. d. Ga na welke van onderstaande juist zijn: a . 3 n = O(2 n ). b.c n = 2 O(n) voor elke constante c > 0. - PowerPoint PPT Presentation
Citation preview
TU D
elft
Groe
p Pa
ralle
lle e
n Ge
dist
ribue
erde
Sys
tem
en
Fundamentele Informatica Fundamentele Informatica IN3120 IN3120
Cees WitteveenParallelle en Gedistribueerde Systemen
Faculteit EWI, TU Delft
College 2College 2
TU D
elft
Groe
p Pa
ralle
lle e
n Ge
dist
ribue
erde
Sys
tem
en
Test Test
Ga na welke van onderstaande juist zijn:
a. 3n = O(2n).
b. cn = 2O(n) voor elke constante c > 0.
c. als p(n) een polynoom is dan geldt p(n) = nO(1)
d. n! = O(2n).
a.
b.
c.
d.
TU D
elft
Groe
p Pa
ralle
lle e
n Ge
dist
ribue
erde
Sys
tem
en
AntwoordenAntwoorden
a. 3n = O(2n) is onjuist:Stel maar eens dat er een n0 en c is zodat voor alle n>n0, 3n ≤ c.2n . Maar nu
geldt voor alle n > c / (log 1.5) dat3n > c.2n. Daarmee is
aangetoond dat zulke constanten n0 en c niet kunnen bestaan
b. cn = 2O(n) voor elke constante c > 0 is juist: cn = 2log c x n = 2O(n)
c. als p(n) een polynoom is dan geldt p(n) = nO(1) is juist:Stel p(n) = annk+an-1nk-1+ … + a0 . Dan geldt ≤(an+…+a0)nk voor n≥1.
Voor n0 = an+…+a0 geldt nu (an+…+a0)nk ≤ nk+1 voor alle n ≥ n0. Derhalve
geldt p(n) = nO(1)
d. n! = O(2n) is onjuist. Stel maar eens dat er een n0 en c is zodat voor alle n>n0, n! ≤ c.2n .
Neem nu n>max{n0, 22c}. Dan geldt: n! > 2n-2 x 22c =c2n; contradictie
TU D
elft
Groe
p Pa
ralle
lle e
n Ge
dist
ribue
erde
Sys
tem
en
Doenlijke problemen en Doenlijke problemen en PP
alle problemen (talen) die in polynomiale tijd ( n O(1) )kunnen worden beslist heten doenlijke problemen.
complexiteitsklasse: P = k ≥ 0 Time(nk)
alle deterministische berekeningsmodellen zijn polynomiaal equivalent
Stelling
polynomiale algoritmen zijn onafhankelijk van het gebruikte (deterministische) berekeningsmodel.
Gevolg
TU D
elft
Groe
p Pa
ralle
lle e
n Ge
dist
ribue
erde
Sys
tem
en
Voorbeeld: Voorbeeld: PATHPATH in in PP
Naam: PATHInstantie: Gerichte graaf G = (V, E), knopen s, t in V;Vraag: bestaat er een (gericht) pad van s naar t in G.
st
PATH = { < G, s, t > | G is gerichte graaf met pad van s naar t }
Sipser
Alternatieve formulering
Vergelijk met een taal L over Σ
TU D
elft
Groe
p Pa
ralle
lle e
n Ge
dist
ribue
erde
Sys
tem
en
input : G =(V,E), s,t V begin
new := truefringe := {s};while new
new : = falsefor every e = (x,y) in E
if x fringe y fringe thenfringe:= fringe {y}new := true
if t fringe then accept else rejectend
O(|V|2|E|)
O(1)
O(|V|)
tijdcomplexiteit:O(|V|2 |E|) = O(| input |3)
| input | = |V|+|E| + 2PATHPATH in in PP
O(|E||V|)
TU D
elft
Groe
p Pa
ralle
lle e
n Ge
dist
ribue
erde
Sys
tem
en
voorbij P : NPvoorbij P : NP
Eigenschappen P-probleem
• oplossing is in polynomiale tijd te construeren.• oplossing is in polynomiale tijd te verifiëren.
Eigenschappen NP-probleem
• niet bekend of oplossing in polynomiale tijd is te construeren.
• oplossing is wel in polynomiale tijd te verifiëren.
Niet-deterministisch Polynomiale (tijd)
1000.000 USD te verdienen: http://www.claymath.org/Millennium_Prize_Problems/
TU D
elft
Groe
p Pa
ralle
lle e
n Ge
dist
ribue
erde
Sys
tem
en
Voorbeeld van een NP probleemVoorbeeld van een NP probleem
instantie: G = (V,E)vraag: is er een simpel pad in G dat alle
knopen uit V bevat?
HAMP = { G : er is een hamiltoons pad voor G }
Sipser notatie
Opmerking:
als G HAMP dan wordt G een yes-instantie van HAMP genoemd.
als G HAMP dan wordt G een no-instantie van HAMP genoemd.
Hamiltoons Pad (HAMP)
TU D
elft
Groe
p Pa
ralle
lle e
n Ge
dist
ribue
erde
Sys
tem
en
Verificatie:gegeven een rij (vi 1, . . ., vi k) van knopen
1. komt iedere knoop in V exact éénmaal voor in (vi 1, . . ., vi k) ?
2. is {vi j,vi j+1} voor alle i = 1,..., k-1 een kant in E?
Voorbeeld Hamiltoons padVoorbeeld Hamiltoons pad
HAMP instantie G = ( V, E )
hamiltoons pad
O(|V|2)
O(|V||E|)
O(|input|3)
Er zijn geen polynomiale algoritmen voor HAMP bekend
als een rijtje van n knopen als certificaat gegeven wordt kan wel in polynomiale tijd gecheckt worden of Geen hamiltoons pad heeft: HAMPAD iswel polynomiaal verifieerbaar
v1
v3v4
v5 v6
Certificaat: (v1,v3 ,v5 ,v6 ,v4 ,v2 )
v2
TU D
elft
Groe
p Pa
ralle
lle e
n Ge
dist
ribue
erde
Sys
tem
en
Alternatieve definitie NPAlternatieve definitie NP
• Een verifier voor een taal L is een algoritme V waarvoor geldt:
- L = { x | V accepteert ( x, c ) voor een rijtje c }
- c is het certificaat of bewijs voor lidmaatschap van L
• Een verifier V heet polynomiaal als V een algoritme is dat polynomiaal is in |x|. In dit geval wordt de taal L polynomiaal verifieerbaar genoemd.
NP is de klasse van alle polynomiaal verifieerbare talen
of beslissingsprobleem
TU D
elft
Groe
p Pa
ralle
lle e
n Ge
dist
ribue
erde
Sys
tem
en
Equivalente Definities NPEquivalente Definities NPNP : klasse van alle polynomiaal verifieerbare talen
NP : klasse van alle talen die geaccepteerd worden door een polynomiale NTM
Gegeven polynomiale verifier V, construeer NTM M als volgt: voor input x met |x| = n kies nondeterministisch een certificaat c van lengte ≤ nk. Simuleer V op invoer (x,c); accepteer als V accepteert, anders verwerp.
Gegeven polynomiale NTM M, construeer V als volgt:voor input x met |x| = n, simuleer Tm M op x en noteer de opeenvolgende(niet)-deterministische keuzes die M maakt in certificaat c; accepteer als M uiteindelijk accepteert, anders verwerp.
TU D
elft
Groe
p Pa
ralle
lle e
n Ge
dist
ribue
erde
Sys
tem
en
Centraal probleem: P = NP?Centraal probleem: P = NP?
• P = NP ?Voor NP problemen zijn tot nu toe alleen exponentiële algoritmen bekend; we weten niet of P = NP of P ≠ NP.
• Belang:NP bevat groot aantal interessante problemen
• satisfiability van boolese formules• padproblemen in grafen (TSP, Hamiltoons pad)• cover problemen: set en vertex cover.• rooster en schedulings problemen.• etc.
TU D
elft
Groe
p Pa
ralle
lle e
n Ge
dist
ribue
erde
Sys
tem
en
Reducties (i)Reducties (i)
HAMC instantie G = (V, E)
hamiltoons circuit Stel we hebben de beschikking over een van de beste algoritmen ter wereld voor HAMP.
Kunnen we zonder essentieel efficiëntie verlies dit algoritme ook gebruiken voor andere NP-problemen zoals HAMC?
HAMC = {G: G heeft een simpel circuit dat alle knopen bevat }
Reducties als hergebruik van algoritmen
TU D
elft
Groe
p Pa
ralle
lle e
n Ge
dist
ribue
erde
Sys
tem
en
Reductie: ideeReductie: idee
Eisen aan f:
1.x * : x HAMC f(x) HAMP2. f berekenbaar in poly-tijd
HAMC
*
HAMP
’*
algoritmeHAMP
no yes
f
f(*)
TU D
elft
Groe
p Pa
ralle
lle e
n Ge
dist
ribue
erde
Sys
tem
en
Reductie (ii)Reductie (ii)
HAMC instantie G = (V, E)
v1
v0 ab
hamiltoons circuit
hamiltoons pad
HAMP instantie G = (V, E)
HAMC is niet essentieel moeilijker dan HAMP
TU D
elft
Groe
p Pa
ralle
lle e
n Ge
dist
ribue
erde
Sys
tem
en
Reductie: constructie uitgewerktReductie: constructie uitgewerkt
input: G = (V, E)begin
V’ : = {a, b, v0 } V %% a, b, v0 V E’ := E { {v0,v} : {v1,v} E } { {v0,a}, {v1,b} } return f(G) = (V’, E’)
end
Constructie reductie f van HAMC naar HAMP
1. G HAMC f(G) HAMP2. f(G) HAMP G HAMC3. f is polynomiaal berekenbaar
Correctheid van reductie (kun je na afloop zelf)
TU D
elft
Groe
p Pa
ralle
lle e
n Ge
dist
ribue
erde
Sys
tem
en
Polynomiale-tijd reductiesPolynomiale-tijd reducties
Een polynomiale-tijd reductie van probleem A naar probleem B is een polynomiaal berekenbare functie f waarvoor geldt : x * x A f(x) B
Definitie
Als f een poly-tijd reductie is van A naar B dan geldt als B P dan A P
notatie: A ≤ B
Stelling
Bewijs: laat p en q polynomen zijn waarvoor geldt: ALGB is een O(p(n)) algoritme voor B en f is berekenbaar in O(q(n)). Gegeven een x met |x| = n, bepaal nu ALGB ( f(x)). Berekening kost O(q(n) + p(n+q(n)))-tijd. Omdat polynomen gesloten zijn onder optelling en functiecompositie geldt: ALGB ( f(x)) is een polynomiaal algoritme voor A.
TU D
elft
Groe
p Pa
ralle
lle e
n Ge
dist
ribue
erde
Sys
tem
en
EigenschappenEigenschappenpolynomiale reductiespolynomiale reducties
A A
(reflexiviteit)
A B en B Cimpliceert A C
(transitiviteit)
A
C
B
A
NP
P
B
A
B NP en A B impliceert A NP
(geslotenheid onder )
TU D
elft
Groe
p Pa
ralle
lle e
n Ge
dist
ribue
erde
Sys
tem
en
NP-hard en NP-compleetNP-hard en NP-compleet
B is NP-hard (onder voor iedere A in NP geldt A B
B is NP-compleet onder
1. B is NP-hard onder 2. B NP
NP-hard
NP-compleet
TU D
elft
Groe
p Pa
ralle
lle e
n Ge
dist
ribue
erde
Sys
tem
en
Structuur van NPStructuur van NP
NPC
P
NPC = { A NP | X NP [X A] }
moeilijker
TU D
elft
Groe
p Pa
ralle
lle e
n Ge
dist
ribue
erde
Sys
tem
en
Eigenschappen NPCEigenschappen NPC
• Als A NPC, B NP en A B dan B NPC.
• Als A NPC P dan P = NP.
ANPC
B
P NP (def.)NP P : Neem X NP. Dan X ≤ A.
Derhalve (P gesloten) X P .
TU D
elft
Groe
p Pa
ralle
lle e
n Ge
dist
ribue
erde
Sys
tem
en
Waarom 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 D
elft
Groe
p Pa
ralle
lle e
n Ge
dist
ribue
erde
Sys
tem
en
Hoe Hoe A A NPCNPC te bewijzen? te bewijzen?
• Bewijs eerst dat A NP:Toon aan dat voor iedere x 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 D
elft
Groe
p Pa
ralle
lle e
n Ge
dist
ribue
erde
Sys
tem
en
Meer NP problemen: vbMeer NP problemen: vb
• Traveling Sales Person (TSP)- instantie: een verzameling S van n steden , een
intercity afstanden matrix Dnxn met dij Z+ en een integer B Z+
- vraag: bestaat er een tour langs alle steden mettotale afstand B ?
TSP = { (S, D, B) : S heeft tour met kosten ≤ B }
TU D
elft
Groe
p Pa
ralle
lle e
n Ge
dist
ribue
erde
Sys
tem
en
Voorbeeld:TSP is NP-compleetVoorbeeld:TSP is NP-compleet
• Aanname: HAMC is NP-compleet
• Te bewijzen: TSP is NP-compleet
TU D
elft
Groe
p Pa
ralle
lle e
n Ge
dist
ribue
erde
Sys
tem
en
reductie 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 D
elft
Groe
p Pa
ralle
lle e
n Ge
dist
ribue
erde
Sys
tem
en
HAMC HAMC TSP TSP
input: G = (V,E)output: yes alss G in HAMCbeginS := 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 D
elft
Groe
p Pa
ralle
lle e
n Ge
dist
ribue
erde
Sys
tem
en
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 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) 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 D
elft
Groe
p Pa
ralle
lle e
n Ge
dist
ribue
erde
Sys
tem
en
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)
• 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
TU D
elft
Groe
p Pa
ralle
lle e
n Ge
dist
ribue
erde
Sys
tem
en
Wat doen we hierna?Wat doen we hierna?
• doenlijk vss ondoenlijk: P versus NP- NP-complete problemen, voorbij NP
• praktische aspecten van NP-problemen- pseudopolynomiale algoritmen- heuristieken
• bijzondere onderwerpen- quantum computing- zero-knowledge proof systems
TU D
elft
Groe
p Pa
ralle
lle e
n Ge
dist
ribue
erde
Sys
tem
en
poly-tijd reductie: vbpoly-tijd reductie: vb
• reductie van VERTEX COVER (VC) naar CLIQUE:
input: G = ( V, E ), K Z+;output: yes alss VC ter grootte van K bestaat
beginLaat G’ = ( V’, E’ ) met V’ = V en E’ = { { v,w } | v ≠ w V, {v,w} E };K’ = | V | - K return CLIQUE(G’, K’)
end
Nb: CLIQUE is het algoritme voor het clique probleem; CLIQUE(G’, K’) = yes alss G’ een clique ter grootte van K’ bevat anders no
TU D
elft
Groe
p Pa
ralle
lle e
n Ge
dist
ribue
erde
Sys
tem
en
G G’
Zo werkt de reductie
TU D
elft
Groe
p Pa
ralle
lle e
n Ge
dist
ribue
erde
Sys
tem
en
vertex cover size 5 in G
( K )
clique size 3 in G’
( |V| - K )
Zo werkt de reductie
TU D
elft
Groe
p Pa
ralle
lle e
n Ge
dist
ribue
erde
Sys
tem
en
Hoe correctheid te bewijzenHoe correctheid te bewijzen
• ga na dat transformatie polynomiaal is
• ga na dat yes-instanties van VC worden getransformeerd naar yes-instanties van CLIQUE
• ga na dat een getransformeerde yes-instantie van CLIQUE altijd afkomstig is van een oorspronkelijke yes-instantie van VC.