fundamentele informatica in3120
Download
Skip this Video
Download Presentation
Fundamentele Informatica IN3120

Loading in 2 Seconds...

play fullscreen
1 / 34

Fundamentele Informatica IN3120 - PowerPoint PPT Presentation


  • 104 Views
  • Uploaded on

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.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Fundamentele Informatica IN3120' - foster


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
fundamentele informatica in3120

Fundamentele Informatica IN3120

College 2

Cees WitteveenParallelle en Gedistribueerde Systemen

Faculteit EWI, TU Delft

slide2
Test

a.

b.

c.

d.

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

antwoorden
Antwoorden
  • 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
  • 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.Derhalvegeldt 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

doenlijke problemen en p
alle problemen (talen) die in polynomiale tijd ( n O(1))kunnen worden beslist heten doenlijke problemen.

complexiteitsklasse: P = k ≥ 0Time(nk)

Stelling

alle deterministische berekeningsmodellen zijn polynomiaal equivalent

Gevolg

polynomiale algoritmen zijn onafhankelijk van het gebruikte (deterministische) berekeningsmodel.

Doenlijke problemen en P
voorbeeld path in p
s

t

Voorbeeld: PATH in P

Vergelijk met een taal L over Σ

Sipser

Naam:PATH

Instantie:Gerichte graaf G = (V, E), knopen s, t in V;

Vraag: bestaat er een (gericht) pad van s naar t in G.

PATH = { < G, s, t > | G is gerichte graaf met pad van s naar t }

Alternatieve formulering

path in p
O(1)

O(|V|2|E|)

O(|E||V|)

O(|V|)

PATH in P

| input | = |V|+|E| + 2

tijdcomplexiteit:O(|V|2 |E|) = O(| input |3)

input : G =(V,E), s,t  V

begin

new := true

fringe := {s};

while new

new : = false

for every e = (x,y) in E

if x  fringe  y  fringe then

fringe:= fringe  {y}

new := true

if t  fringe thenacceptelsereject

end

voorbij p np
voorbij P : NP

Niet-deterministisch

Polynomiale (tijd)

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.

1000.000 USD te verdienen: http://www.claymath.org/Millennium_Prize_Problems/

voorbeeld van een np probleem
Voorbeeld van een NP probleem

Hamiltoons Pad (HAMP)

instantie:G = (V,E)vraag:is er een simpel pad in G dat alle knopen uit V bevat?

Sipser notatie

HAMP = { G : er is een hamiltoons pad voor G }

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.

voorbeeld hamiltoons pad
hamiltoons padVoorbeeld Hamiltoons pad

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

v2

v1

v4

v3

O(|input|3)

Verificatie:gegeven een rij (vi 1, . . ., vi k) van knopen

komt iedere knoop in V exact éénmaal voor in (vi 1, . . ., vi k) ?

is {vi j,vi j+1} voor alle i = 1,..., k-1 een kant in E?

v5

O(|V|2)

v6

Certificaat: (v1,v3 ,v5 ,v6 ,v4 ,v2 )

HAMP instantieG = ( V, E )

O(|V||E|)

alternatieve definitie np
Alternatieve definitie NP

of beslissingsprobleem

  • 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

equivalente definities np
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.

Equivalente Definities NP

NP : klasse van alle polynomiaal verifieerbare talen

NP : klasse van alle talen die geaccepteerd worden door een polynomiale NTM

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.
reducties i
hamiltoons circuitReducties (i)

Reducties als hergebruik van algoritmen

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 }

HAMC instantieG = (V, E)

reductie idee
f(*)

’*

*

f

HAMC

HAMP

algoritmeHAMP

no

yes

Reductie: idee

Eisen aan f:1.x  * : x  HAMC f(x)  HAMP

2. f berekenbaar in poly-tijd

reductie ii
hamiltoons pad

hamiltoons circuit

Reductie (ii)

v0

a

b

v1

HAMC instantieG = (V, E)

HAMP instantieG = (V, E)

HAMC is niet essentieel moeilijker dan HAMP

reductie constructie uitgewerkt
Constructie reductie f van HAMC naar HAMP

input: G = (V, E)

