Klasserne af problemer, der kan løses i deterministisk og i ikke-deterministisk polynomiel tid; polynomiel reduktion; N P-fuldstændighed

Relaterede dokumenter
Hamiltonkreds, den handelsrejsendes problem, delmængdesum-problemet

16. marts P NP. Essentielle spørgsmål: NP P? Et problem Q kaldes NP -fuldstændigt 1 Q NP 2 R NP : R pol Q. Resume sidste gang

16. december. Resume sidste gang

Tirsdag 12. december David Pisinger

Datalogisk indsigt Der findes problemer som kan løses effektivt (polynomiel

Sprog L : mængden af instanser for et afgørlighedsproblem

Dynamisk programmering

13. december. Datalogiens største spørgsmål. Hvis kan bevise NP = P fås 1 million dollar

Hamilton-veje og kredse:

Dynamisk programmering

.. if L(u) + w(u, v) < L(v) then.. begin... L(v) := L(u) + w(u, v)... F (v) := u.. end. med længde L(z)}

P2-gruppedannelsen for Mat og MatØk

Tirsdag 5. december David Pisinger

Videregående Algoritmik. Version med vejledende løsninger indsat!

Sidste gang Motivation Definitioner Approximations-algoritme for knudeoverdækning Approximations-algoritme for TSP med trekantsulighed

Skriftlig Eksamen Algoritmer og Datastrukturer 2 (2003-ordning)

Skriftlig Eksamen Beregnelighed (DM517)

Løs til optimalitet i eksponentiel tid Find tilnærmet løsning i polynomiel tid

Skriftlig Eksamen DM507 Algoritmer og Datastrukturer

Dynamisk programmering

Analyse af ombytningspuslespil

Analyse af ombytningspuslespil

Eksamen i Diskret Matematik

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET

P2-projektforslag Kombinatorik: grafteori og optimering.

02105 Eksamensnoter. Lasse Herskind S maj Sortering 3

Broer, skak og netværk Carsten Thomassen: Naturens Verden 10, 1992, s

Løs til optimalitet i eksponentiel tid Find tilnærmet løsning i polynomielt tid Optimeringsproblemer kan ikke altid verificeres i polynomiel

P (n): rekursiv beregning af f n kræver f n beregninger af f 1. P (n) er sand for alle n 2.

9. marts. NP -fuldstændighed. Datalogiens største spørgsmål. Hvis kan bevise NP P fås 1 million dollar

Danmarks Tekniske Universitet

Perspektiverende Datalogi Klassiske Algoritmer

Skriftlig Eksamen DM507 Algoritmer og Datastrukturer

Danmarks Tekniske Universitet

Divide-and-Conquer algoritmer

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet

Skriftlig Eksamen Kombinatorik, sandsynlighed og randomiserede algoritmer (DM528)

DATALOGISK INSTITUT, AARHUS UNIVERSITET

Eksempel på muligt eksamenssæt i Diskret Matematik

Danmarks Tekniske Universitet

Sortering af information er en fundamental og central opgave.

Skriftlig Eksamen Kombinatorik, sandsynlighed og randomiserede algoritmer (DM528)

Symmetrisk Traveling Salesman Problemet

Korteste veje i vægtede grafer. Længde af sti = sum af vægte af kanter på sti.

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET

Sortering. Eksempel: De n tal i sorteret orden

Skriftlig Eksamen Algoritmer og Sandsynlighed (DM538)

Divide-and-Conquer algoritmer

Danmarks Tekniske Universitet

Reeksamen i Diskret Matematik

Danmarks Tekniske Universitet

Korteste veje i vægtede grafer. Længde af sti = sum af vægte af kanter på sti.

Definition : Et træ er en sammenhængende ikke-orienteret graf uden simple kredse. Sætning : En ikke-orienteret graf er et træ hvis og kun hvis der er

Grådige algoritmer. Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer.

Analyse af algoritmer

Minimum udspændende Træer (MST)

Sortering. De n tal i sorteret orden. Eksempel: Kommentarer:

Danmarks Tekniske Universitet

DM517:Supplerende noter om uafgørlighedsbeviser:

dks Noter Michael Lind Mortensen, illio 24. juni 2010

Perspektiverende Datalogikursus

