Applicazioni teoriche per algoritmi di approssimazione


21

Ultimamente ho iniziato a cercare algoritmi di approssimazione per problemi NP-difficili e mi chiedevo quali fossero le ragioni teoriche per studiarli. (La domanda non vuole essere infiammatoria, sono solo curiosa).

Qualche teoria veramente bella è emersa dallo studio degli algoritmi di approssimazione - la connessione tra il teorema del PCP e la durezza dell'approssimazione, la congettura UGC, l'algoritmo di approssimazione di Goeman-Williamson, ecc.

Mi chiedevo però riguardo allo studio degli algoritmi di approssimazione per problemi come Venditore ambulante, Venditore ambulante asimmetrico e altre varianti, vari problemi nella progettazione dei meccanismi (ad esempio nelle aste combinatorie), ecc. Tali algoritmi di approssimazione sono stati utili in altre parti della teoria in passato o sono stati studiati esclusivamente per se stessi?

Nota: non sto chiedendo alcuna applicazione pratica dal momento che per quanto ne so, nel mondo reale, sono principalmente l'euristica che vengono applicati anziché gli algoritmi di approssimazione e l'euristica è raramente informata da qualsiasi intuizione acquisita studiando gli algoritmi di approssimazione per problema.


4
Non sono sicuro di aver capito la domanda. Quali sono le "ragioni teoriche" per lo studio di qualsiasi argomento teorico?
Jeffε

1
Penso che significhi "compilare il ecc." al paragrafo 2
Huck Bennett l'

2
È sbagliato se è quello che sto facendo e non mi sono mai posto la domanda? Ho pensato che gli algoritmi di approssimazione fossero belli!
Gopi,

1
Penso che la motivazione sia uguale alla motivazione per studiare la durezza dell'approssimazione: comprendere l'esatta complessità di vari problemi. L'algoritmo Goemans-Williamson va di pari passo con la durezza dei giochi unici di fare meglio del fattore di approssimazione GW.
Aaron Roth,

1
Non sono sicuro che il tuo ultimo paragrafo sia corretto. Gli algoritmi di approssimazione sono interessanti perché rappresentano un modo suggerito per gestire l'intrattabilità di problemi come TSP. È possibile che molti di essi non vengano utilizzati direttamente nella pratica nella forma originale, ma sono utili per sapere cosa provare. Puoi dire la stessa cosa sugli algoritmi esatti, molti di essi non vengono mai utilizzati direttamente in pratica, ci sono molti problemi di ingegneria che devono essere considerati quando si utilizza qualsiasi algoritmo in pratica. Molti problemi in pratica non hanno bisogno di algoritmi esatti e gli utenti saranno completamente felici
Kaveh l'

Risposte:


21

Non sono assolutamente d'accordo con l'ultimo paragrafo. Dichiarazioni di coperta del genere non sono utili. Se guardi i documenti in molte aree di sistemi come reti, database, AI e così via, vedrai che in pratica vengono utilizzati molti algoritmi di approssimazione. Ci sono alcuni problemi per i quali si desiderano risposte molto precise; per esempio, dire una compagnia aerea interessante nell'ottimizzare la pianificazione della sua flotta. In questi casi le persone usano varie euristiche che richiedono un notevole tempo di calcolo ma ottengono risultati migliori di quelli che un algoritmo di approssimazione generico può dare.

Ora per alcune ragioni teoriche per lo studio di algoritmi di approssimazione. In primo luogo, cosa spiega il fatto che lo zaino è molto semplice nella pratica mentre la colorazione dei grafi è piuttosto difficile? Entrambi sono NP-Hard e poli-tempo riducibili l'uno all'altro. In secondo luogo, studiando gli algoritmi di approssimazione per casi speciali di un problema, è possibile individuare quali classi di istanze sono probabilmente facili o difficili. Ad esempio, sappiamo che molti problemi ammettono un PTAS nei grafici planari e minori liberi mentre sono molto più difficili nei grafici generali arbitrari. L'idea di approssimazione pervade il moderno design dell'algoritmo. Ad esempio, le persone usano algoritmi di streaming dei dati e senza l'obiettivo di approssimazione è difficile capire / progettare algoritmi perché anche i problemi semplici non possono essere risolti esattamente.



9

Sono anche in disaccordo con la "nota", almeno dichiarata in questa generalità. In relazione a questo, qualcuno sa se il discorso sul premio Kanellakis di David Johnson è disponibile da qualche parte?

Inoltre, una volta che ci rendiamo conto che tutti i problemi NP-hard sono equivalenti rispetto alla complessità del caso peggiore di soluzioni esatte, è molto naturale indagare sulla complessità della ricerca di soluzioni approssimative. E Chandra sottolinea il cambiamento di prospettiva che gli algoritmi di approssimazione apportano alla progettazione degli algoritmi.

O(logn)


8

Le migliori euristiche sono davvero algoritmi di approssimazione. Gli algoritmi di approssimazione più belli sono solo euristiche "stupide" che funzionano. Ad esempio, ricerca locale di clustering, clustering avido (Gonzalez), uno al prezzo di due, vari algoritmi greedy, ecc., Ecc., Ecc.

Quindi studiare gli algoritmi di approssimazione significa davvero comprendere quali euristiche sono algoritmi di approssimazione garantiti. La speranza è che la ricerca sugli algoritmi di approssimazione crei due tipi di fecondazione incrociata:

  • Sposta le idee che funzionano dall'euristica in strumenti di progettazione di algoritmi. Allo stesso modo, sposta le idee dalla progettazione dell'algoritmo in euristiche / algoritmi che funzionano bene nella pratica.
  • fecondazione incrociata tra una persona appena laureata e una posizione.

In breve, il mondo non è esatto, gli input non sono esatti, le funzioni target ottimizzate da vari problemi dell'algoritmo non sono esatte e nella migliore delle ipotesi rappresentano un'approssimazione confusa a ciò che si desidera e i calcoli non sono esatti. Perché qualcuno dovrebbe imparare algoritmi esatti? (Risposta: Perché gli algoritmi esatti sono davvero buoni algoritmi di approssimazione.)

Nel mondo reale, ci sono pochissimi algoritmi esatti: è necessario utilizzare l'approssimazione per essere remotamente rilevanti ...


4

Affrontare i problemi con variabili continue è molto fastidioso con algoritmi esatti. Ad esempio, cosa significa specificare i contrappesi di un'istanza TSP con numeri reali esatti?

Quando consentiamo algoritmi FPTAS per questi problemi, possiamo quantificare questi parametri in numeri interi. Ciò rende il problema molto più efficace (può utilizzare macchine Turing standard), ma comporta un piccolo errore.

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.