Algoritmi di approssimazione per problemi in P


34

Di solito si pensa a soluzioni approssimative (con garanzie) a problemi NP-difficili. C'è qualche ricerca in corso su problemi di approssimazione già noti in P? Questa potrebbe essere una buona idea per diversi motivi. Dall'alto della mia testa, un algoritmo di approssimazione può funzionare con una complessità molto più bassa (o anche una costante molto più piccola), potrebbe usare meno spazio o potrebbe essere molto meglio parallelizzabile.

Inoltre, schemi che forniscono compromessi tempo / precisione (FPTAS e PTAS) potrebbero essere molto interessanti per problemi in P con limiti inferiori inaccettabili su input di grandi dimensioni.

Tre domande: c'è qualcosa che mi manca che rende questa ovviamente una cattiva idea? C'è ricerca in corso nello sviluppo di una teoria di questi algoritmi? Se no, almeno, qualcuno ha familiarità con singoli esempi di tali algoritmi?


8
La geometria computazionale (ad esempio, -nets) e l'algebra lineare numerica (ad esempio, vari metodi iterativi) forniscono numerosi esempi di algoritmi di approssimazione per problemi che sono banalmente in P, ma gli esatti algoritmi del tempo polinomiale possono essere proibitivamente costosi per l'enorme mondo reale set di dati. ϵ
Jukka Suomela,

Risposte:


20

O(n+poly(1/ϵ))1/ϵ

Ci sono un certo numero di trucchi, riduzioni e principi, e il nuovo libro di Sariel Har-Peled ne è pieno. Non credo che esista una teoria della complessità ricca in quanto tale.


Penso che questo sia il più vicino a una "teoria" che si potrebbe ottenere. Daremo uno sguardo approfondito al libro. Grazie!
aelguindy,


11

Non sono a conoscenza di una teoria generale sviluppata su algoritmi di approssimazione per problemi in P. Conosco un problema particolare, tuttavia, che si chiama oracoli di distanza approssimativa:

G=(V,E)n=|V|m=|E|s,tV

1O(1)O(m+nlogn)

k

Per grafi sparsi, una più generale spazio-tempo-approssimazione trade-off può essere visualizzata .


11

Spesso cerchiamo soluzioni approssimative a problemi semplici come trovare il percorso più breve in un grafico, trovare il numero di elementi unici in un set. Il vincolo qui è che l'input è grande e vogliamo risolvere il problema approssimativamente usando un singolo passaggio sui dati. Esistono diversi algoritmi di "streaming" progettati per ottenere soluzioni approssimative in tempi lineari / quasi lineari.

O(nm)nm




8

Penso che l'intera area dello streaming di dati e degli algoritmi sub-lineari sia uno sforzo in questa direzione. Nello streaming di dati, l'attenzione è rivolta alla risoluzione dei problemi nello spazio o (n) e idealmente O (polilogo (n)) mentre negli algoritmi sub-lineari si tenta di ottenere algoritmi con o (n) tempo di esecuzione. In entrambi i casi, è spesso necessario scendere a compromessi con un algoritmo di approssimazione randomizzato.

Puoi iniziare con il materiale in questa pagina e questo .


8

ϵϵ. Esistono numerosi articoli sulla risoluzione di casi speciali di problemi di programmazione lineare come i flussi di multipacità (e più in generale l'imballaggio e la copertura di LP) approssimativamente. Non esiste una teoria di approssimazione separata per i problemi in P vs problemi che si trovano in NP (non sappiamo se P sia uguale o meno a NP). Si può parlare di una certa tecnica applicabile per una certa classe di problemi. Ad esempio, sono note tecniche generali per la risoluzione approssimativa dell'imballaggio e la copertura di programmi lineari e alcune varianti.


4

Dimitris menziona approssimative trasformazioni di Fourier. questo è ampiamente utilizzato nella compressione delle immagini, ad esempio nell'algoritmo JPEG. [1] sebbene non abbia mai visto un documento che lo enfatizzi, sembra in un certo senso che una compressione con perdita di dati [2] (con limiti derivabili) possa anche essere presa come un algoritmo di approssimazione P-time. gli aspetti di approssimazione sono altamente sviluppati e perfezionati / specializzati nel senso che sono ottimizzati in modo tale che non possano essere percepiti dalla visione umana, cioè la percezione umana di codificare artefatti (approssimativamente definita come differenza tra approssimazione e compressione senza perdita) è minimizzata.

questo è legato alle teorie su come l'occhio umano percepisce o se stesso in realtà "approssima" la codifica del colore attraverso un processo algoritmico. in altre parole, lo schema / algoritmo di approssimazione teorico è effettivamente intenzionalmente progettato per corrispondere allo schema / algoritmo di approssimazione fisico / biologico (codificato dall'elaborazione di informazioni biologiche, vale a dire neuroni nel sistema visivo umano).

quindi, la compressione è strettamente accoppiata con l'approssimazione. in JPEG la trasformata di Fourier è approssimata dal DCT, trasformata discreta di coseno [3]. principi simili sono impiegati su più frame per lo standard di compressione video MPEG. [4]

[1] compressione jpeg, wikipedia

[2] compressione con perdita, wikipedia

[3] DCT, trasformata discreta di coseno, wikipedia

[4] MPEG, wikipedia


1

Può darsi che questo non risponda esattamente alla tua domanda, perché al momento posso solo ricordare alcune euristiche, ma sono sicuro che ci sono alcune approssimazioni, perché le ho già viste prima.

O(f(k)|G|α)f(k) problema e successive approssimazioni / euristiche (google semplice mostra i risultati nel 2010, 2011) o algoritmi per trovare la decomposizione dell'albero dei grafici.


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.