1 Beregnelighed. 1.1 Disposition. 1.2 Præsentation. Def. TM. Def. RE/R. Def. 5 egenskaber for RE/R. Def. NSA. Bevis. NSA!RE. Def. SA. Bevis. SA!

Skriftlig Eksamen Algoritmer og Datastrukturer (DM507)

Prioritetskøer og hobe. Philip Bille

Om hypoteseprøvning (1)

Selvstudium 1, Diskret matematik

Mindste udspændende træ. Mindste udspændende træ. Introduktion. Introduktion

Perspektiverende Datalogikursus

Algoritmer og datastrukturer Course No Cheat Sheet May 15, 2012

Sortering. Eksempel: De n tal i sorteret orden

Grundlæggende køretidsanalyse af algoritmer

Sortering af information er en fundamental og central opgave.

Grådige algoritmer. Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer.

Danmarks Tekniske Universitet

Baggrundsnote om logiske operatorer

Rolf Fagerberg. Forår 2013

Mindste udspændende træ

Mindste udspændende træ. Mindste udspændende træ. Introduktion. Introduktion

Eksamensopgaver i DM17, Januar 2003

28 Algoritmedesign. Noter. PS1 -- Algoritmedesign

Skriftlig Eksamen Algoritmer og sandsynlighed (DM538)

Prioritetskøer. Prioritetskøer. Prioritetskøer. Prioritetskøer

Prioritetskøer. Prioritetskøer Træer og hobe Repræsentation af hobe Algoritmer på hobe Hobkonstruktion Hobsortering. Philip Bille

Orienterede grafer. Orienterede grafer. Orienterede grafer. Orienterede grafer

Oversættere Skriftlig eksamen onsdag d. 24. januar 2007

Spilstrategier. Indhold. Georg Mohr-Konkurrencen. 1 Vindermængde og tabermængde 2. 2 Kopier modpartens træk 4

Reeksamen i Diskret Matematik

Skriftlig Eksamen Algoritmer og Datastrukturer (DM507)

Korteste veje i vægtede grafer. Længde af sti = sum af vægte af kanter på sti.

Perspektiverende Datalogi Klassiske Algoritmer. Gerth Stølting Brodal

Primtal Rekursion Kernebegreber, anvendelser og fundamenter i datalogi Torsdag den 17. marts 2005 Nils Andersen A.K. Dewdney kap.

Asymptotisk analyse af algoritmers køretider

Danmarks Tekniske Universitet

Grafer og graf-gennemløb

Sommeren 2001, opgave 1

Ja! det beviste vi uge 16+17

Orienterede grafer. Introduktion Repræsentation Søgning Topologisk sortering og DAGs Stærke sammenhængskomponenter Implicitte grafer.

Branch-and-bound. David Pisinger. Videregående algoritmik, DIKU ( ) 1 Introduktion Gennemgående eksempler Brute-force metoder 10

Algoritmeanalyse. Øvre grænse for algoritme. Øvre grænse for problem. Nedre grænse for problem. Identificer essentiel(le) operation(er)

Transkript:

Klasserne af problemer, der kan løses i deterministisk og i ikke-deterministisk polynomiel tid; polynomiel reduktion; N P-fuldstændighed Videregående algoritmik Cormen et al. 34.1 34.3 Fredag den 12. december 2008

Vi vil præcisere distinktionen mellem medgørlige og umedgørlige problemer. Denne indsigt gør det muligt at skelne mellem Problemer, som kan løses effektivt (klassen P) Problemer, som ikke kan løses effektivt (omfatter klassen N P) Uløselige problemer Disse begreber har interesse for dataloger, fordi Hvorvidt N P P, er et af de største åbne problemer i teoretisk datalogi Det vrimler med svære problemer At se forskel på lette og svære problemer kan være vanskeligt Metoden problemreduktion er generelt anvendelig

Vind $ 1.000.000 Fra http://www.claymath.org/millennium

Jagten på effektive algoritmer Tre situationer fra Garey & Johnson. 1 En ærgerlige situation

Jagten på effektive algoritmer Tre situationer fra Garey & Johnson. 1 En ærgerlige situation 2 Ønskelig status

Jagten på effektive algoritmer Tre situationer fra Garey & Johnson. 1 En ærgerlige situation 2 Ønskelig status 3 Ofte det bedst opnåelige

