Algorithmethumb|Algorithme de découpe d'un polygone quelconque en triangles (triangulation). Un algorithme est une suite finie et non ambiguë d'instructions et d’opérations permettant de résoudre une classe de problèmes. Le domaine qui étudie les algorithmes est appelé l'algorithmique. On retrouve aujourd'hui des algorithmes dans de nombreuses applications telles que le fonctionnement des ordinateurs, la cryptographie, le routage d'informations, la planification et l'utilisation optimale des ressources, le , le traitement de textes, la bio-informatique L' algorithme peut être mis en forme de façon graphique dans un algorigramme ou organigramme de programmation.
Algorithme d'approximationEn informatique théorique, un algorithme d'approximation est une méthode permettant de calculer une solution approchée à un problème algorithmique d'optimisation. Plus précisément, c'est une heuristique garantissant à la qualité de la solution qui fournit un rapport inférieur (si l'on minimise) à une constante, par rapport à la qualité optimale d'une solution, pour toutes les instances possibles du problème.
Action de groupe (mathématiques)En mathématiques, une action d'un groupe sur un ensemble est une loi de composition externe du groupe sur l'ensemble, vérifiant des conditions supplémentaires. Plus précisément, c'est la donnée, pour chaque élément du groupe, d'une permutation de l'ensemble, de telle manière que toutes ces bijections se composent de façon compatible avec la loi du groupe. Étant donné un ensemble E et un groupe G, dont la loi est notée multiplicativement et dont l'élément neutre est noté e, une action (ou opération) de G sur E est une application : vérifiant chacune des 2 propriétés suivantes : On dit également que G opère (ou agit) sur l'ensemble E.
Théorie des groupesvignette|Le Rubik's cube illustre la notion de groupes de permutations. Voir groupe du Rubik's Cube. La théorie des groupes est en mathématique, plus précisément en algèbre générale, la discipline qui étudie les structures algébriques appelées groupes. Le développement de la théorie des groupes est issu de la théorie des nombres, de la théorie des équations algébriques et de la géométrie. La théorie des groupes est étroitement liée à la théorie des représentations.
Matrix multiplication algorithmBecause matrix multiplication is such a central operation in many numerical algorithms, much work has been invested in making matrix multiplication algorithms efficient. Applications of matrix multiplication in computational problems are found in many fields including scientific computing and pattern recognition and in seemingly unrelated problems such as counting the paths through a graph. Many different algorithms have been designed for multiplying matrices on different types of hardware, including parallel and distributed systems, where the computational work is spread over multiple processors (perhaps over a network).
Algorithme de ShorEn arithmétique modulaire et en informatique quantique, l’algorithme de Shor est un algorithme quantique conçu par Peter Shor en 1994, qui factorise un entier naturel N en temps O et en espace . Beaucoup de cryptosystèmes à clé publique, tels que le RSA, deviendraient vulnérables si l'algorithme de Shor était un jour implanté dans un calculateur quantique pratique. Un message chiffré avec RSA peut être déchiffré par factorisation de sa clé publique N, qui est le produit de deux nombres premiers.
IsogenyIn mathematics, particularly in algebraic geometry, an isogeny is a morphism of algebraic groups (also known as group varieties) that is surjective and has a finite kernel. If the groups are abelian varieties, then any morphism f : A → B of the underlying algebraic varieties which is surjective with finite fibres is automatically an isogeny, provided that f(1_A) = 1_B. Such an isogeny f then provides a group homomorphism between the groups of k-valued points of A and B, for any field k over which f is defined.
Réduction polynomialeUne réduction polynomiale est un outil d'informatique théorique, plus particulièrement de théorie de la complexité. C'est une classe particulière de réductions particulièrement importante, notamment pour le problème P = NP. Dans le cadre des langages formels pour les problèmes de décision, on dit qu'un langage est réductible en temps polynomial à un langage (noté ) s'il existe une fonction calculable en temps polynomial telle que pour tout , si et seulement si .
Cryptographie post-quantiqueLa cryptographie post-quantique est une branche de la cryptographie visant à garantir la sécurité de l'information face à un attaquant disposant d'un calculateur quantique. Cette discipline est distincte de la cryptographie quantique, qui vise à construire des algorithmes cryptographiques utilisant des propriétés physiques, plutôt que mathématiques, pour garantir la sécurité. En l'effet, les algorithmes quantiques de Shor, de Grover et de Simon étendent les capacités par rapport à un attaquant ne disposant que d'un ordinateur classique.
Hiérarchie polynomialeEn théorie de la complexité, la hiérarchie polynomiale est une hiérarchie de classes de complexité qui étend la notion de classes P, NP, co-NP. La classe PH est l'union de toutes les classes de la hiérarchie polynomiale. Il existe plusieurs définitions équivalentes des classes de la hiérarchie polynomiale. On peut définir la hiérarchie à l'aide des quantificateurs universel () et existentiel ().
Groupe des classes d'idéauxEn mathématiques, et plus précisément en algèbre, la théorie des corps de nombres – les extensions finies du corps Q des rationnels – fait apparaître un groupe abélien fini construit à partir de chacun de ces corps : son groupe des classes d'idéaux. Les premiers groupes de classes rencontrés en algèbre furent des groupes de classes de formes quadratiques : dans le cas des formes quadratiques binaires, dont l'étude a été faite par Gauss, une loi de composition est définie sur certaines classes d'équivalence de formes.
Complexité en tempsEn algorithmique, la complexité en temps est une mesure du temps utilisé par un algorithme, exprimé comme fonction de la taille de l'entrée. Le temps compte le nombre d'étapes de calcul avant d'arriver à un résultat. Habituellement, le temps correspondant à des entrées de taille n est le temps le plus long parmi les temps d’exécution des entrées de cette taille ; on parle de complexité dans le pire cas. Les études de complexité portent dans la majorité des cas sur le comportement asymptotique, lorsque la taille des entrées tend vers l'infini, et l'on utilise couramment les notations grand O de Landau.
Algorithme de Strassenvignette|Algorithme de Strassen où sont représentés les matrices Ci,j ainsi que les 7 nouvelles matrices Mi En mathématiques, plus précisément en algèbre linéaire, l’algorithme de Strassen est un algorithme calculant le produit de deux matrices carrées de taille n, proposé par Volker Strassen en 1969. La complexité de l'algorithme est en , avec pour la première fois un exposant inférieur à celui de la multiplication naïve qui est en . Par contre, il a l'inconvénient de ne pas être stable numériquement.
Quadratic fieldIn algebraic number theory, a quadratic field is an algebraic number field of degree two over , the rational numbers. Every such quadratic field is some where is a (uniquely defined) square-free integer different from and . If , the corresponding quadratic field is called a real quadratic field, and, if , it is called an imaginary quadratic field or a complex quadratic field, corresponding to whether or not it is a subfield of the field of the real numbers.
Algorithme de triUn algorithme de tri est, en informatique ou en mathématiques, un algorithme qui permet d'organiser une collection d'objets selon une relation d'ordre déterminée. Les objets à trier sont des éléments d'un ensemble muni d'un ordre total. Il est par exemple fréquent de trier des entiers selon la relation d'ordre usuelle « est inférieur ou égal à ». Les algorithmes de tri sont utilisés dans de très nombreuses situations. Ils sont en particulier utiles à de nombreux algorithmes plus complexes dont certains algorithmes de recherche, comme la recherche dichotomique.
Schéma d'approximation en temps polynomialEn informatique, un schéma d'approximation en temps polynomial (en anglais polynomial-time approximation scheme, abrégé en PTAS) est une famille d'algorithmes d'approximation pour des problèmes d'optimisation combinatoire. On dit aussi plus simplement schéma d'approximation polynomial. Le plus souvent, les problèmes d'optimisation combinatoire considérés sont NP-difficiles. Plusieurs variantes des PTAS existent : des définitions plus restrictives comme les EPTAS et FPTAS, ou d'autres qui reposent sur les algorithmes probabilistes comme les PRAS et FPRAS.
Complex torusIn mathematics, a complex torus is a particular kind of complex manifold M whose underlying smooth manifold is a torus in the usual sense (i.e. the cartesian product of some number N circles). Here N must be the even number 2n, where n is the complex dimension of M. All such complex structures can be obtained as follows: take a lattice Λ in a vector space V isomorphic to Cn considered as real vector space; then the quotient group is a compact complex manifold. All complex tori, up to isomorphism, are obtained in this way.
Cryptographie sur les courbes elliptiquesLa cryptographie sur les courbes elliptiques (en anglais, elliptic curve cryptography ou ECC) regroupe un ensemble de techniques cryptographiques qui utilisent une ou plusieurs propriétés des courbes elliptiques, ou plus généralement d'une variété abélienne. L'usage des courbes elliptiques en cryptographie a été suggéré, de manière indépendante, par Neal Koblitz et Victor S. Miller en 1985.
Polynômethumb|Courbe représentative d'une fonction cubique. En mathématiques, un polynôme est une expression formée uniquement de produits et de sommes de constantes et d'indéterminées, habituellement notées X, Y, Z... Ces objets sont largement utilisés en pratique, ne serait-ce que parce qu'ils donnent localement une valeur approchée de toute fonction dérivable (voir l'article Développement limité) et permettent de représenter des formes lisses (voir l'article Courbe de Bézier, décrivant un cas particulier de fonction polynomiale).
Algorithme de Cocke-Younger-KasamiEn informatique théorique et en théorie des langages, l'algorithme de Cocke-Younger-Kasami (CYK) est un algorithme d'analyse syntaxique pour les grammaires non contextuelles, publié par Itiroo Sakai en 1961. Il permet de déterminer si un mot est engendré par une grammaire, et si oui, d'en donner un arbre syntaxique. L'algorithme est nommé d'après les trois personnes qui l'ont redécouvert indépendamment, J. Cocke, dont l'article n'a jamais été publié, D. H. Younger et T. Kasami qui a publié un rapport interne aux US-AirForce.