fundamentele informatica in3005 deel 2

34
T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica Fundamentele Informatica IN3005 deel 2 IN3005 deel 2 College 2 Cees Witteveen [email protected]

Upload: farhani

Post on 10-Jan-2016

36 views

Category:

Documents


2 download

DESCRIPTION

Fundamentele Informatica IN3005 deel 2. College 2 Cees Witteveen [email protected]. Onderwerpen. Reducties definitie eigenschappen voorbeelden correctheidsbewijzen Complexiteitsklassen definitie en klassen: P, NP, E, EXP P, NP en NP-complete problemen - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Fundamentele  Informatica    IN3005  deel 2

TU

Del

ft

Pa

ralle

l an

d D

istr

ibu

ted

Sys

tem

s g

rou

p

PGS

Fundamentele InformaticaFundamentele Informatica

IN3005 deel 2 IN3005 deel 2

College 2

Cees Witteveen

[email protected]

Page 2: Fundamentele  Informatica    IN3005  deel 2

TU

Del

ft

Pa

ralle

l an

d D

istr

ibu

ted

Sys

tem

s g

rou

p

PGSOnderwerpenOnderwerpen

• Reducties - definitie- eigenschappen- voorbeelden correctheidsbewijzen

• Complexiteitsklassen- definitie en klassen: P, NP, E, EXP

• P, NP en NP-complete problemen- eigenschappen polynomiale reducties- P versus NP- belang NP-complete problemen

Page 3: Fundamentele  Informatica    IN3005  deel 2

TU

Del

ft

Pa

ralle

l an

d D

istr

ibu

ted

Sys

tem

s g

rou

p

PGSReductiesReducties

• Notatie: A B

• Betekenis:er is een algoritme om instanties van A op te lossen met

behulp van (een algoritme voor) instanties van B.• Belang:

als de extra tijd/ruimte benodigd voor de reductie niet essentieel is, is A niet essentieel moeilijker dan B. (en daarom eventueel gemakkelijker).

• Karp reducties:

polynomiale reducties voor beslissingsproblemen;

worden ook wel many-one reducties genoemd;

Page 4: Fundamentele  Informatica    IN3005  deel 2

TU

Del

ft

Pa

ralle

l an

d D

istr

ibu

ted

Sys

tem

s g

rou

p

PGS

Algoritme voor A

Algoritme voor A

YB

Karp-reducties Karp-reducties mm

YA

A m B: voor alle IA DA: IA YA R(IA) YB

algoritme B

yes iff R(I)YB no iff R(I) YB

A

I

B

R

yes iff I YA no iff I YA

Page 5: Fundamentele  Informatica    IN3005  deel 2

TU

Del

ft

Pa

ralle

l an

d D

istr

ibu

ted

Sys

tem

s g

rou

p

PGS eigenschap (polynomiale) eigenschap (polynomiale) reductiesreducties

Stel - A m B

- reductie m is tijdbegrensd door functie T(.)

- XB is algoritme voor B, tijdbegrensd door TB(.),

dan geldt

- er is een algoritme XA voor A, begrensd door

TA(n)= T(n) + TB( n + T(n) )

conclusie: als T en TB polynomiaal begrensd zijn,dan is TA ook polynomiaal begrensd.

Page 6: Fundamentele  Informatica    IN3005  deel 2

TU

Del

ft

Pa

ralle

l an

d D

istr

ibu

ted

Sys

tem

s g

rou

p

PGSCorrectheid reductiesCorrectheid reducties

• betrouwbaarheid

- Neem een willekeurige instantie IA YA en toon aan dat

R( IA ) YB .

- Neem een willekeurige instantie IB R(YA ) en toon aan dat voor alle

instanties IA met R(IA) = IB geldt: IA YA .

• polynomialiteit

toon aan dat transformatie van iedere instantie IA in

polynomiale tijd (polynomiaal in de lengte | IA | van IA )

kan worden uitgevoerd.

Page 7: Fundamentele  Informatica    IN3005  deel 2

TU

Del

ft

Pa

ralle

l an

d D

istr

ibu

ted

Sys

tem

s g

rou

p

PGSReductie: vbReductie: vb

