SubtypingIn programming language theory, subtyping (also subtype polymorphism or inclusion polymorphism) is a form of type polymorphism in which a subtype is a datatype that is related to another datatype (the supertype) by some notion of substitutability, meaning that program elements, typically subroutines or functions, written to operate on elements of the supertype can also operate on elements of the subtype. If S is a subtype of T, the subtyping relation (written as S
Induction (logique)L'induction est historiquement le nom utilisé pour signifier un genre de raisonnement qui se propose de chercher des lois générales à partir de l'observation de faits particuliers, sur une base probabiliste. Remarque : Bien qu'associée dans le titre de cet article à la logique, la présentation qui suit correspond surtout à la notion bayésienne, utilisée consciemment ou non, de l'induction.
Inférence (logique)L’inférence est un mouvement de la pensée qui permet de passer d'une ou plusieurs assertions, des énoncés ou propositions affirmés comme vrais, appelés prémisses, à une nouvelle assertion qui en est la conclusion. Étymologiquement, le mot inférence signifie « reporter ». En théorie, l'inférence est traditionnellement divisée en déduction et induction, une distinction qui, en Europe, remonte au moins à Aristote ( avant Jésus-Christ). On distingue les inférences immédiates des inférences médiates telles que déductives, inductives et abductives.
Polymorphisme (informatique)En informatique et en théorie des types, le polymorphisme, du grec ancien polús (plusieurs) et morphê (forme), est le concept consistant à fournir une interface unique à des entités pouvant avoir différents types. Par exemple, des opérations telles que la multiplication peuvent ainsi être étendues à des scalaires aux vecteurs ou aux matrices, l'addition, des scalaires aux fonctions ou aux chaînes de caractères, etc.
Analyse en composantes principalesL'analyse en composantes principales (ACP ou PCA en anglais pour principal component analysis), ou, selon le domaine d'application, transformation de Karhunen–Loève (KLT) ou transformation de Hotelling, est une méthode de la famille de l'analyse des données et plus généralement de la statistique multivariée, qui consiste à transformer des variables liées entre elles (dites « corrélées » en statistique) en nouvelles variables décorrélées les unes des autres. Ces nouvelles variables sont nommées « composantes principales » ou axes principaux.
Solomonoff's theory of inductive inferenceSolomonoff's theory of inductive inference is a mathematical theory of induction introduced by Ray Solomonoff, based on probability theory and theoretical computer science. In essence, Solomonoff's induction derives the posterior probability of any computable theory, given a sequence of observed data. This posterior probability is derived from Bayes' rule and some universal prior, that is, a prior that assigns a positive probability to any computable theory.
Covariance and contravariance (computer science)Many programming language type systems support subtyping. For instance, if the type is a subtype of , then an expression of type should be substitutable wherever an expression of type is used. Variance is how subtyping between more complex types relates to subtyping between their components. For example, how should a list of s relate to a list of s? Or how should a function that returns relate to a function that returns ? Depending on the variance of the type constructor, the subtyping relation of the simple types may be either preserved, reversed, or ignored for the respective complex types.
Principe de substitution de Liskovvignette|Barbara Liskov en 2010 Le principe de substitution de Liskov (LSP) est, en programmation orientée objet, une définition particulière de la notion de sous-type. Il a été formulé par Barbara Liskov et Jeannette Wing dans un article intitulé Family Values: A Behavioral Notion of Subtyping : Liskov et Wing en ont proposé la formulation condensée suivante : Si est une propriété démontrable pour tout objet de type , alors est vraie pour tout objet de type tel que est un sous-type de .
Moteur d'inférenceUn moteur d'inférence (du verbe « inférer » qui signifie « déduire ») est un logiciel (processus informatique) correspondant à un algorithme de simulation des raisonnements déductifs. Un moteur d'inférence permet aux systèmes experts de conduire des raisonnements logiques et de dériver des conclusions à partir d'une base de faits et d'une base de connaissances. Les moteurs d'inférence peuvent implémenter : une logique formelle d'ordre 0 (logique des propositions), d'ordre 0+, d'ordre 1 (logique des prédicats) ou d'ordre 2 avec une gestion d'hypothèses monotone ou non monotone, un chaînage avant, chaînage arrière ou mixte, une complétude déductive ou non.
Inférence statistiquevignette|Illustration des 4 principales étapes de l'inférence statistique L'inférence statistique est l'ensemble des techniques permettant d'induire les caractéristiques d'un groupe général (la population) à partir de celles d'un groupe particulier (l'échantillon), en fournissant une mesure de la certitude de la prédiction : la probabilité d'erreur. Strictement, l'inférence s'applique à l'ensemble des membres (pris comme un tout) de la population représentée par l'échantillon, et non pas à tel ou tel membre particulier de cette population.
Knowledge representation and reasoningKnowledge representation and reasoning (KRR, KR&R, KR2) is the field of artificial intelligence (AI) dedicated to representing information about the world in a form that a computer system can use to solve complex tasks such as diagnosing a medical condition or having a dialog in a natural language. Knowledge representation incorporates findings from psychology about how humans solve problems and represent knowledge in order to design formalisms that will make complex systems easier to design and build.
Abstraction (informatique)En informatique, le concept d'abstraction identifie et regroupe des caractéristiques et traitements communs applicables à des entités ou concepts variés ; une représentation abstraite commune de tels objets permet d'en simplifier et d'en unifier la manipulation. thumb|upright=1.4|Différentes couches de logiciel, partant d'en bas, le matériel est programmé en langage binaire, via un firmware, qui permet une abstraction pour le noyau, puis lui même pour le système d'exploitation, qui a son tour permet une abstraction pour les applications.
Héritage (informatique)En programmation orientée objet, l’héritage est un mécanisme qui permet, lors de la déclaration d’une nouvelle classe, d'y inclure les caractéristiques d’une autre classe. L'héritage établit une relation de généralisation-spécialisation qui permet d'hériter dans la déclaration d’une nouvelle classe (appelée classe dérivée, classe fille, classe enfant ou sous-classe) des caractéristiques (propriétés et méthodes) de la déclaration d'une autre classe (appelée classe de base, classe mère, classe parent ou super-classe).
Règle d'inférenceDans un système logique, les régles d'inférence sont les règles qui fondent le processus de déduction, de dérivation ou de démonstration. L'application des règles sur les axiomes du système permet d'en démontrer les théorèmes. Une règle d'inférence est une fonction qui prend un -uplet de formules et rend une formule. Les formules arguments sont appelées « les prémisses » et la formule retournée est appelée la « conclusion ».
PapeterieLe mot papeterie ou papèterie peut désigner : une usine à papier, également appelée papetière, spécialisée dans la transformation du bois, de vieux papiers, ou de pailles en papier ou d'autres fibres (chiffons) ; un magasin de fournitures de bureau ou de fournitures scolaires ; l'industrie papetière, c'est-à-dire l'industrie de fabrication du papier principalement à partir de pâte à papier ; un article de papeterie, un article fabriqué en tout ou partie avec du papier ; une petite boîte contenant le matérie
Inférence bayésiennevignette|Illustration comparant les approches fréquentiste et bayésienne (Christophe Michel, 2018). L’inférence bayésienne est une méthode d'inférence statistique par laquelle on calcule les probabilités de diverses causes hypothétiques à partir de l'observation d'événements connus. Elle s'appuie principalement sur le théorème de Bayes. Le raisonnement bayésien construit, à partir d'observations, une probabilité de la cause d'un type d'événements.
GénéralUn général est un chef militaire de haut rang commandant une grande unité militaire interarmes (gendarmerie, infanterie, cavalerie, génie, marine, aviation) longtemps appelée armée. Dans le domaine militaire contemporain, un général est un officier de la gendarmerie, de l'Armée de terre ou de l'air dont le grade s'inscrit au sommet de la hiérarchie, laquelle comprend généralement dans l'ordre ascendant : les militaires du rang, les sous-officiers, les officiers subalternes, les officiers supérieurs et les officiers généraux.
Programmation orientée composantthumb|Représentation graphique de composants informatiques. La programmation orientée composant (POC) consiste à utiliser une approche modulaire de l'architecture d'un projet informatique, ce qui permet d'assurer au logiciel une meilleure lisibilité et une meilleure maintenance. Les développeurs, au lieu de créer un exécutable monolithique, se servent de briques réutilisables. La POC n'est pas sans similitudes avec la POO, puisqu'elle revient à utiliser une approche objet, non pas au sein du code, mais au niveau de l'architecture générale du logiciel.
Typed lambda calculusA typed lambda calculus is a typed formalism that uses the lambda-symbol () to denote anonymous function abstraction. In this context, types are usually objects of a syntactic nature that are assigned to lambda terms; the exact nature of a type depends on the calculus considered (see kinds below). From a certain point of view, typed lambda calculi can be seen as refinements of the untyped lambda calculus, but from another point of view, they can also be considered the more fundamental theory and untyped lambda calculus a special case with only one type.
Système nominatif de typesUn système nominatif de types est une classe majeure de système de types en programmation informatique. C'est avec lui qu'on détermine la compatibilité et l'équivalence de types par la déclaration explicite et/ou le nommage des types. On utilise les systèmes nominatifs pour déterminer si des types sont équivalents ou pour savoir si un type est un sous-type d'un autre. Ce système est en contraste avec le système structurel, où les comparaisons sont fondées sur la structure des types en question et donc ces types ne nécessitent pas de déclarations explicites.