Fundamentele informatica in3120
This presentation is the property of its rightful owner.
Sponsored Links
1 / 34

Fundamentele Informatica IN3120 PowerPoint PPT Presentation


  • 73 Views
  • Uploaded on
  • Presentation posted in: General

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.

Download Presentation

Fundamentele Informatica IN3120

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


Fundamentele informatica in3120

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 isaangetoond 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 pad

Voorbeeld 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 circuit

Reducties (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

B

Eigenschappen 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


    Fundamentele informatica in3120

    Zo werkt de reductie

    G

    G’


    Fundamentele informatica in3120

    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.


  • Login