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.