Complexité générique des algorithmesLa complexité générique est un domaine particulier de la complexité algorithmique qui concerne l’étude de la complexité de problèmes algorithmiques pour « la plupart des données ». La complexité générique est une façon de mesurer la complexité d'un problème algorithmique en négligeant un petit ensemble d'entrées non représentatives et en considérant la complexité dans le pire des cas sur les entrées restantes. La concept de « petit ensemble » est définie en termes de densité asymptotique. L'efficacité apparente des algorithmes mesurée par leur complexité générique provient du fait que, pour une grande variété de problèmes informatiques concrets, les cas les plus difficiles semblent être rares, alors que les cas typiques sont, eux, relativement faciles. Cette approche de la complexité prend son origine dans la théorie combinatoire des groupes qui a une tradition dans l'étude de problèmes algorithmiques qui remonte au début du XXe siècle. La notion de complexité générique a été introduit en 2003 dans des articles de Kapovich, Miasnikov, Schupp et Shpilrain[1],[2]. Les auteurs montrent que, pour une large classe de groupes finiment engendrés, la complexité générique de quelques problèmes de décision classiques de la théorie combinatoire des groupes, à savoir le problème du mot, le problème de conjugaison (en), ou le problème d'appartenance, est en fait linéaire. Une introduction et un survol de la complexité générique sont donnés dans un texte de R. Gilman, A. G. Miasnikov, A. D. Myasnikov, et A. Ushakov[3]. Les livres de Miasnikov, Shpilrain et Ushakov[4],[5] traitent principalement des résultats des auteurs relativement à la cryptographie. DéfinitionsDensité asymptotiqueSoit un ensemble infini de données pour un problème algorithmique. Définition. Une fonction taille sur est une fonction qui a une image infinie. La boule de rayon est . Si les données sont codées comme mots sur un alphabet fini, la taille est fréquemment la longueur du mot. Soit un ensemble de distributions de probabilité, où est une distribution de probabilité sur la boule . Si les boules sont finies, on peut prendre pour la distribution uniforme, et c'est le cas le plus fréquent. Définition. La densité asymptotique d'une partie est
quand cette limite existe. Quand les boules sont finies et est la mesure uniforme, on a Dans ce cas, il est souvent commode d'utiliser les sphères à la place des boules, et de définir
Par le théorème de Stolz-Cesàro, la densité existe si existe, et dans ce cas les deux valeurs sont égales. Definition. Une partie est générique si et elle est négligeable si . est exponentiellement (respectivement superpolynomialement) générique si la vitesse de convergence vers la limite est exponentielle (respectivement. superpolynomiale). Une partie est fortement générique s'il existe telle que pour presque tout entier naturel . Classes de complexité génériqueDefinition. Un algorithme est dans la classe GenP (pour « generically polynomial time ») s'il ne donne jamais de réponse fausse, et s'il donne une réponse juste en temps polynomial (en) sur un ensemble générique de données. Un problème est lui-même dans la classe GenP s'il possède un algorithme dans GenP. On définit de même GenL (« generically linear time ») comme classe pour le temps linéaire (en)), GenE (« generically exponential time », pour le temps exponentiel avec un exposant linéaire) , GenExp (« generically exponential time » ), etc. ExpGenP est la sous-classe de GenP pour lequel l'ensemble générique correspondant est exponentiellement générique. Plus généralement, pour toute fonction , on peut définir la classe Gen(f) correspondant à la complexité en temps sur un ensemble générique de données. Definition. Un algorithme résout génériquement un problème s'il ne donne jamais de réponse fausse et s'il donne un réponse juste sur un ensemble générique de données. Un problème est génériquement résoluble s'il peut être résolu génériquement par un algorithme. Théorie et applicationsProblèmes en théorie combinatoire des groupes
Le problème de l’arrêt et le problème de correspondance de Post
Arithmétique de PresburgerLe problème de décision pour l'arithmétique de Presburger admet un borne inférieure doublement exponentielle dans le pire des cas[11] et une borne supérieure triplement exponentielle dans le pire des cas. On sait que la complexité générique n'est pas dans ExpGenP[12]. Problèmes NP-completsIl est bien connu que des problèmes NP-complets peuvent être en moyenne faciles, et il n'est pas surprenant que quelques-uns sont aussi génériquement faciles.
Fonctions à sens uniqueIl existe une version pour la complexité générique de la notion de fonction à sens unique[13] qui donne la même classe de fonctions mais permet d'autres hypothèses sur la sécurité. Cryptographie à clé publiqueTout un ensemble de travaux[14],[15],[16] est consacré à la cryptanalyse du protocole d'échange de clés de Anshel-Anshel-Goldfeld (en) dont la sécurité est basé sur des hypothèses sur le groupe de tresses. Cette série culmine dans un article[17] qui applique des techniques de complexité générique pour obtenir une analyse complète de l'attaque basés sur la longueur et des conditions dans lesquelles elle aboutit. Le point de vue générique suggère également une attaque nouvelle appelée attaque par quotient, et une version plus sure du protocole de Anshel-Anshel-Goldfeld. Minimisation d'automates par l'algorithme de BrzozowskiL'algorithme de Brzozowski pour la minimisation des automates finis est un algorithme dont la complexité est exponentielle dans le pire des cas. Il est génériquement super-polynomial[18]. Dans certains cas, on peut en analyser la complexité en moyenne[19]. Une collection de résultats théorique générauxLe théorème de Rice stipule que pour un ensemble de fonction partielles calculables de dans , il est indécidable si la fonction calculée par une machine de machine de Turing donnée est une fonction de , sauf dans les cas triviaux où est vide ou son complémentaire est vide. La version générique de ce théorème est la suivante : Théorème[20]. Soit l'ensemble de toutes les machines de Turing. Pour un ensemble de fonctions de dans lui-même qui n’est pas vide ainsi que son complément, le problème de savoir si une machine de Turing donnée calcule une fonction de F est indécidable sur tout sous-ensemble génériquement exponentiel de . Par ailleurs, on a deux résultats généraux: Théorème[1]. L'ensemble des langages formels génériquement calculables a mesure nulle. Théorème[1]. Il existe une hiérarchie infinie de classes de complexité génériques. Plus précisément, pour toute fonction de complexité propre , on a GenGen. Comparaison avec les travaux antérieursDeux notions proches existent. Temps presque polynomialUn algorithme est dit en temps presque polynomial s'il s'arrête en temps sur toutes les entrées de taille , sauf pour d'entre elles. Clairement, un tel algorithme est dans la classe GenP. La classe GenP contient des problèmes NP-complet, et pas les algorithmes en temps presque polynomial. Ainsi, les algorithmes en temps presque polynomial sont une famille plus petite que la classe GenP. Complexité en moyenneLa complexité générique est proche de la complexité en moyenne, avec quelques différences significatives. La complexité générique mesure directement les performances d'un algorithme sur la plupart des données, alors que la complexité en moyenne cherche un équilibre entre instance faciles et difficiles. De plus, la complexité générique s'applique naturellement aussi aux problèmes indécidables. Revenons aux définitions. Supposons que est un algorithme dont la complexité en temps est polynomiale en moyenne sur . Que peut-on en déduire sur le comportement de sur des inputs générique? Exemple. Soit l'ensemble des mots sur , la taille d'un mot étant sa longueur. Soit l'ensemble des mots de longueur , et soit la mesure équiprobable sur . Si que pour tous les mots de sauf un, et pour ce mot exceptionnel, alors T est dans GenP, mais n'est pas poynomial en moyenne puisque le mot exceptionnel emporte tout. Exemple. Soit comme avant, la taille étant la longueur. Soit et . Alors T n'est pas dans GenP, et pourtant T est polynomial en moyenne'. Dans ces deux exemples la complexité générique est plus proche du comportement sur des entrées typiques que de la complexité en moyenne. Dit de manière un peu sommaire, un algorithme qui est polynomial en moyenne n'a qu'une fraction sous-polynomiale de données pour lesquelles le temps est super-polynomial. Notes et références
(en) Cet article est partiellement ou en totalité issu de l’article de Wikipédia en anglais intitulé « Generic-case complexity » (voir la liste des auteurs).
Bibliographie
|
Portal di Ensiklopedia Dunia