Versione di ottimizzazione dei problemi decisionali


26

È noto che ogni problema di ottimizzazione / ricerca ha un problema decisionale equivalente. Ad esempio il problema del percorso più breve

  • versione di ottimizzazione / ricerca: dato un grafico non ponderato non orientato e due vertici , trova un percorso più breve tra e .G=(V,E)v,u∈Vvu
  • versione di decisione: dato un grafico non ponderato non orientato , due vertici e un numero intero non negativo , c'è un percorso in tra e cui lunghezza è al massimo ?G=(V,E)v,u∈VkGuvk

In generale, "Trova st !" diventa "Esiste x \ in X st f (x) \ leq k ?".x∗∈Xf(x∗)=min{f(x)∣x∈X}x∈Xf(x)≤k

Ma è vero anche il contrario, ovvero esiste un problema di ottimizzazione equivalente per ogni problema decisionale? In caso contrario, qual è un esempio di problema decisionale che non ha un problema di ottimizzazione equivalente?


6
Questo bit è uguale a zero?
— JeffE,

5
Devi spiegare "equivalente" in modo più dettagliato, ad es. Intendi che uno può essere risolto usando l'altro come oracolo / blackbox in tempo polinomiale (o nello spazio logaritmico)? Ti interessa tutti i problemi o solo i problemi all'interno di NP ?
— Kaveh,

1
A seconda del tuo punto di vista, la domanda è o banale (prendi qualsiasi problema di decisione che non ha una " ") o non risponde (come dimostrare che "nessun problema di opt. Equivalente"?). k
— Raffaello

Risposte:


28

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≤TPEPO′∈NPOPO≤TPE′
PO≤TPE′≤TPD′≤TPD≤TPE.
≤T≤TPD P ≤ m P ′ O ⇒ P ≤ T P ′ OPO∈NPO⇒PD∈NP e .P≤mPO′⇒P≤TPO′

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 .PO′Z ′ 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′PO′∈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≤TPE′xPOPE′

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)xPO′xPOyxPO′

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 | ) σ (PE′Z′(x,y)=2q(|x|)⋅Z(x,y)+σ(y)2q(|x|)yσ(y)y


"Un oracolo per un problema P è una subroutine (ipotetica) che può risolvere istanze di P in tempo costante." Un oracolo deve impiegare solo tempo costante?
— Tim

@Tim Naturalmente ci sono libri, ne ho elencati alcuni nei commenti di un'altra risposta
— uli

@ Tim Per quanto riguarda l'oracolo: Se hai trovato / concepito una riduzione tra due problemi e si è ridotto il problema di trovare un algoritmo efficiente per di trovare un algoritmo efficiente per . O in altre parole la riduzione ti dice che per risolvere è possibile utilizzare . E 'come usare una subroutine per la in un algoritmo per . Tuttavia, i problemi eA BA≤TBABB A B B A A BABABBAABsono spesso problemi in cui non conosciamo soluzioni efficienti. E nel caso della riducibilità di Turing, la usiamo anche nei casi in cui i problemi coinvolti non sono affatto decidibili.
— uli

@Tim Quindi è una subroutine sconosciuta. E 'diventata una consuetudine in teoria della complessità di chiamare l'ipotetico algoritmo per derivato dalla riduzione come un algoritmo con Oracle . Richiamo del sottoprogramma sconosciuta per un oracolo solo esprime che non possiamo sperare di trovare un algoritmo efficiente per così come non possiamo sperare di ottenere un oracolo per . Questa scelta è alquanto sfortunata, in quanto connota un'abilità magica. Il costo per l'oracolo dovrebbe esserecome una subroutine deve almeno leggere l'input . ABABB B | x | XBBB|x|x
— uli

3
Un'ottima risposta a tutto tondo; l'unica cosa che aggiungerei (giungendo ora ad un'altra domanda) è che la "direzione dell'ottimizzazione" è un inutile po 'di complessità e per concretezza possiamo sempre presumere che la funzione obiettivo debba essere massimizzata; se l'intenzione è minimizzare, allora possiamo semplicemente definire una nuova funzione oggettiva e riscrivere tutta la minimizzazione di come massimizzazione di . Z ′ZZ Z ′Z′=−ZZZ′
— Steven Stadnicki,

5

Come dicono i commenti, la risposta dipende dalle definizioni esatte. Permettetemi di interpretare la domanda in un modo molto semplice (anche ingenuo).

Sia una relazione, ovvero .S ⊆ { ( a , b ) ∣ a , b ∈ Σ ∗ }SS⊆{(a,b)∣a,b∈Σ∗}

Ora definiamo un problema di ricerca per :S

Dato , trovare un tale che .b ( a , b ) ∈ Sab(a,b)∈S

e un problema decisionale per :S

Dato la risposta o meno .( a , b ) ∈ S(a,b)(a,b)∈S

(per esempio, nell'esempio citato nell'interrogazione, terrà tutte le coppie tale che esiste un percorso tra e che è più breve di .)( u , v , k ) u v kS(u,v,k)uvk

Si noti che questi due problemi sono ben definiti . Per questa definizione , possiamo chiederci se i due problemi sono "equivalenti" per qualsiasi . In "equivalente" intendo che se uno di essi è calcolabile (cioè esiste un algoritmo che lo risolve) rispetto all'altro è anche calcolabile. In generale, non lo sono.S

Rivendicazione 1 : la decisione implica la ricerca .

Dimostrazione: Sia essere l'algoritmo che risolve il problema della decisione di . Dato un input , possiamo eseguire per qualsiasi , uno dopo l'altro o in parallelo. Se esiste tale che , alla fine lo troveremo. In caso contrario, l'algoritmo potrebbe non arrestarsi . S aDSSaDS(a,x)x∈Σ∗b(a,b)∈S†

Rivendicazione 2 : Ricerca non non implica decisione .

Il motivo è che l'algoritmo di ricerca potrebbe restituire una diversa da quella di cui abbiamo bisogno. Cioè, per ogni c'è qualche che è molto facile da trovare, ma altri che non lo sono. Ad esempio, sia un linguaggio indecidibile, quindi definire Per ogni l'algoritmo di ricerca può restituire . Ma nessun algoritmo decisionale può rispondere correttamente se , per tutte le coppie . Se potesse, avrebbe deciso un problema indecidibile, che è impossibile.a b b ′ L S = { ( x , 0 ) ∣ x ∈ Σ ∗ } ∪ { ( x , 1 ) ∣ x ∈babb′Lx 0 ( x , 1 ) ∈ S ( x , 1 )

S={(x,0)∣x∈Σ∗}∪{(x,1)∣x∈L}.
x0(x,1)∈S(x,1)


S S† Questo dipende . Se, ad esempio, è limitato, potrebbe esistere un algoritmo che si ferma.SS


2
Il problema decisione giusta è l'esistenza di st . ⟨ un , b ⟩ ∈ Sb⟨a,b⟩∈S
— Kaveh,

Se la decisione è definita come l'esistenza di , la ricerca implica una decisione. b
— Ran G.

1
In un senso debole, la calcolabilità di iewrt ma non la complessità è un problema più delicato.
— Kaveh,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.