Come già affermato nei commenti, dipende dalle definizioni, come al solito. Il mio tentativo di rispondere a questo richiede alcune definizioni, quindi questo sarà un altro esempio della mia incapacità di dare risposte concise.
Definizione: un problema di ottimizzazione è una tupla con(X,F,Z,⊙)
- X l'insieme di istanze o input opportunamente codificati (stringhe) .
- x ∈ X F ( x ) xF è una funzione che associa ciascuna istanza a un insieme di soluzioni realizzabili di .x∈XF(x)x
- ( x , y ) x ∈ X y ∈ F ( x ) Z ( x , y ) yZ è la funzione oggettiva che mappa ogni coppia , dove e , su un numero reale chiamato il valore di .(x,y)x∈Xy∈F(x)Z(x,y)y
- min max⊙ è la direzione di ottimizzazione , o .minmax
Definizione: Una soluzione ottimale di un'istanza di un problema di ottimizzazione è una soluzione praticabile per cui . Il valore di una soluzione ottimale è indicato con e chiamato ottimale .P Ox∈XPOZ ( x , y ) = ⊙ { Z ( x , y ′ ) ∣ y ′ ∈ F ( x ) } O p t ( x )y∈F(x)Z(x,y)=⊙{Z(x,y′)∣y′∈F(x)}Opt(x)
Definizione: il problema di valutazione , indicato con , corrispondente al problema di ottimizzazione è il seguente: data un'istanza , calcolare se ha una soluzione ottimale e produrre "nessuna soluzione ottimale" in caso contrario.P O x ∈ X O p t ( x ) xPEPOx∈XOpt(x)x
Si noti che questo richiede solo il valore della soluzione ottimale non l'intera soluzione stessa con tutti i suoi dettagli.
Definizione: il problema decisionale , indicato con corrispondente al problema di ottimizzazione è il seguente: Data una coppia , dove e , decide se ha una soluzione fattibile tale che if e tale che if .P O ( x , k )PDPO(x,k)k ∈ Q x y Z ( x , y ) ≤ k ⊙ = min Z ( x , y ) ≥ k ⊙ = maxx∈Xk∈QxyZ(x,y)≤k⊙=minZ(x,y)≥k⊙=max
Una prima osservazione è ora che . La prova non è difficile e omessa qui.PO∈NPO⇒PD∈NP
Ora intuitivamente e corrispondenti a non sono più difficili di stesso. Per esprimere formalmente questo sentimento (definendo in tal modo ciò che dovrebbe significare equivalente ) utilizzeremo le riduzioni.P D P O P OPEPDPOPO
Ricordiamo che una lingua è tempo polinomiale riducibile ad un'altra lingua se esiste una funzione , calcolabile in tempo polinomiale, tale che per tutte le parole , . Questo tipo di riducibilità è noto come Karp o riducibilità molti-a-uno , e se è riducibile a in questo modo, lo esprimiamo scrivendo . Questo è un concetto centrale nella definizione di completezza NP.L 2 fL1L2fxL 1 L 2 L 1 ≤ m L 2x∈L1⇔f(x)∈L2L1L2L1≤mL2
Sfortunatamente, le riduzioni multiple vanno da una lingua all'altra e non è chiaro come utilizzarle nel contesto di problemi di ottimizzazione. Pertanto, dobbiamo considerare un diverso tipo di riducibilità, la riducibilità di Turing . Per prima cosa abbiamo bisogno di questo:
Definizione: un oracolo per un problema è una subroutine (ipotetica) che può risolvere istanze di in tempo costante.PPP
Definizione: un problema è Turing riducibile al tempo polinomiale a un problema , scritto , se le istanze di possono essere risolte in tempo polinomiale da un algoritmo con accesso a un oracolo per .P 2 P 1 ≤ T P 2 P 1 P 2P1P2P1≤TP2P1P2
Informalmente, proprio come con , la relazione esprime che non è più difficile di . È anche facile vedere che se può essere risolto in un tempo polinomiale, anche . Ancora una volta è una relazione transitiva. Il seguente fatto è ovvio:P 1 ≤ T P 2 P 1 P 2 P 2 P 1 ≤ T≤mP1≤TP2P1P2P2P1≤T
Lascia , quindi .P D ≤ T P E ≤ T P OPO∈NPOPD≤TPE≤TPO
Perché data la soluzione completa, calcolare il suo valore e decidere se soddisfa il limite è semplice.k
Definizione: se per due problemi e entrambe le relazioni , trattengono, scriviamo ; la nostra nozione di equivalenza .P 2 P 1 ≤ T P 2 P 2 ≤ P 1 P 1 ≡ T P 2P1P2P1≤TP2P2≤P1P1≡TP2
Ora siamo pronti a che dato che il corrispondente problema di ottimizzazione è e valore intero. Dobbiamo dimostrare che regge. Siamo in grado di determinare con una ricerca binaria utilizzando l'orco per . La definizione di assicura che per alcuni polinomi , quindi il numero di passaggi nella ricerca binaria è polinomiale in. P O ∈ N P O Z P E ≤ T P D ⊙ { Z ( x , y ) ∣ y ∈ F ( x ) } P D N P OPD≡TPEPO∈NPOZPE≤TPD⊙{Z(x,y)∣y∈F(x)}PDNPO q | x | ◻|Z(x,y)|≤2q(|x|)q|x|□
Per un problema di ottimizzazione la relazione con è meno chiara. In molti casi concreti, si può dimostrare direttamente che . Per dimostrare che ciò vale generalmente nel quadro qui indicato, è necessario un presupposto aggiuntivo.P E P D ≡ T P E ≡ T P OPOPEPD≡TPE≡TPO
Per prima cosa dobbiamo estendere da coppie di lingue a coppie dei corrispondenti problemi di decisione. Quindi è facile vedere che è più generale di .≤ T ≤ m≤m≤T≤m
Che e siano problemi di decisione; quindi . Ciò vale perché una riduzione molti-a-uno può essere interpretata come l'uso di un oracolo in un modo molto limitato: l'oracolo viene chiamato una volta, alla fine, e il suo risultato viene anche restituito come risultato complessivo. P ′ P ≤ m P ′ ⇒ P ≤ T P ′ ◻PP′P≤mP′⇒P≤TP′□
Ora siamo pronti per il finale:
Sia e supponiamo che abbia un valore intero e che sia NP-completo, quindiCon le osservazioni precedenti resta da mostrare . Per fare ciò un problema tale che . Quindi abbiamoIl secondo e il terzo causa dell'equivalenza della decisione e della versione di valutazione precedentemente dimostrate. Il terzo deriva dalla completezza NP di e dai due fatti menzionati prima, vale a dire Z P D P D ≡ T P E ≡ T PPO∈NPOZPDP O ≤ T P E P ′ O ∈ N P O P O ≤ T P ′ E ≤ T ≤ T P D P O ∈ N
PD≡TPE≡TPO.
PO≤TPEP′O∈NPOPO≤TP′EPO≤TP′E≤TP′D≤TPD≤TPE.
≤T≤TPD P ≤ m P ′ O ⇒ P ≤ T P ′ OPO∈NPO⇒PD∈NP e .
P≤mP′O⇒P≤TP′O
Ora i dettagli: supponiamo che le soluzioni fattibili di siano codificate usando un alfabeto dotato di un ordine totale. Sia le parole di elencate in ordine di lunghezza non decrescente e ordine lessicografico all'interno dei blocchi di parole di lunghezza comune. (Quindi è la parola vuota.) Per tutti let denota l'intero intero tale che . Sia che possono essere calcolati in tempo polinomiale. Sia un polinomio tale che per tutti Σ w 0 , w 1POΣΣ ∗ w 0 y ∈ Σ ∗ σ ( y ) iw0,w1,…Σ∗w0y∈Σ∗σ(y)i σ σy=wiσ qx∈Xy∈F(x)σ(y)< 2 q ( | x | )σ−1qx∈Xe tutti abbiamo .y∈F(x)σ(y)<2q(|x|)
Ora il problema è identico a eccezione di una funzione obiettivo modificata . Per e prendiamo . è calcolabile in tempo polinomiale, quindi .P′OZ ′ x ∈ X y ∈ F ( x ) Z ′ ( x , y ) = 2 q ( |POZ′x∈Xy∈F(x) Z ′ P ′ O ∈ N P OZ′(x,y)=2q(|x|)⋅Z(x,y)+σ(y)Z′P′O∈NPO
Per mostrare che osserviamo che è fattibile per se e solo se è fattibile per . Possiamo supporre che sia così, dal momento che il caso opposto è banale da gestire. x P O P ′ EPO≤TP′ExPOP′E
La sostituzione di per è monotona, nel senso che per tutti , se allora . Ciò implica che ogni soluzione ottimale per in è una soluzione ottimale di in . Pertanto il nostro compito si riduce al calcolo di una soluzione ottimale di in . Z y 1 , y 2 ∈ F ( x ) ZZ′Zy1,y2∈F(x)Z ′ ( x , y 1 ) < Z ′ ( x , y 2 ) x P ′ O x P O y x P ′ OZ(x,y1)<Z(x,y2)Z′(x,y1)<Z′(x,y2)xP′OxPOyxP′O
Interrogando l'oracolo per possiamo ottenere il valore di . Formando il resto di questo numero modulo produce da cui può essere calcolato in tempo polinomiale. Z ′ ( x , y ) = 2 q ( | x | ) ⋅ Z ( x , y ) + σ ( y ) 2 q ( | x | ) σ (P′EZ′(x,y)=2q(|x|)⋅Z(x,y)+σ(y)2q(|x|)yσ(y)y