Lette og svære problemer let Eulerkreds: For en forelagt graf: Har den en kreds med netop alle kanterne? Kinesiske postbud: For en vægtet graf og en grænse k: Har den en kreds med alle kanter og af længde højst k? 2CNF-SAT: For et logisk udtryk på 2CN-form: Kan en sandhedsværditilskrivning gøre det sandt? vanskeligt Hamiltonkreds: For en forelagt graf: Har den en kreds gennem hver knude netop en gang? Handelsrejsende: For en vægtet graf og en grænse k: Har den en kreds gennem alle knuder og af længde højst k? 3CNF-SAT: For et logisk udtryk på 3CN-form: Kan en sandhedsværditilskrivning gøre det sandt?

Lette og svære problemer (2) Korteste vej: For en vægtet graf med to knuder og en grænse k: Er der en vej fra den første knude til den anden af længde højst k? Længste vej: For en vægtet graf med to knuder og en grænse k: Er der en vej fra den første knude til den anden af længde mindst k? Kantoverdækning: For en graf og en grænse k: Kan man vælge k (eller færre) kanter, så hver knude er incident med en af de valgte? Alle fem tilhører P Knudeoverdækning: For en graf og en grænse k: Kan man vælge k (eller færre) knuder, så hver kant er incident med en af de valgte? Alle fem tilhører N PC (de vanskeligste problemer inden for N P)

1 Problemklassen P Afgørlighedsproblemer Indkodning af instans Accept, forkastelse, afgørelse

1 Problemklassen P Afgørlighedsproblemer Indkodning af instans Accept, forkastelse, afgørelse 2 Hamiltonkreds Verifikation i polynomiel tid N P og co-n P

1 Problemklassen P Afgørlighedsproblemer Indkodning af instans Accept, forkastelse, afgørelse 2 Hamiltonkreds Verifikation i polynomiel tid N P og co-n P 3 Reduktion N PC Et N P-fuldstændigt problem

Hvad er et problem? Afgørlighedsproblemer Indkodning af instans Accept, forkastelse, afgørelse Vi må skærpe begreberne: Problem vil mere præcist sige (parametriseret) problemtype, til hvis enkelttilfælde eller instanser der skal beregnes løsninger. (Relation/flertydig funktion) I praksis ofte optimeringsproblemer, men her i den teoretiske behandling betragtes Afgørlighedsproblemer: Hver instans har en binær løsning (kodet som 0 eller 1) Intet tab af generalitet Et problems kompleksitet måles ved kompleksiteten af den bedste metode (algoritme) til løsning af det.

Indkodning af instans Afgørlighedsproblemer Indkodning af instans Accept, forkastelse, afgørelse Medgørligt løseligt i polynomiel køretid. Robust over for mange variationer og kombinationer (og kodninger og maskinmodeller). Køretid O(n k ) for konstant k og instans(kode)længde n. Ideelt set skulle ræsonnementerne være uafhængige af den valgte indkodning. Men kodningen har stor betydning! Eksempel: Er k et primtal? for i=2 to k-1 do test i k kodning n antal samlet tid unær Θ(k) Θ(n) Θ(n) Θ(n 2 ) binær Θ(log(k)) Θ(n 2 ) Θ(2 n ) Θ(2 n n 2 ) decimal Θ(log(k)) Θ(n 2 ) Θ(10 n ) Θ(10 n n 2 )

Indkodning af instans Afgørlighedsproblemer Indkodning af instans Accept, forkastelse, afgørelse Medgørligt løseligt i polynomiel køretid. Robust over for mange variationer og kombinationer (og kodninger og maskinmodeller). Køretid O(n k ) for konstant k og instans(kode)længde n. Ideelt set skulle ræsonnementerne være uafhængige af den valgte indkodning. Men kodningen har stor betydning! Eksempel: Er k et primtal? for i=2 to k-1 do test i k kodning n antal samlet tid unær Θ(k) Θ(n) Θ(n) Θ(n 2 ) binær Θ(log(k)) Θ(n 2 ) Θ(2 n ) Θ(2 n n 2 ) decimal Θ(log(k)) Θ(n 2 ) Θ(10 n ) Θ(10 n n 2 ) Med binær kodning og Agrawal-Kayal-Saxena-metoden: Θ(n 11 ) (?)

