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.
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.
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.
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.
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.
3D scanning3D scanner is the process of analyzing a real-world object or environment to collect three dimensional data of its shape and possibly its appearance (e.g. color). The collected data can then be used to construct digital 3D models. A 3D scanner can be based on many different technologies, each with its own limitations, advantages and costs. Many limitations in the kind of objects that can be digitised are still present. For example, optical technology may encounter many difficulties with dark, shiny, reflective or transparent objects.
Extraction de racine carréeEn algorithmique et en analyse numérique, l'extraction de racine carrée est le processus qui consiste, étant donné un nombre, à en calculer la racine carrée. Il existe de nombreuses méthodes pour effectuer ce calcul. C'est un cas particulier de la recherche de calcul de la racine n-ième. La racine carrée d'un nombre pouvant être un nombre irrationnel, l'extraction de racine carrée est en général approchée. L'extraction de la racine carrée d'un nombre a est identique à la résolution de l'équation x - a = 0.
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.
Méthode itérativeEn analyse numérique, une méthode itérative est un procédé algorithmique utilisé pour résoudre un problème, par exemple la recherche d’une solution d’un système d'équations ou d’un problème d’optimisation. En débutant par le choix d’un point initial considéré comme une première ébauche de solution, la méthode procède par itérations au cours desquelles elle détermine une succession de solutions approximatives raffinées qui se rapprochent graduellement de la solution cherchée. Les points générés sont appelés des itérés.
Oracle (machine de Turing)vignette|upright=2|Une machine de Turing avec oracle peut faire appel à une boîte noire (oracle). En théorie de la complexité ou de la calculabilité, les machines de Turing avec oracle sont une variante des machines de Turing disposant d'une boîte noire, un oracle, capable de résoudre un problème de décision en une seule opération élémentaire. En particulier, l'oracle peut résoudre en temps constant un problème indécidable comme le problème de l'arrêt.
Équation du second degréEn mathématiques, une équation du second degré, ou équation quadratique, est une équation polynomiale de degré 2, c'est-à-dire qu'elle peut s'écrire sous la forme : Dans cette équation, x est l'inconnue les lettres a, b et c représentent les coefficients, avec a différent de 0. a est le coefficient quadratique, b est le coefficient linéaire, et c est un terme constant où le polynome est défini sur .
Algorithme de recherche d'un zéro d'une fonctionUn algorithme de recherche d'un zéro d’une fonction est une méthode numérique ou un algorithme de recherche d’une valeur approchée d’un x vérifiant , pour une fonction donnée f. Ici, x est un nombre réel appelé zéro de f ou lorsque f est polynomiale, racine de f. Lorsque x est un vecteur, les algorithmes pour trouver x tel que sont généralement appelés « algorithmes de résolution numérique d'un système d'équations ». Ces algorithmes sont une généralisation des algorithmes de recherche d’un zéro d’une fonction et peuvent s’appliquer à des équations linéaires ou non linéaires.
Analyse numériqueL’analyse numérique est une discipline à l'interface des mathématiques et de l'informatique. Elle s’intéresse tant aux fondements qu’à la mise en pratique des méthodes permettant de résoudre, par des calculs purement numériques, des problèmes d’analyse mathématique. Plus formellement, l’analyse numérique est l’étude des algorithmes permettant de résoudre numériquement par discrétisation les problèmes de mathématiques continues (distinguées des mathématiques discrètes).
Division algorithmA division algorithm is an algorithm which, given two integers N and D (respectively the numerator and the denominator), computes their quotient and/or remainder, the result of Euclidean division. Some are applied by hand, while others are employed by digital circuit designs and software. Division algorithms fall into two main categories: slow division and fast division. Slow division algorithms produce one digit of the final quotient per iteration. Examples of slow division include restoring, non-performing restoring, non-restoring, and SRT division.
PréconditionneurEn algèbre linéaire et en analyse numérique, un préconditionneur d'une matrice est une matrice telle que le conditionnement de est plus petit que celui de . Le préconditionnement est surtout utilisé dans les méthodes itératives pour la résolution d'un système linéaire (méthode du gradient, méthode du gradient conjugué, ...). Au lieu de résoudre, on préfère résoudre qui permet de diminuer considérablement le nombre d'itérations dans la méthode de résolution (itérative). On dit que le système est "mieux" conditionné.
Fonction quadratiqueEn mathématiques, une fonction quadratique est une fonction de plusieurs variables polynomiale de degré 2. Cette notion généralise ainsi celle de fonction du second degré. Elle réalise aussi la partie régulière du développement de Taylor à l’ordre 2 pour une fonction de plusieurs variables. La matrice hessienne associée est la même en tout point, et ne dépend que de la forme quadratique constituée par les termes de degré 2. Elle permet aussi d’écrire le système d'équations linéaires qui détermine les points critiques de la fonction.
Fonction itéréeEn mathématiques, une fonction itérée est une fonction obtenue par composition répétée d’une autre fonction avec elle-même un certain nombre de fois. La procédure consistant à appliquer la même fonction à plusieurs reprises s’appelle itération. Les fonctions itérées apparaissent en informatique, dans les systèmes dynamiques, les groupes de renormalisation et sont à la base des fractales. L’itérée, plus précisément la deuxième itérée, d’une fonction f , définie sur un ensemble X et à valeurs dans ce même ensemble X, est la fonction où note la composition de fonctions.
Formule quadratiqueEn algèbre classique, la formule quadratique est la solution de l'équation du second degré. Il y a d'autres façons pour résoudre l'équation du second degré au lieu d'utiliser la formule quadratique, comme la factorisation, la méthode de complétion du carré ou le tracé du graphe. Mais utiliser la formule quadratique est souvent la façon la plus pratique. L'équation du second degré générale est : Ici, x représente une valeur inconnue alors que a, b et c sont constantes, avec a non nul.
Problème de couverture par ensemblesEn informatique théorique, le problème de couverture par ensembles (Set Cover problem en anglais) est un problème d'algorithmique particulièrement important car c'est l'un des 21 problèmes NP-complets de Karp . Étant donné un ensemble A, on dit qu'un élément e est couvert par A si e appartient à A. Étant donné un ensemble U et une famille S de sous-ensembles de U, le problème consiste à couvrir tous les éléments U avec une sous-famille de S la plus petite possible.
Irrationnel quadratiqueUn irrationnel quadratique est un nombre irrationnel solution d'une équation quadratique à coefficients rationnels, autrement dit, un nombre réel algébrique de degré 2. Il engendre donc un corps quadratique réel Q(), où d est un entier positif sans facteur carré. Les irrationnels quadratiques sont caractérisés par la périodicité à partir d'un certain rang de leur développement en fraction continue (théorème de Lagrange). Les exemples les plus simples d'irrationnels quadratiques sont les racines carrées d'entiers naturels non carrés (le plus célèbre étant ).