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.
Décomposition LUEn algèbre linéaire, la décomposition LU est une méthode de décomposition d'une matrice comme produit d'une matrice triangulaire inférieure (comme lower, inférieure en anglais) par une matrice triangulaire supérieure (comme upper, supérieure). Cette décomposition est utilisée en analyse numérique pour résoudre des systèmes d'équations linéaires. Soit une matrice carrée. On dit que admet une décomposition LU s'il existe une matrice triangulaire inférieure formée de 1 sur la diagonale, notée , et une matrice triangulaire supérieure, notée , qui vérifient l'égalité Il n'est pas toujours vrai qu'une matrice admette une décomposition LU.
Computational complexityIn computer science, the computational complexity or simply complexity of an algorithm is the amount of resources required to run it. Particular focus is given to computation time (generally measured by the number of needed elementary operations) and memory storage requirements. The complexity of a problem is the complexity of the best algorithms that allow solving the problem. The study of the complexity of explicitly given algorithms is called analysis of algorithms, while the study of the complexity of problems is called computational complexity theory.
Fonction booléennevignette|Arbre de décision binaire Une fonction booléenne est une fonction prenant en entrée une liste de bits et donnant en sortie un unique bit. Les fonctions booléennes sont très utilisées en informatique théorique, notamment en théorie de la complexité et en cryptologie (par exemple dans les boîtes-S et les chiffrements par flot -- fonction de filtrage ou de combinaison de registres à décalage à rétroaction linéaire). Une fonction booléenne est une fonction de dans où désigne le corps fini à 2 éléments.
Factorisation de CholeskyLa factorisation de Cholesky, nommée d'après André-Louis Cholesky, consiste, pour une matrice symétrique définie positive , à déterminer une matrice triangulaire inférieure telle que : . La matrice est en quelque sorte une « racine carrée » de . Cette décomposition permet notamment de calculer la matrice inverse , de calculer le déterminant de A (égal au carré du produit des éléments diagonaux de ) ou encore de simuler une loi multinormale. Elle est aussi utilisée en chimie quantique pour accélérer les calculs (voir Décomposition de Cholesky (chimie quantique)).
Décomposition QREn algèbre linéaire, la décomposition QR (appelée aussi, factorisation QR ou décomposition QU) d'une matrice A est une décomposition de la forme où Q est une matrice orthogonale (QQ=I), et R une matrice triangulaire supérieure. Ce type de décomposition est souvent utilisé pour le calcul de solutions de systèmes linéaires non carrés, notamment pour déterminer la pseudo-inverse d'une matrice. En effet, les systèmes linéaires AX = Y peuvent alors s'écrire : QRX = Y ou RX = QY.
Classe de complexitéEn informatique théorique, et plus précisément en théorie de la complexité, une classe de complexité est un ensemble de problèmes algorithmiques dont la résolution nécessite la même quantité d'une certaine ressource. Une classe est souvent définie comme l'ensemble de tous les problèmes qui peuvent être résolus sur un modèle de calcul M, utilisant une quantité de ressources du type R, où n, est la taille de l'entrée. Les classes les plus usuelles sont celles définies sur des machines de Turing, avec des contraintes de temps de calcul ou d'espace.
Exponential time hypothesisIn computational complexity theory, the exponential time hypothesis is an unproven computational hardness assumption that was formulated by . It states that satisfiability of 3-CNF Boolean formulas cannot be solved in subexponential time, i.e., for all constant , where n is the number of variables in the formula. The exponential time hypothesis, if true, would imply that P ≠ NP, but it is a stronger statement.
Fonction exponentielle doubleUne fonction exponentielle double est une fonction exponentielle dont l’exposant est lui-même une fonction exponentielle. La forme générale est : Cette fonction croît plus vite qu’une exponentielle simple. Par exemple, pour a = b = 10 : f(−1) ≈ ; f(0) = 10 ; f(1) = 1010 ; f(2) = 10100 = googol ; f(3) = 101000 ; f(100) = 1010100 = googolplex. Les factorielles croissent plus vite que les exponentielles, mais beaucoup plus lentement que les exponentielles doubles. La fonction hyper-exponentielle et la fonction d'Ackermann croissent encore plus vite.
Décomposition de SchurEn algèbre linéaire, une décomposition de Schur (nommée après le mathématicien Issai Schur) d'une matrice carrée complexe M est une décomposition de la formeoù U est une matrice unitaire (U*U = I) et A une matrice triangulaire supérieure. On peut écrire la décomposition de Schur en termes d'applications linéaires : Dans le cas où est l'application nulle, l'énoncé est directement vérifié, on peut donc se contenter de traiter le cas où est différente de l'application nulle.