Indkodning af instans Afgørlighedsproblemer Indkodning af instans Accept, forkastelse, afgørelse Medgørligt løseligt i polynomiel køretid. Robust over for mange variationer og kombinationer (og kodninger og maskinmodeller). Køretid O(n k ) for konstant k og instans(kode)længde n. Ideelt set skulle ræsonnementerne være uafhængige af den valgte indkodning. Men kodningen har stor betydning! Eksempel: Er k et primtal? for i=2 to k-1 do test i k kodning n antal samlet tid unær Θ(k) Θ(n) Θ(n) Θ(n 2 ) binær Θ(log(k)) Θ(n 2 ) Θ(2 n ) Θ(2 n n 2 ) decimal Θ(log(k)) Θ(n 2 ) Θ(10 n ) Θ(10 n n 2 ) Med binær kodning og Agrawal-Kayal-Saxena-metoden: Θ(n 11 ) (?) Med tal kodet ved deres primopløsning: Θ(1)

Standardkodning Afgørlighedsproblemer Indkodning af instans Accept, forkastelse, afgørelse Kodning af en ikke-orienteret graf G = (V, E): Nummerer knuderne (n = V ), lad kanterne være (u 1, v 1 ),..., (u k, v k ) (k = E ), og brug koden G = 0, 1,..., n 1, (u 1, v 1 ),..., (u k, v k ), idet overstregning betegner binær talkodning. Kodealfabet = (, ), 0, 1 og,. Eksempel G : G = 0,1,10,11,(0,1),(0,10),(0,11),(1,10),(10,11) På lignende måde vil vi i almindelighed bruge for at betegne en naturlig indkodning af.

Afgørlighedsproblem Afgørlighedsproblemer Indkodning af instans Accept, forkastelse, afgørelse Polynomielt relaterede indkodninger: Der skal findes polynomialtidsberegnelige omsætningsfunktioner begge veje. Gennem (i den teoretiske behandling altid binær) kodning af instanserne bliver et afgørlighedsproblem et prædikat (over binære ord). Eksempel For w {0, 1} : 1 hvis w = G, u, v, k for en ikke-orienteret graf G, i hvilken der går en vej med højst k PATH(w) = kanter fra et punkt u til et punkt v 0 ellers Bemærk specielt, at PATH(w) = 0, hvis w ikke indkoder en instans ( syntaksfejl ).

Afgørlighedsproblemer Indkodning af instans Accept, forkastelse, afgørelse Afgørlighedsproblem som formelt sprog L PATH = {w Σ PATH(w) = 1} Vi vil ikke skelne skarpt mellem et problem og det tilhørende formelle sprog (og altså for eksempel identificere PATH med L PATH ).

Genkendelse med en algoritme Afgørlighedsproblemer Indkodning af instans Accept, forkastelse, afgørelse Algoritme A acccepterer (genkender) er formelt ord x Algoritme A forkaster (afviser) et formelt ord x A standser med værdien 1 A standser med værdien 0

Afgørlighedsproblemer Indkodning af instans Accept, forkastelse, afgørelse Accepterende og afgørende algoritmer Algoritme A accepterer L (w accepteres af A w L) (så for w / L kan A(w) være udefineret eller 1) { } w accepteres af A w L Algoritme A afgør L w afvises af A w / L A accepterer L i polynomiel tid, hvis A accepterer L, og der findes et k, så det for alle ord w L gælder, at A(w) tager O(n k ) skridt (n = w ). A afgør L i polynomiel tid, hvis A afgør L, og der findes et k, så det for alle ord w gælder, at A(w) tager O(n k ) skridt (n = w ).

Problemklassen P Afgørlighedsproblemer Indkodning af instans Accept, forkastelse, afgørelse P = {L der findes A, som accepterer L i polynomiel tid} P Alle formelle sprog L Σ

Problemklassen P Afgørlighedsproblemer Indkodning af instans Accept, forkastelse, afgørelse P = {L der findes A, som accepterer L i polynomiel tid} = {L der findes A, som afgør L i polynomiel tid} (Sætning 34.2) P Alle formelle sprog L Σ

Hamiltonkreds Hamiltonkreds Verifikation i polynomiel tid N P og co-n P HAM-CYCLE = { G G har en Hamiltonkreds} William Rowan Hamilton 1805 65 (dodekaedergrafen 1857) Prøve alle permutationer: Ω(( n)!)

