Nozione alternativa di complessità basata sul divario tra la forza bruta e l'algoritmo migliore?


17

In genere, algoritmi efficienti hanno un runtime polinomiale e uno spazio di soluzione esponenzialmente ampio. Ciò significa che il problema deve essere facile in due sensi: in primo luogo, il problema può essere risolto in un numero polinomiale di passaggi, e in secondo luogo, lo spazio della soluzione deve essere molto strutturato perché il tempo di esecuzione è solo pollogaritmico nel numero di possibili soluzioni.

Tuttavia, a volte queste due nozioni divergono e un problema è facile solo nel primo senso. Ad esempio, una tecnica comune negli algoritmi di approssimazione e nella complessità parametrizzata è (approssimativamente) per dimostrare che lo spazio della soluzione può effettivamente essere limitato a una dimensione molto più piccola della definizione ingenua e quindi utilizzare la forza bruta per trovare la risposta migliore in questo spazio limitato . Se possiamo a priori limitarci a, diciamo, n ^ 3 possibili risposte, ma dobbiamo ancora controllare ognuna, in un certo senso tali problemi sono ancora "difficili" in quanto non esiste un algoritmo migliore della forza bruta.

Al contrario, se abbiamo un problema con un numero doppiamente esponenziale di possibili risposte, ma possiamo risolverlo solo in tempo esponenziale, allora vorrei dire che un tale problema è "facile" ("strutturato" potrebbe essere un migliore parola) poiché il runtime è solo il registro della dimensione dello spazio della soluzione.

Qualcuno conosce documenti che considerano qualcosa come la durezza basata sul divario tra un algoritmo efficiente e la forza bruta o la durezza rispetto alla dimensione dello spazio della soluzione?

Risposte:


12

Un problema con la formalizzazione della domanda è che la frase "spazio di soluzione per il problema A" non è ben definita. La definizione di uno spazio di soluzione richiede un algoritmo di verifica che, data un'istanza e una soluzione candidata, verifica se la soluzione è corretta. Quindi, lo spazio della soluzione di un'istanza scritto su un verificatore è l'insieme di soluzioni candidate che rendono "corretto" l'output del verificatore.

Ad esempio, prendi il problema SAT0: data una formula booleana, è soddisfatta dall'assegnazione di tutti gli zero? Questo problema è banalmente in tempo polinomiale, ma il suo spazio di soluzione può variare notevolmente, a seconda del verificatore che si utilizza. Se il tuo verificatore ignora la soluzione candidata e verifica solo se tutti gli zero funzionano sull'istanza, lo "spazio soluzione" per qualsiasi istanza SAT0 su quel verificatore è banale: sono tutte soluzioni possibili. Se il tuo verificatore verifica se la soluzione candidata è un compito soddisfacente, lo spazio della soluzione di un'istanza SAT0 può effettivamente essere piuttosto complesso, probabilmente tanto complesso quanto lo spazio della soluzione di qualsiasi istanza SAT.

t(n,K)k n knKnKO(2Kt(n,K))

Nota è il costo per provare tutte le stringhe di lunghezza fino a k ed eseguire il verificatore. Quindi quanto sopra può essere visto come chiedere se possiamo migliorare la ricerca della forza bruta per il verificatore dato. L'area di "algoritmi esatti per problemi NP-difficili" può essere vista come uno sforzo a lungo termine per studiare la difficoltà di migliorare la ricerca della forza bruta per alcuni verificatori molto naturali: ad esempio la questione di trovare un migliore del algoritmi per SAT è la questione se possiamo sempre migliorare la ricerca della forza bruta per il verificatore che controlla se la soluzione candidata data è un compito soddisfacente per l'istanza SAT data.2 nO(2Kt(n,K))2n

Il documento mostra alcune interessanti conseguenze del miglioramento della ricerca della forza bruta per alcuni problemi. Anche migliorare la ricerca della forza bruta per "spazi di soluzione di dimensioni polinomiali" avrebbe conseguenze interessanti.


1
..

Sono più che riluttante a fare riferimento ai miei articoli in una risposta. Ma quando si adatta esattamente alla domanda, è difficile resistere ...
Ryan Williams

5

Come gestiresti i tipici problemi di programmazione dinamica? Qui, ciò che accade spesso è che lo spazio delle soluzioni ottimali è limitato polinomialmente, ma lo spazio delle soluzioni non lo è. Quindi sembra "facile" nel tuo senso perché il tempo di esecuzione è logaritmico nello spazio della soluzione, ma è "duro" nel tuo senso perché esegue "forza bruta" su tutte le soluzioni potenzialmente ottimali.


Ci sono una serie di sottigliezze nelle definizioni che dovrebbero essere elaborate, come esattamente quali algoritmi si qualificano come forza bruta. Probabilmente proverei a limitare lo spazio della soluzione nel modo seguente: se, per una determinata dimensione del problema, è possibile rimuovere una risposta dalla considerazione senza guardare i dati, allora non è nello spazio della soluzione (è vero che ciò consente più spazi di soluzione distinti). Detto questo, sarei felice con una risposta simile nello spirito alla mia domanda, anche se differisce in molti dettagli.
Ian,

3

La prospettiva sembra assumere alcune cose, come la finezza degli spazi della soluzione.

Ad esempio, pensa al problema di generare una tassellazione Voronoi da una serie di punti di input. Qui c'è uno spazio di soluzione infinitamente dimensionato poiché ogni punto nei bordi del diagramma è una tupla di numeri reali. Tuttavia è possibile raggiungere una soluzione in O (n log (n)) nel numero di punti di input (per il piano).


È vero, alcuni problemi potrebbero non rientrare in questo framework. Sebbene per alcuni problemi con uscite in numeri reali, si potrebbe essere in grado di rendere lo spazio finito descrivendo l'uscita algebricamente in termini di input (ad esempio come combinazioni lineari di punti di input). Non so molto sugli algoritmi geometrici, dove in genere si incontrano numeri reali, quindi non sono sicuro di quanto spesso o se questo sarebbe possibile.
Ian,

1
I numeri reali non sono l'unico modo per ottenere spazi di soluzione infiniti. Prendi in considerazione una partita tra Alice e Bob. Alice sceglie un numero intero n. Bob fa delle ipotesi e Alice gli dice se è più alto, più basso o uguale al suo segreto n. Bob ha una strategia a tempo finito per trovare n perché è sempre finito. Inizia uno 0 e poi sceglie una grande costante c. Alice gli dice in quale direzione si trova n e Bob indovinerà c ^ turn fino a quando non trova un limite inferiore e superiore, dove esegue una ricerca binaria per n. Quindi di nuovo suppongo che potresti sostenere che esiste uno spazio di soluzione finito nel numero di bit di n ...
Ross Snider

3

Correlati sono i problemi che ammettono algoritmi con ritardo polinomiale . La prima soluzione, e successivamente ogni soluzione, può essere generata in tempi polinomiali. Johnson, Yannakakis e Papdimitriou discutono di questo quadro nel contesto di altre possibili lacune (come il tempo totale polinomiale): Generazione di tutti i set indipendenti massimi , Lettere di elaborazione delle informazioni 27 , 119–123, 1988.

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.