beginV’ : = {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

Reductie: constructie uitgewerkt

Correctheid van reductie (kun je na afloop zelf)

1. G  HAMC  f(G)  HAMP

2. f(G)  HAMP  G  HAMC

3. f is polynomiaal berekenbaar

polynomiale tijd reducties
Polynomiale-tijd reducties

Definitie

notatie: A ≤ B

Een polynomiale-tijd reductie van probleem A naar probleem B is een polynomiaal berekenbare functie f waarvoor geldt : x *x A  f(x)  B

Stelling

Als f een poly-tijd reductie is van A naar B dan geldt als B P dan A P

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.

eigenschappen polynomiale reducties
NP

B

C

B

A

A

A

P

Eigenschappenpolynomiale reducties

AA(reflexiviteit)

B NPen ABimpliceert A NP

(geslotenheid onder)

AB en BCimpliceert AC(transitiviteit)

np hard en np compleet
NP-hard en NP-compleet

NP-hard

  • B isNP-hard (onder )voor iedere A in NP geldt AB

NP-compleet

B is NP-compleet onder1. B is NP-hard onder 

2. B NP

structuur van np
NPC

moeilijker

P

Structuur van NP

NPC = { A  NP | X  NP [X  A] }

NP

eigenschappen npc
BEigenschappen NPC

NPC

  • AlsA NPC, B  NP enA  B dan B  NPC.
  • AlsA  NPC  P dan P = NP.

A

P  NP (def.)

NP  P :Neem X  NP. Dan X ≤ A. Derhalve (P gesloten) X  P .

waarom npc belangrijk
Waarom NPC belangrijk?
  • Als we een polynomiaal algoritme voor eenNPC-probleemAkunnen vinden ( A P) dan geldt P = NP.
  • Als we voor eenNPC-probleemAkunnen aantonen datA  P, dan geldt P  NP.
hoe a npc te bewijzen
Hoe A  NPC te bewijzen?
  • Bewijs eerst dat A  NP:Toon aan dat voor iedere x Aeen polynomiale verificatie procedure bestaat.
  • Toon aan datB Avoor een bekend NPC probleemB.Kies een geschikt bekend NPC probleem B; construeer een polynomiale reductie BA enlaat zien dat deze correct is.
meer np problemen vb
Meer 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 }

voorbeeld tsp is np compleet
Voorbeeld:TSP is NP-compleet
  • Aanname:HAMC is NP-compleet
  • Te bewijzen:TSP is NP-compleet
reductie idee1
hamiltoons circuit

tour met kosten  |V|

1

2

1

2

1

2

1

1

2

2

1

1

1

reductie idee

TSP instantie(V,D,|V| )

HAMC instantieG = ( V, E )

hamc tsp
Algoritme voor

TSP probleem

HAMC  TSP

input: G = (V,E)output: yes alss G inHAMC

beginS:= V ;D:=[ dij] |V| x |V|wheredij = 1if { vi, vj } E and dij = 2 else;B :=|V|;return TSP(S,D,B);

end

hamc tsp uitwerking
HAMC  TSP (uitwerking)
  • Constructie reductieLaat I = ( G = (V,E)) een willekeurige instantievanHAMC zijn. Construeer de volgende instantie R(I) = (S, D, B) van TSP:
      • S := V ;
      • D := [ dij] |V| x |V| met dij = 1 als { vi, vj }  E en dij = 2 anders;
      • B := |V|;
  • 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) Een(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.
hamc tsp uitwerking1
HAMC  TSP (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
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
poly tijd reductie vb
poly-tijd reductie: vb
  • reductie vanVERTEX COVER (VC)naar CLIQUE:

input:G = ( V, E ), K  Z+;

output: yes alss VCter grootte van K bestaat

begin

Laat G’ = ( V’, E’ ) met

V’ = V en E’ = { { v,w } | v ≠ w  V, {v,w}  E };

K’ = | V | - K

returnCLIQUE(G’, K’)

end

Nb: CLIQUE is het algoritme voor hetclique probleem; CLIQUE(G’, K’) = yes alss G’ een clique ter grootte van K’ bevat anders no

slide33
Zo werkt de reductie

vertex cover size 5 in G

( K )

clique size 3 in G’

( |V| - K )

hoe correctheid te bewijzen
Hoe correctheid te bewijzen
  • ga na dat transformatie polynomiaalis
  • 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.
ad