Quali sono le tecniche comuni per ridurre i problemi gli uni agli altri?


40

Nella teoria della computabilità e della complessità (e forse in altri campi), le riduzioni sono onnipresenti. Ce ne sono di molti tipi, ma il principio rimane lo stesso: mostra che un problema è difficile almeno quanto un altro problema mappando le istanze da a soluzioni equivalenti in . In sostanza, mostriamo che qualsiasi risolutore per può anche risolvere se gli consentiamo di utilizzare la funzione di riduzione come preprocessore.L1L 2 L 1 L 1 L 2L2L2L1L1L2

Ho effettuato la mia parte di riduzioni nel corso degli anni e qualcosa continua a infastidirmi. Mentre ogni nuova riduzione richiede una costruzione (più o meno) creativa, l'attività può sembrare ripetitiva. Esiste un pool di metodi canonici?

Quali sono le tecniche, i modelli e i trucchi che si possono usare regolarmente per costruire funzioni di riduzione?

Questo dovrebbe diventare una domanda di riferimento . Pertanto, si prega di prestare attenzione a dare risposte generali, presentate in modo didattico, che sono illustrate da almeno un esempio ma che tuttavia coprono molte situazioni. Grazie!


Vedi qui per alcuni pensieri su come trovare partner adatti e idee per le riduzioni.
Raffaello

Risposte:


18

Il caso speciale

Supponiamo che vogliamo mostrare rispetto a qualche nozione di riduzione . Se è un caso speciale di , è piuttosto banale: possiamo essenzialmente usare la funzione identità. L'intuizione alla base di ciò è chiara: il caso generale è difficile almeno quanto il caso speciale. R L 1L1RL2RL1L2

In "pratica", ci viene dato e siamo bloccati dal problema di scegliere un buon partner di riduzione , ovvero trovare un caso speciale di che si è rivelato essere -hard.L 1 L 2 RL2L1L2R

Esempio semplice

Supponiamo di voler dimostrare che KNAPSACK è NP-difficile. Fortunatamente, sappiamo che SUBSET-SUM è NP-completo, ed è davvero un caso speciale di KNAPSACK. La riduzione

f(A,k)=(A,(1,,1),k,|A|)

suffissi; è l'istanza di KNAPSACK che ci chiede se possiamo ottenere almeno il valore con i valori dell'oggetto in modo che i pesi corrispondenti da rimangano sotto in totale. Non abbiamo bisogno delle restrizioni di peso per simulare SUBSET-SUM, quindi le impostiamo solo su valori tautologici.v V W w(V,W,v,w)vVWw

Problema di esercizio semplice

Considera il problema MAX-3SAT: data una formula proposizionale e intero , decidi se esiste un'interpretazione di che soddisfa almeno clausole. Mostra che è NP-difficile.k φ kφkφk

3SAT è un caso speciale; con sufficiente il numero di clausole in .m φf(φ)=(φ,m)mφ

Esempio

Supponiamo che stiamo studiando il problema SUBSET-SUM e vogliamo dimostrare che è NP-difficile.

Siamo fortunati e sappiamo che il problema di PARTITION è NP-completo. Confermiamo che si tratta davvero di un caso speciale di SUBSET-SUM e formulato

