fundamentele informatica in3120

34
TU Delft Groep Parallelle en Gedistribueerde Systemen Fundamentele Fundamentele Informatica Informatica IN3120 IN3120 Cees Witteveen Parallelle en Gedistribueerde Systemen Faculteit EWI, TU Delft College 2 College 2

Upload: foster

Post on 21-Mar-2016

47 views

Category:

Documents


0 download

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

TRANSCRIPT

Page 1: Fundamentele Informatica  IN3120

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

Page 2: Fundamentele Informatica  IN3120

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.

Page 3: Fundamentele Informatica  IN3120

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

Page 4: Fundamentele Informatica  IN3120

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

Page 5: Fundamentele Informatica  IN3120

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 Σ

Page 6: Fundamentele Informatica  IN3120

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|)

Page 7: Fundamentele Informatica  IN3120

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/

Page 8: Fundamentele Informatica  IN3120

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)

Page 9: Fundamentele Informatica  IN3120

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

Page 10: Fundamentele Informatica  IN3120

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

Page 11: Fundamentele Informatica  IN3120

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.

Page 12: Fundamentele Informatica  IN3120

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.

Page 13: Fundamentele Informatica  IN3120

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

Page 14: Fundamentele Informatica  IN3120

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(*)

Page 15: Fundamentele Informatica  IN3120

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

Page 16: Fundamentele Informatica  IN3120

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)

Page 17: Fundamentele Informatica  IN3120

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.

Page 18: Fundamentele Informatica  IN3120

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 )

Page 19: Fundamentele Informatica  IN3120

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

Page 20: Fundamentele Informatica  IN3120

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

Page 21: Fundamentele Informatica  IN3120

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 .

Page 22: Fundamentele Informatica  IN3120

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.

Page 23: Fundamentele Informatica  IN3120

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.

Page 24: Fundamentele Informatica  IN3120

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 }

Page 25: Fundamentele Informatica  IN3120

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

Page 26: Fundamentele Informatica  IN3120

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

Page 27: Fundamentele Informatica  IN3120

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

Page 28: Fundamentele Informatica  IN3120

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.

Page 29: Fundamentele Informatica  IN3120

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

Page 30: Fundamentele Informatica  IN3120

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

Page 31: Fundamentele Informatica  IN3120

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

Page 32: Fundamentele Informatica  IN3120

TU D

elft

Groe

p Pa

ralle

lle e

n Ge

dist

ribue

erde

Sys

tem

en

G G’

Zo werkt de reductie

Page 33: Fundamentele Informatica  IN3120

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

Page 34: Fundamentele Informatica  IN3120

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.