Verifikation Hamiltonkreds Verifikation i polynomiel tid N P og co-n P Algoritme A med to indgange: Ordinært indgangsord x og en attest (certificate) y A verificerer L L = {x y : A accepterer (x, y)}. A verificerer L i polynomiel tid, hvis A verificerer L, og der findes et k, så det for alle ord x L gælder, at der findes en attest y, så A(x, y) tager O(n k ) skridt (n = x ). Bemærk, at dette indebærer y = O(n k ).

Problemklasserne N P og co-n P Hamiltonkreds Verifikation i polynomiel tid N P og co-n P N P = {L der findes A, som verificerer L i polynomiel tid} HAM-CYCLE N P P N P (for man behøver ikke bruge en attest), men P N P vides ikke. co-n P = {L L N P} (med andre ord: sprog med afvisningsattest ) (Eksempel: PRIME co-n P. Faktisk også N P og (vist 2002) P.) P co-n P, hvilket efterlader fire muligheder:

Ikke-deterministisk polynomiel tid Hamiltonkreds Verifikation i polynomiel tid N P og co-n P En forklaring på betegnelsen rent historisk: En Turingmaskine M har endeligt mange tilstande Q, et båndalfabet Σ, tre mulige retninger (en plads til venstre / uændret / en plads til højre) og en overgangsrelation δ Q Σ Σ { 1, 0, +1} Q (p, a, b, d, q) δ betyder, at M i tilstand p med a under læseskrive-hovedet kan skrive b, flytte båndet d og gå til tilstand q. Ikke-deterministisk, hvis flere kvintupler har samme (p, a,...).

Eksponentiel udførelsestid Hamiltonkreds Verifikation i polynomiel tid N P og co-n P Hvert problem fra N P kan afgøres deterministisk i eksponentiel tid: For et ord x {0, 1} har de mulige attester længde O(n k ); prøv dem alle: tid O((2 c ) nk ). Sjusket identificeres umedgørlige problemer undertiden med problemer med eksponentiel køretid, men Der findes køretider imellem polynomiel og eksponentiel (for eksempel n log n ) Der findes langt værre køretider end eksponentiel. Ikke alle rekursive (beregnelige) funktioner er primitivt rekursive; Ackermanns funktion er et sådant eksempel

Reduktion (eksempel) Reduktion N PC Et N P-fuldstændigt problem At løse et problem ved hjælp af et andet. BIP-MATCH Parring i en todelt (bipartite) graf. BIP-MATCH MAX-FLOW Find en parring (kantmængde uden fælles endepunkter) med flest mulige kanter.

Reduktion (eksempel) Reduktion N PC Et N P-fuldstændigt problem At løse et problem ved hjælp af et andet. BIP-MATCH Parring i en todelt (bipartite) graf. BIP-MATCH MAX-FLOW Find en parring (kantmængde uden fælles endepunkter) med flest mulige kanter.

Reduktion (eksempel) Reduktion N PC Et N P-fuldstændigt problem At løse et problem ved hjælp af et andet. BIP-MATCH Parring i en todelt (bipartite) graf. BIP-MATCH MAX-FLOW Find en parring (kantmængde uden fælles endepunkter) med flest mulige kanter. En strømning er maksimal de midterste kanter udgør en maksimal parring.

Reduktion (definition) Reduktion N PC Et N P-fuldstændigt problem L 1 kan reduceres til L 2, i symboler L 1 L 2 f : Σ Σ w Σ (w L 1 f (w) L 2 ) L 1 kan reduceres polynomielt til L 2, i symboler L 1 pol L 2 f : Σ Σ som ovenfor, beregnelig i polynomiel tid (som funktion af længden af funktionsargumentet).

Reduktionsresultater Reduktion N PC Et N P-fuldstændigt problem Sætning Hvis L 1 pol L 2 og L 2 P, så L 1 P. Bevis: Antag x L 1 τ(x) L 2 og at A afgør L 2. Da vil x L 1 A(τ(x)) = 1. Køretid? Der findes algoritme B og konstanter j, k, så A afgør y i O(n k ) skridt, n = y, og B beregner τ(x) i O(n j ) skridt, n = x. Bemærk, at for x = n må nødvendigvis τ(x) = O(n j ), så det samlede antal skridt bliver O(n j + (n j ) k ); altså L 1 P Sætning Hvis L 1 pol L 2 og L 1 / P, så L 2 / P.

