On pense généralement à l’approximation des solutions (avec des garanties) aux problèmes difficiles à résoudre. Y a-t-il des recherches en cours sur l'approximation des problèmes déjà connus comme étant en P? Cela pourrait être une bonne idée pour plusieurs raisons. De prime abord, un algorithme d'approximation peut fonctionner avec une complexité beaucoup plus faible (ou même une constante beaucoup plus petite), utiliser moins d'espace ou être beaucoup mieux parallélisable.
De plus, les systèmes qui offrent des compromis temps / précision (FPTAS et PTAS) pourraient être très intéressants pour les problèmes en P avec des limites inférieures qui sont inacceptables avec des intrants importants.
Trois questions: y a-t-il quelque chose qui me manque qui fait que cela est évidemment une mauvaise idée? Des recherches sont-elles en cours pour développer une théorie de ces algorithmes? Sinon, au moins, est-ce que quelqu'un connaît des exemples individuels de tels algorithmes?
la source
Réponses:
Comme le souligne Jukka, la géométrie informatique est une source riche de problèmes pouvant être résolus en temps polynomial, mais nous souhaitons obtenir des approximations rapides. Le résultat "idéal" classique est un "LTAS" (schéma d’approximation linéaire du temps) dont le temps d’exécution serait de la forme - généralement obtenus par extraction d’une constante (poly ( 1 / ϵ )) taille du noyau à partir des données, et exécution d'un algorithme coûteux sur ce noyau, avec la garantie qu'une solution exacte sur le noyau est une solution approximative sur la totalité de l'entrée.O(n+poly(1/ϵ)) 1/ϵ
Il existe de nombreuses astuces, réductions et principes, et le nouveau livre de Sariel Har-Peled en est rempli. Je ne pense pas qu'il existe une théorie de la complexité riche en tant que telle.
la source
Liste non exhaustive d'articles récents qui trouvent des solutions approximatives aux problèmes deP
1) Il existe une grande quantité de travail sur des solutions approchées des équations linéaires (symétrique diagonale dominante) en temps presque linéaireO(n⋅polylog(n))
(liste des articles) http://cs-www.cs.yale.edu/homes/spielman/precon/precon.html
(En général, la plupart des solveurs itératifs pour les équations linéaires partagent le principe de approchant la solution vraie. Il en va de même pour les méthodes itératives qui résolvent des problèmes plus généraux (par exemple, certains programmes convexes / linéaires)).ϵ
2) Solutions approximatives à min / max coupes / flux http://people.csail.mit.edu/madry/docs/maxflow.pdfs−t
3) Recherche d'une approximation creuse de la transformée de Fourier d'un signal en temps sous-linéaire http://arxiv.org/pdf/1201.2501v1.pdf
4) Recherche du composant principal approximatif d’une matrice http://www.stanford.edu/~montanar/RESEARCH/FILEPAP/GossipPCA.pdf
la source
Je ne suis pas au courant d'une théorie générale en cours d'élaboration sur des algorithmes d'approximation pour des problèmes de P. Je connais un problème particulier, qui s'appelle oracles de distance approximative:
Il existe un compromis à trois facteurs entre espace, temps d'interrogation et approximation dans le problème de l'oracle de distance. On peut répondre trivialement à chaque requête avec exactitude (approximation = ) en un temps O ( 1 ) en stockant la matrice de distance de toutes les paires; ou en temps O ( m + n log n ) en exécutant un algorithme de chemin le plus court. Pour les graphes volumineux, ces deux solutions peuvent nécessiter un espace prohibitif (pour stocker la matrice) ou un temps d'interrogation (pour exécuter un algorithme de chemin le plus court). Par conséquent, nous permettons une approximation.1 O(1) O(m+nlogn)
Pour les graphes clairsemés, un compromis plus général d'espace-approximation-temps peut être montré .
la source
Nous cherchons souvent des solutions approximatives à des problèmes simples tels que trouver le chemin le plus court dans un graphique, trouver le nombre d'éléments uniques dans un ensemble. La contrainte ici est que l'entrée est grande et nous voulons résoudre le problème approximativement en utilisant un seul passage sur les données. Il existe plusieurs algorithmes de "streaming" conçus pour obtenir des solutions approximatives en temps linéaire / quasi linéaire.
la source
Des algorithmes d'approximation rapide pour une correspondance maximale sont connus. Au moins un qui me vient immédiatement à l’esprit est http://arxiv.org/pdf/1112.0790v1.pdf .
la source
la source
Je pense que tout le domaine des flux de données et des algorithmes sub-linéaires est un effort dans cette direction. Dans le flux de données, l’accent est mis sur la résolution des problèmes de l’espace o (n) et idéalement de l’espace O (polylog (n)), tandis que dans les algorithmes sub-linéaires, vous essayez d’obtenir des algorithmes avec le temps d’exécution de o (n). Dans les deux cas, il est souvent nécessaire de compromettre l'utilisation d'un algorithme d'approximation aléatoire.
Vous pouvez commencer avec le matériel sur cette page et cela .
la source
la source
Dimitris mentionne approximativement les transformées de Fourier. cela est largement utilisé dans la compression d'image, par exemple dans l'algorithme JPEG. [1] Bien que je n’aie pas vu de document mettant l’accent sur cela, il semble en quelque sorte qu’une compression avec perte [2] (avec des limites pouvant être dérivées) puisse également être considérée comme un algorithme d’approximation à P-temps. les aspects d'approximation sont très développés et optimisés / spécialisés dans le sens où ils sont optimisés de sorte qu'ils ne puissent pas être perçus par la vision humaine, c'est-à-dire que la perception humaine d'artefacts de codage (définie grossièrement comme différence entre approximation et compression sans perte) est minimisée.
Cela est lié aux théories sur la perception de l'œil humain ou sur son "approximation" par l'encodage des couleurs via un processus de type algorithmique. en d'autres termes, le schéma / algorithme d'approximation théorique est en fait conçu intentionnellement pour correspondre au schéma / algorithme d'approximation physique / biologique (codé par le traitement de l'information biologique, à savoir les neurones dans le système visuel humain).
la compression est donc étroitement liée à l'approximation. en JPEG, la transformée de Fourier est approximée par la transformée en cosinus discrète DCT [3]. des principes similaires sont utilisés sur plusieurs images pour la norme de compression vidéo MPEG. [4]
[1] compression jpeg, wikipedia
[2] compression avec perte, wikipedia
[3] DCT, transformée en cosinus discrète, wikipedia
[4] MPEG, wikipedia
la source
Peut-être que cela ne répond pas exactement à votre question, car pour l’instant, je ne peux que me souvenir de certaines heuristiques, mais je suis certain qu’il existe des approximations, car je les ai déjà vues.
la source
http://www.sciencedirect.com/science/article/pii/S0020019002003939
est un lien vers l'article "Un algorithme d'approximation simple pour le problème d'appariement pondéré" de Doratha Drake et Stefan Hougardy couvrant le problème d'appariement pondéré.
la source