Hamiltoons Circuit (HAMC)

instantie: G = (V,E)

vraag: is er een simpel circuit in G dat alle knopen uit V bevat?

Traveling Sales Person (TSP)

instantie: verzameling S van n steden; afstandenmatrix D = [dij]nxn met dij Z+;

een integer B Z+.vraag: bestaat er een tour langs alle steden in S

met totale afstand B?

Page 8: Fundamentele  Informatica    IN3005  deel 2

TU

Del

ft

Pa

ralle

l an

d D

istr

ibu

ted

Sys

tem

s g

rou

p

PGSreductie 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 9: Fundamentele  Informatica    IN3005  deel 2

TU

Del

ft

Pa

ralle

l an

d D

istr

ibu

ted

Sys

tem

s g

rou

p

PGSHAMC HAMC TSP TSP

input: HAMC-instantie G = (V,E)output: yes alss G in YHAMC

beginS := 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 10: Fundamentele  Informatica    IN3005  deel 2

TU

Del

ft

Pa

ralle

l an

d D

istr

ibu

ted

Sys

tem

s g

rou

p

PGS 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 reductie

a. 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 11: Fundamentele  Informatica    IN3005  deel 2

TU

Del

ft

Pa

ralle

l an

d D

istr

ibu

ted

Sys

tem

s g

rou

p

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

3. Polynomialiteit

Bedenk 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 12: Fundamentele  Informatica    IN3005  deel 2

TU

Del

ft

Pa

ralle

l an

d D

istr

ibu

ted

Sys

tem

s g

rou

p

PGSComplexiteitsklassenComplexiteitsklassen

• Definitie complexiteitsklassen

• Machinemodellen

• Onderscheid tussen klassen: hierarchiestellingen

• Onderscheid binnen complexiteitsklassen:

geschikte reducties, complete problemen

• Eigenschappen polynomiale reducties

Page 13: Fundamentele  Informatica    IN3005  deel 2

TU

Del

ft

Pa

ralle

l an

d D

istr

ibu

ted

Sys

tem

s g

rou

p

PGSComplexiteitsklassenComplexiteitsklassen

• ComplexiteitsklasseEen complexiteitsklasse C gegeven een- machine model M - tijd/ruimte begrenzing B

is de verzameling problemen oplosbaar met M in tijd/ruimte begrenzing B.

• Voorbeelden:- P: de klasse problemen oplosbaar

met DTM in polynomiale tijd;- NP : de klasse problemen oplosbaar

met NDTM in polynomiale tijd.

Page 14: Fundamentele  Informatica    IN3005  deel 2

TU

Del

ft

Pa

ralle

l an

d D

istr

ibu

ted

Sys

tem

s g

rou

p

PGSMachine modellenMachine modellen

• Deterministiche Turingmachine:- voor iedere input is er precies 1

(succesvol / falend / oneindig) berekeningspad.

• Niet-deterministische Turingmachine:- voor gegeven input is meer dan 1 berekeningspad

mogelijk;

- berekening is succesvol als er tenminste één succesvol (eindig) berekeningspad is.

Page 15: Fundamentele  Informatica    IN3005  deel 2

TU

Del

ft

Pa

ralle

l an

d D

istr

ibu

ted

Sys

tem

s g

rou

p

PGSComplexiteitsklassenComplexiteitsklassen

• Tijdklassen

- P O( nO(1))

- NP

- E O(2O(n))

- NE

- EXP O(2n^O(1))

- NEXP

Ruimteklassen

- L : O(log n)

- NL:

- PolyL: O(logO(1) n)

NPolyL

- PSPACE O(nO(1))

NPSPACE

- EXPSPACE O(2n^O(1))

NEXPSPACE: deterministisch

: niet-deterministisch

Page 16: Fundamentele  Informatica    IN3005  deel 2

TU

Del

ft

Pa

ralle

l an

d D

istr

ibu

ted

Sys

tem

s g

rou

p

PGS Complexiteitsklassen:Complexiteitsklassen:relatiesrelaties

L

NLPP

NPNP

EXPEXP

(N)PolyL

(N)PSPACE(N)PSPACE

(N)EXPSPACE

Lk NLk