C Reduktion N PC Et N P-fuldstændigt problem De N P-fuldstændige problemer er de vanskeligste problemer inden for N P. Et problem Q ligger i N PC, hvis: 1 Q N P 2 P N P : P pol Q Det er hensigtsmæssigt at have en særskilt betegnelse for 2.; lad os sige, at Q er N P-vanskeligt i det tilfælde (N P-hard). Sætning Hvis et problem fra N PC kan løses i polynomiel tid, vil N P = P. P N P N PC (Σ ) Sætning Hvis P er en ægte del af N P, kan intet problem fra N PC løses i polynomiel tid.

Et N P-fuldstændigt problem Reduktion N PC Et N P-fuldstændigt problem Vi søger et problem, som alle N P-problemer skal kunne reduceres (polynomielt) til Hvert N P-problem har en verifikationsalgoritme Det fælles for verifikationsalgoritmer er, at de udtrykkes ved et computerprogram Naivt gæt: Computeren er N P-fuldstændig En computer er sat sammen af porte:

Kredsløbstilfredsstillelse Reduktion N PC Et N P-fuldstændigt problem Problemet CIRCUIT-SAT= { C C er et kredsløb, hvis indgange x 1,..., x n kan tildeles værdier (0/1) på en sådan måde, at udgangen z bliver 1}

Kredsløbstilfredsstillelse Reduktion N PC Et N P-fuldstændigt problem Problemet CIRCUIT-SAT= { C C er et kredsløb, hvis indgange x 1,..., x n kan tildeles værdier (0/1) på en sådan måde, at udgangen z bliver 1} (x 1, x 2, x 3 ) = (1, 1, 0).

Kredsløbstilfredsstillelse Reduktion N PC Et N P-fuldstændigt problem Problemet CIRCUIT-SAT= { C C er et kredsløb, hvis indgange x 1,..., x n kan tildeles værdier (0/1) på en sådan måde, at udgangen z bliver 1} (x 1, x 2, x 3 ) = (1, 1, 0).

Kredsløbstilfredsstillelse Reduktion N PC Et N P-fuldstændigt problem Problemet CIRCUIT-SAT= { C C er et kredsløb, hvis indgange x 1,..., x n kan tildeles værdier (0/1) på en sådan måde, at udgangen z bliver 1} (x 1, x 2, x 3 ) = (1, 1, 0). Dette kredsløb har ingen tilfredsstillende tildeling (34.3 1).

Reduktion N PC Et N P-fuldstændigt problem 1. Kredsløbstilfredsstillelse ligger i N P Attest: Værdierne på alle indgange, indre ledninger og udgangen: (Man kunne nøjes med indgangsværdierne, 34.3 4.) Verifikationsalgoritme: Tjek omkring alle porte samt udgangsledningen. Tager polynomiel tid.

Reduktion N PC Et N P-fuldstændigt problem 2. Kredsløbstilfredsstillelse er N P-vanskeligt Vi skal vise L pol CIRCUIT-SAT for vilkårligt sprog L N P. Lad A verificere L i polynomiel tid; vi skal konstruere f (beregnelig i polynomiel tid) fra instanser X til koden f (X) = C for et kredsløb C. En konfiguration under udførelse af A på en computer indeholder programmet A, ordretælleren PC og andre interne registre, instansen X, attesten Y og hjælpevariable V, hvor udgangen z er en af dem.

Reduktion N PC Et N P-fuldstændigt problem RAM CPU RAM Centralenheden (Central Processing Unit), der overfører hver konfiguration til den næste, kan tænkes realiseret ved et kombinatorisk kredsløb. A er fast; lad T (n) betegne det maksimale antal beregningsskridt, A bruger for indgangsord X af længde n. Der findes en konstant k, så T (n), længden af Y og længden af V alle er O(n k ). For indgangsord X dannes f (X) ved at folde beregningen ud :

Reduktion N PC Et N P-fuldstændigt problem Til forelagt X af længde n forbindes T (n) kopier af CPU som vist. Kredsløbet C fås ved kun at opfatte den indledende attest som indgange og det afsluttende z som udgang, f (X) = C. f (X) kan konstrueres i polynomiel tid. X L f (X) CIRCUIT-SAT L pol CIRCUIT-SAT