f(A)={(A,12aAa),aAamod2=0(A,1+aA|a|),else

dove è l'insieme di input di PARTITION e è un'istanza per SUBSET-SUM che chiede dopo un sottoinsieme di somma a . Qui, dobbiamo occuparci del caso che non ci sia adatto ; in tal caso, forniamo un'istanza arbitraria non fattibile.AA k k(A,k)Akk

Problema di esercizio

Considera il problema LONGEST-PATH: dato un grafico diretto , nodi di e numero intero , decidi se esiste un percorso semplice da a in di lunghezza almeno .s , t G kGs,tGkt G kstGk

Mostra che LONGEST-PATH è NP-difficile.

HAMILTON-CYCLE è un noto problema NP-completo e un caso speciale di LONGEST-PATH; per nodo arbitrario in sufficiente. Nota in particolare come ridurre da HAMILTON-PATH richiede più lavoro.v Gf(G)=(G,v,v,n)vG


2
Ecco un esempio chiamato il problema dell'acquirente viaggiante (TPP) che ha molti problemi come il suo caso speciale.
Juho,

Un altro esempio della calcolabilità è lo speciale problema di arresto (che di solito è dimostrato direttamente indecidibile), un caso speciale del problema di arresto generale.
Raffaello

KNAPSACK è davvero una riduzione corretta di SUBSET-SUM? KNAPSACK richiede il valore e SUBSET-SUM chiede il valore esatto, no? Ad esempio un'istanza SUBSET-SUM sarebbe un'istanza "no" (non riesco a ottenere esattamente 4 da un solo oggetto con valore 5), ma la riduzione di KNAPSACK lo ridurrebbe a e , quindi sarebbe un caso "sì" lì ... O mi sto perdendo qualcosa? { 5 } , 4 { 5 } , { 1 } , 4 , 1 5 > 4>=v{5},4{5},{1},4,15>4
johnny,

15

Sfruttando un noto problema nelle vicinanze

Di fronte a un problema che si sente difficile, è spesso una buona idea provare a cercare un problema simile che è già stato dimostrato difficile. O forse puoi immediatamente vedere che un problema è molto simile a un problema noto.

Esempio di problema

Prendi in considerazione un problema

DOUBLE-SAT={φφ is a boolean formula with at least 2 satisfying assignments }

desideriamo mostrare che è . Notiamo rapidamente che è molto vicino a un problema che già sappiamo essere difficile, vale a dire il problema della soddisfacibilità (SAT) .NP

L'adesione a è semplice da mostrare. Il certificato è composto da due incarichi. Chiaramente, si può verificare in tempo polinomiale se le assegnazioni soddisfano una formula.NP

SAT φ v ( v ¬ v ) φ v = v = φ φ vNP -hardness deriva da una riduzione da . Data una formula , la modifichiamo introducendo una nuova variabile . Aggiungiamo una nuova clausola alla formula. Ora, se è soddisfacente, sarà soddisfacente sia con che con . Quindi, ha almeno 2 incarichi soddisfacenti. D'altra parte, se non è soddisfacente, non diventerà sicuramente soddisfacente indipendentemente dal valore di .SATφv(v¬v)φv=⊥v=φφv

Ne segue che è -completo, che è quello che volevamo mostrare.N PDOUBLE-SATNP

Trovare problemi nelle vicinanze

Ridurre i problemi è una specie di arte e spesso sono necessarie esperienza e ingegnosità. Fortunatamente, sono già noti molti problemi . Computer e intrattabilità di Garey e Johnson: una guida alla teoria della completezza NP è classica con la sua appendice che elenca molti problemi. Google Scholar è anche un amico.


6

Nella computabilità, studiamo spesso set di macchine di Turing. Cioè, i nostri oggetti sono funzioni e abbiamo accesso a una numerazione di Gödel . È fantastico perché possiamo fare praticamente ciò che vogliamo con la funzione di input, purché restiamo calcolabili.

Supponiamo di voler dimostrare che non è decidibile. Il nostro obiettivo è arrivare all'equivalenza del destinoL

MKfML

con il problema di arresto (o qualsiasi altro linguaggio / problema indecidibile).K={MM(M) halts}

Pertanto, dobbiamo elaborare una mappatura calcolabile¹ modo che sia sempre calcolabile. Questo è un atto creativo informato dall'equivalenza del destino. Vedi alcuni esempi per avere un'idea di come funziona:f MMfMfM

Lo stesso vale per dimostrare che non è semi-decidibile scegliendo le lingue non semi-decidibili come partner di riduzione, ad esempio :¯ KLK¯


  1. È qui che arriva la numerazione di Gödel: otteniamo la calcolabilità di questa mappatura (di solito) gratuitamente.

-2

dipende dalle classi di complessità coinvolti, e se si vuole ridurre da una data ad uno sconosciuto , o di uno sconosciuto a un determinato . lo scenario comune è dimostrare i problemi NP Hard o NP Complete. una tecnica comune è quella di costruire "gadget" in un dominio che si comportano in un certo modo, imitando il comportamento di un altro dominio. ad esempio per convertire SAT in cover di vertici, si costruiscono "gadget" in cover di vertici che si comportano in modo simile alle clausole di SAT, ad esempio nella seguente presentazione: NP Riduzioni complete di Krishnamoorthy (anche con un esempio per il percorso di Hamilton).B B AABBA

una strategia utile è quella di lavorare da grandi raccolte di problemi dalla classe di complessità in questione e trovare i "problemi apparentemente più vicini" al problema che si sta studiando. un eccellente riferimento in tal senso è Computers and Intractability, una guida alla teoria della completezza NP, Garey e Johnson organizzate per diversi tipi di problemi.


2
Mi chiedo se hai notato la nota a piè di pagina nella domanda. Penso che le risposte dovrebbero essere più specifiche e mostrare come viene applicato un metodo specifico. Questo sembra piuttosto vago e generale. Come miglioramento, che ne dici di mostrare come i gadget possono essere costruiti e utilizzati?
Juho,

2
BABBA

il powerpoint mostra due esempi di gadget utilizzati. un esempio del problema più vicino: supponiamo che uno abbia un problema relativo alla teoria dei numeri. c'è una sezione di G&J relativa alla teoria dei numeri. eccetera. come per altre classi di complessità al di fuori di NP, ce ne sono molte, ma le liste di problemi non sono così complete o prontamente ottenute. quindi in altre parole per restringere la domanda originale forse dovrebbe essere limitato alle riduzioni complete di NP ...?
vzn

2
Consiglio di aggiungere tutte le informazioni alla risposta, poiché i commenti potrebbero essere eliminati in qualsiasi momento. Anche il link alle diapositive potrebbe interrompersi domani. Cosa stavo affrontando con il problema vicino: cosa devo fare esattamente quando trovo un problema che sembra simile (supponiamo che io sia un principiante totale)?
Juho,
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.