is strict bevat in

is bevat in

Page 17: Fundamentele  Informatica    IN3005  deel 2

TU

Del

ft

Pa

ralle

l an

d D

istr

ibu

ted

Sys

tem

s g

rou

p

PGS Passende reducties en Passende reducties en complexiteitsklassencomplexiteitsklassen

• Als C een complexiteitsklasse is en een reductie, dan is passend voor C als geldt C is “naar beneden gesloten” onder dwz:

X,Y: als X Y en Y C dan ook X C

• intuitie “ passend voor C”: tijd of ruimte benodigd voor uitvoering reductie valt binnen de tijd/ruimte begrenzingen van C

• Voorbeeld:

polynomiale reducties zijn passend voor P en NP

Page 18: Fundamentele  Informatica    IN3005  deel 2

TU

Del

ft

Pa

ralle

l an

d D

istr

ibu

ted

Sys

tem

s g

rou

p

PGSGeschikte reductiesGeschikte reducties

• reducties passend voor complexiteitsklassen die P omvatten:

- polynomiale reducties: reducties uit te voeren in O(nO(1)) - tijd

- logspace reducties: reducties uit te voeren in O(log n) - ruimte

Page 19: Fundamentele  Informatica    IN3005  deel 2

TU

Del

ft

Pa

ralle

l an

d D

istr

ibu

ted

Sys

tem

s g

rou

p

PGSDe klasse NPDe klasse NP

• geen polynomiale constructie van oplossing bekend

er zijn geen algoritmen voorhanden om een oplossing in polynomiale tijd te construeren.

(d.w.z. geen polynomiale DTM beschikbaar)

• wel polynomiale verificatie van oplossing bekend

er kan in polynomiale tijd geverifieerd worden of een voorgestelde oplossing voldoet of niet.

(d.w.z. wel polynomiale NDTM voorhanden)

Page 20: Fundamentele  Informatica    IN3005  deel 2

TU

Del

ft

Pa

ralle

l an

d D

istr

ibu

ted

Sys

tem

s g

rou

p

PGSTwee definities van NPTwee definities van NP

- standaard definitie: [niet-deterministisch gokken]

A NP als er een NDTM bestaat die iedere yes-instantie x van A oplost in polynomiale tijd,dwz. polynomiaal in de lengte |x| van x.

- alternatieve definitie: [deterministisch verifieren]

A NP als er een DTM M bestaat en een polynoom p(.) zodat x YA desda

- er bestaat een string c(x) (certificaat voor x) met |c(x)| p(|x|);- M antwoordt ‘yes’ voor input (x, c(x)) in hoogstens p(|x|) stappen.

We tonen aan dat deze definities equivalent zijn

Page 21: Fundamentele  Informatica    IN3005  deel 2

TU

Del

ft

Pa

ralle

l an

d D

istr

ibu

ted

Sys

tem

s g

rou

p

PGSNDTM: een berekeningNDTM: een berekening

2

1

2

1

1

1

succesvolle berekening falende berekening

certificaat c(x):2 1 2 1 1 1

invoer xinstructie keuze

Page 22: Fundamentele  Informatica    IN3005  deel 2

TU

Del

ft

Pa

ralle

l an

d D

istr

ibu

ted

Sys

tem

s g

rou

p

PGSNDTM: input + certificaatNDTM: input + certificaat

21

2

1

1

1

succesvolle berekening falende berekening

deterministische berekening!

invoer x + certificaat 212111

Page 23: Fundamentele  Informatica    IN3005  deel 2

TU

Del

ft

Pa

ralle

l an

d D

istr

ibu

ted

Sys

tem

s g

rou

p

PGSNDTM anders bekekenNDTM anders bekeken

• We kunnen ons derhalve een NDTM ook voorstellen als een GOKMODULE + DTM :

gokmodule DTM

gokstring (mogelijk certificaat)

yes

no

input x

Page 24: Fundamentele  Informatica    IN3005  deel 2

TU

Del

ft

Pa

ralle

l an

d D

istr

ibu

ted

Sys

tem

s g

rou

p

PGSNDTM: simulatie met DTMNDTM: simulatie met DTM

p(|x|)

