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

Fundamentele Informatica IN3120

  • 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

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.