Exemples de problèmes où les algorithmes exponentiels fonctionnent plus rapidement que les algorithmes polynomiaux pour les tailles pratiques?


13

Connaissez-vous des problèmes (de préférence au moins assez bien connus) où, pour une taille de problème pratique , un algorithme exponentiel s'exécute beaucoup plus rapidement qu'un homologue polynomial le plus connu.

Par exemple, supposons qu'un problème ait une taille pratique * de et qu'il existe deux algorithmes connus: l'un est et l'autre est pour une constante . Clairement pour tout , l'algorithme exponentiel est préféré.n=1002nnccc>15

* Je suppose que la taille pratique signifierait quelque chose que l'on trouve couramment dans le monde réel. Comme le nombre de trains sur un réseau.


1
Je pense que vous pourriez trouver ce que vous cherchez dans la littérature sur la complexité paramétrée.
Kaveh

pour les algorithmes linéaires, il y a généralement un multiplicateur constant qui n'est généralement pas significatif et souvent omis de la complexité, mais celui que je me souviens sembler très élevé était une fusion en place qui était linéaire, mais le pire des cas, quelque chose comme 5000 N ... donc dans ces scénarios, il y a une grande zone utilisable où N ^ 2 serait inférieure à 5000 N où la taille est inférieure à sqrt (5000) et un domaine plus petit où 2 ^ n serait toujours plus rapide où n est inférieur à log 5000
Grady Player

Réponses:


13

Qu'en est-il de l'algorithme simplex pour la programmation linéaire? Dans de nombreuses occasions, il est utilisé dans la pratique.

Modifié pour ajouter: je pense qu'il s'agit davantage d'un «algorithme exponentiel pire» qui s'exécute efficacement sur les instances / distributions pratiques plutôt que sur les instances adversaires de taille pratique .


4
@diesalbla - cela dépend du forumaltion exact. Citant Wikipédia, "en 1972, Klee et Minty [32] ont donné un exemple montrant que la complexité la plus défavorable de la méthode simplex telle que formulée par Dantzig est le temps exponentiel".
RB

12

L' algorithme le plus rapide connu pour le problème d'identifier si un graphe a une intégration sans nœud est dû à Miller et Naimi et est à temps exponentiel. La théorie de Robertson-Seymour dit qu'il existe un algorithme pour ce problème; cependant, pour l'écrire, nous aurions besoin de connaître la liste des mineurs interdits pour les mariages sans nœuds. Cependant, même si nous connaissions cette liste, l'algorithme à temps exponentiel serait encore beaucoup plus rapide pour les graphiques de taille raisonnable, car il y a plus de 250 mineurs interdits, certains assez volumineux.O(n3)


5
2222|H|O(n3)H

1
O(n2)|H|

1
HG|H|

-3

Il existe quelques exemples de détection / test de primalité (non probabiliste / exact) . L' algorithme AKS a été le premier algorithme de test de primalité montré en P. Il ne rivalise pas favorablement avec certains algorithmes de temps exponentiel pour les «petites» entrées. Les détails sont quelque peu délicats car montrer cela nécessite généralement la mise en œuvre des algorithmes, ce qui est un exercice difficile et peut dépendre d'aspects spécifiques à la mise en œuvre.

Plus d'infos / détails / références sur cette question cs.se:


6
Pour autant que je sache, les algorithmes auxquels AKS est en concurrence dans la pratique sont soit des polynômes randomisés (Miller – Rabin, ECPP), soit des quasipolynômes déterministes (Adleman – Pomerance – Rumeley). Nulle part près du temps exponentiel.
Emil Jeřábek 3.0

6
La version randomisée de Miller – Rabin, qui est celle utilisée en pratique, ne dépend pas de l'HR.
Emil Jeřábek 3.0

5
C'est très vrai, mais cela n'a rien à voir avec la question d'origine.
Emil Jeřábek 3.0

2
Oui, je sais tout ça. Et pour la troisième fois, ce n'est pas pertinent. La question demande des algorithmes à temps exponentiel qui sont en pratique compétitifs avec un algorithme à temps polynomial connu (ici, AKS). Le seul algorithme de test de primalité à temps exponentiel utilisé dans la pratique est la division d'essai, qui n'est pas compétitive pour les nombres de toute taille non triviale. Les algorithmes compétitifs utilisés dans la pratique sont beaucoup plus efficaces qu'exponentiels, même s'ils ne sont pas polynomiaux (ou déterministes ou inconditionnels).
Emil Jeřábek 3.0

3
Les pommes et les oranges comparent AKS (un algorithme de test de primalité) avec GNFS (un algorithme d'affacturage).
Emil Jeřábek 3.0
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.