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.
Théorie de la complexité (informatique théorique)vignette|Quelques classes de complexité étudiées dans le domaine de la théorie de la complexité. Par exemple, P est la classe des problèmes décidés en temps polynomial par une machine de Turing déterministe. La théorie de la complexité est le domaine des mathématiques, et plus précisément de l'informatique théorique, qui étudie formellement le temps de calcul, l'espace mémoire (et plus marginalement la taille d'un circuit, le nombre de processeurs, l'énergie consommée ...) requis par un algorithme pour résoudre un problème algorithmique.
Complexité en espaceEn algorithmique, la complexité en espace est une mesure de l'espace utilisé par un algorithme, en fonction de propriétés de ses entrées. L'espace compte le nombre maximum de cases mémoire utilisées simultanément pendant un calcul. Par exemple le nombre de symboles qu'il faut conserver pour pouvoir continuer le calcul. Usuellement l'espace que l'on prend en compte lorsque l'on parle de l'espace nécessaire pour des entrées ayant des propriétés données est l'espace nécessaire le plus grand parmi ces entrées ; on parle de complexité en espace dans le pire cas.
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.
L (complexité)En informatique théorique, et notamment dans la théorie de la complexité, la classe L est la classe des problèmes de décision décidés par une machine de Turing déterministe qui utilise un espace de taille logarithmique en fonction de la taille de l'entrée. Pour être plus précis, l'exigence sur l'espace de taille logarithmique se réfère à l'espace supplémentaire utilisable. Elle est aussi parfois notée LOGSPACE.
Asymptotic computational complexityIn computational complexity theory, asymptotic computational complexity is the usage of asymptotic analysis for the estimation of computational complexity of algorithms and computational problems, commonly associated with the usage of the big O notation. With respect to computational resources, asymptotic time complexity and asymptotic space complexity are commonly estimated. Other asymptotically estimated behavior include circuit complexity and various measures of parallel computation, such as the number of (parallel) processors.
Quantum complexity theoryQuantum complexity theory is the subfield of computational complexity theory that deals with complexity classes defined using quantum computers, a computational model based on quantum mechanics. It studies the hardness of computational problems in relation to these complexity classes, as well as the relationship between quantum complexity classes and classical (i.e., non-quantum) complexity classes. Two important quantum complexity classes are BQP and QMA.
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.
Sciences numériquesLes sciences numériques (traduction de l'anglais computational sciences), autrement dénommées calcul scientifique ou informatique scientifique, ont pour objet la construction de modèles mathématiques et de méthodes d'analyse quantitative, en se basant sur l'utilisation des sciences du numérique, pour analyser et résoudre des problèmes scientifiques. Cette approche scientifique basée sur un recours massif aux modélisations informatiques et mathématiques et à la simulation se décline en : médecine numérique, biologie numérique, archéologie numérique, mécanique numérique, par exemple.
Source de courantUne source de courant est un dispositif pouvant produire un courant électrique constant fonctionnant sur une plage de tension donnée. vignette|Source de courant parfaite (rouge) ; source de courant idéale sur une plage de tension (vert) ; source de courant avec résistance en parallèle (turquoise). Ce dispositif produit un courant stable I quelle que soit la tension à ses bornes. Une source de courant réelle a une résistance interne en parallèle de très grande valeur (infinie dans le cas d'une source idéale).
Complexité paramétréeEn algorithmique, la complexité paramétrée (ou complexité paramétrique) est une branche de la théorie de la complexité qui classifie les problèmes algorithmiques selon leur difficulté intrinsèque en fonction de plusieurs paramètres sur les données en entrée ou sur la sortie. Ce domaine est étudié depuis les années 90 comme approche pour la résolution exacte de problèmes NP-complets. Cette approche est utilisée en optimisation combinatoire, notamment en algorithmique des graphes, en intelligence artificielle, en théorie des bases de données et en bio-informatique.
Circuit complexityIn theoretical computer science, circuit complexity is a branch of computational complexity theory in which Boolean functions are classified according to the size or depth of the Boolean circuits that compute them. A related notion is the circuit complexity of a recursive language that is decided by a uniform family of circuits (see below). Proving lower bounds on size of Boolean circuits computing explicit Boolean functions is a popular approach to separating complexity classes.
Numerical linear algebraNumerical linear algebra, sometimes called applied linear algebra, is the study of how matrix operations can be used to create computer algorithms which efficiently and accurately provide approximate answers to questions in continuous mathematics. It is a subfield of numerical analysis, and a type of linear algebra. Computers use floating-point arithmetic and cannot exactly represent irrational data, so when a computer algorithm is applied to a matrix of data, it can sometimes increase the difference between a number stored in the computer and the true number that it is an approximation of.
Physique numériqueLa physique numérique (ou parfois physique informatique) est l'étude et l'implémentation d'algorithmes numériques dans le but de résoudre des problèmes physiques pour lesquels une théorie existe déjà. Elle est souvent considérée comme une sous-discipline de la physique théorique mais certains la considèrent comme une branche intermédiaire entre la physique théorique et la physique expérimentale. En général, les physiciens définissent un système et son évolution grâce à des formules mathématiques précises.
Application linéaireEn mathématiques, une application linéaire (aussi appelée opérateur linéaire ou transformation linéaire) est une application entre deux espaces vectoriels qui respecte l'addition des vecteurs et la multiplication scalaire, et préserve ainsi plus généralement les combinaisons linéaires. L’expression peut s’utiliser aussi pour un morphisme entre deux modules sur un anneau, avec une présentation semblable en dehors des notions de base et de dimension. Cette notion étend celle de fonction linéaire en analyse réelle à des espaces vectoriels plus généraux.
Problème du sac à dosEn algorithmique, le problème du sac à dos, parfois noté (KP) (de l'anglais Knapsack Problem) est un problème d'optimisation combinatoire. Ce problème classique en informatique et en mathématiques modélise une situation analogue au remplissage d'un sac à dos. Il consiste à trouver la combinaison d'éléments la plus précieuse à inclure dans un sac à dos, étant donné un ensemble d'éléments décrits par leurs poids et valeurs.
Mesure de courantEn génie électrique, une mesure de courant est une des techniques utilisées pour évaluer la valeur d'un courant électrique dans un circuit électrique (exprimé en ampères). Il existe plusieurs méthodes de mesure de courant, le choix de l'une d'entre elles dépend des différentes exigences : la nature du courant, continu ou alternatif, la grandeur du courant à mesurer (du picoampère à des dizaines de milliers d'ampères), de la complexité et de l'impact de la mesure sur le fonctionnement du système, du coût, de la précision, de la bande passante, de robustesse, etc.
Mathématiques computationnellesvignette| Une interprétation en noir et blanc de la tablette YBC 7289 de la Yale Babylonian Collection (vers 1800–1600 avant notre ère), montrant une approximation babylonienne de la racine carrée de 2 (1 24 51 10 w : sexagésimal) dans le contexte du théorème de Pythagore pour un triangle isocèle. La tablette donne également un exemple où un côté du carré est 30 et la diagonale résultante est 42 25 35 soit 42,4263888.
Complexité de la multiplication de matricesEn informatique théorique, la complexité de la multiplication de matrices est le nombre d'opérations requises pour l'opération de produit matriciel. Les algorithmes de multiplication de matrices constituent un sujet central dans les algorithmes théoriques et numériques en algèbre linéaire numérique et en optimisation, donc déterminer la complexité en temps du produit est d'une importance pratique. L'application directe de la définition mathématique de la multiplication de matrices donne un algorithme qui nécessite opérations sur le corps de base pour multiplier deux matrices d'ordre .
Computational complexity of mathematical operationsThe following tables list the computational complexity of various algorithms for common mathematical operations. Here, complexity refers to the time complexity of performing computations on a multitape Turing machine. See big O notation for an explanation of the notation used. Note: Due to the variety of multiplication algorithms, below stands in for the complexity of the chosen multiplication algorithm. This table lists the complexity of mathematical operations on integers.