Page 25: Fundamentele  Informatica    IN3005  deel 2

TU

Del

ft

Pa

ralle

l an

d D

istr

ibu

ted

Sys

tem

s g

rou

p

PGSSimulatie NDTM met DTMSimulatie NDTM met DTM

maximaal k>1 keuzes

Deterministische simulatie van polyNDTM kost O(kp(|x|+1)) = 2 |x|^O(1)-tijd Conclusie: P NP EXP !

k1

k2

k3

kp(|x|)

i=1..p(|x|) ki

Page 26: Fundamentele  Informatica    IN3005  deel 2

TU

Del

ft

Pa

ralle

l an

d D

istr

ibu

ted

Sys

tem

s g

rou

p

PGSEigenschappen NPEigenschappen NP

• NP EXP:iedere polynomiale NDTM is in exponentiële tijd te simuleren met een DTM.

• voor alle NP-problemen zijn (exponentiële) backtracking algoritmen bekend.

• we weten niet of NP - P of NP P.

Page 27: Fundamentele  Informatica    IN3005  deel 2

TU

Del

ft

Pa

ralle

l an

d D

istr

ibu

ted

Sys

tem

s g

rou

p

PGS EigenschappenEigenschappenpolynomiale reductiespolynomiale reducties

A A

(reflexiviteit)

A B en B Cimpliceert A C

(transitiviteit)

A

C

B

A

C (boven P)

P

B

A

B C en A B impliceert A

C

(geslotenheid onder )

Page 28: Fundamentele  Informatica    IN3005  deel 2

TU

Del

ft

Pa

ralle

l an

d D

istr

ibu

ted

Sys

tem

s g

rou

p

PGSComplete, hard en easyComplete, hard en easy

• Stel C een complexiteitsklasse en een (geschikte) reductie.

- A is C -hard onder

voor iedere X in C geldt X A

- A is C -compleet onder

A is C -hard onder en A C

- A is C -eenvoudig (easy) onder

voor een X C geldt A X

Page 29: Fundamentele  Informatica    IN3005  deel 2

TU

Del

ft

Pa

ralle

l an

d D

istr

ibu

ted

Sys

tem

s g

rou

p

PGS Structuur van NPStructuur van NP

NPCNPC

PP

NPC = { A NP | X NP [X A] }

moeilijker

Page 30: Fundamentele  Informatica    IN3005  deel 2

TU

Del

ft

Pa

ralle

l an

d D

istr

ibu

ted

Sys

tem

s g

rou

p

PGSEigenschappen NPCEigenschappen NPC

• Als

A NPC, B NP en A B

dan B NPC.

• Als A NPC P dan P = NP.

ANPCNPC

B

P NP (def.)

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

Page 31: Fundamentele  Informatica    IN3005  deel 2

TU

Del

ft

Pa

ralle

l an

d D

istr

ibu

ted

Sys

tem

s g

rou

p

PGSWaarom 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 32: Fundamentele  Informatica    IN3005  deel 2

TU

Del

ft

Pa

ralle

l an

d D

istr

ibu

ted

Sys

tem

s g

rou

p

PGSHoe Hoe A A NPCNPC te bewijzen? te bewijzen?

• Bewijs eerst A NP:

Toon aan dat voor iedere yes-instantie IA YA van 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 33: Fundamentele  Informatica    IN3005  deel 2

TU

Del

ft

Pa

ralle

l an

d D

istr

ibu

ted

Sys

tem

s g

rou

p

PGSTot slot : om te oefenenTot slot : om te oefenen

Hamiltoons Pad (HAMP)

instantie: G = (V,E)

vraag: is er een simpel pad in G dat alle knopen uit V bevat?

Toon nu aan:

HAMP ≤ HAMC en HAMC ≤ HAMP

Page 34: Fundamentele  Informatica    IN3005  deel 2

TU

Del

ft

Pa

ralle

l an

d D

istr

ibu

ted

Sys

tem

s g

rou

p

PGSVolgende week:Volgende week:

• een NPC probleem SAT...

• waarom het plaatsen van receiver stations voor mobiel telefoonverkeer een moeilijk probleem is ...

• voorbeelden van handige reductietechnieken