Un moteur d’inférence est un système logiciel conçu pour tirer des conclusions en analysant les problèmes à la lumière d’une base de données de connaissances spécialisées sur laquelle il s’appuie. Il atteint des résultats logiques basés sur les prémisses établies par les données. Parfois, les moteurs d’inférence sont également capables d’aller au-delà du traitement logique strict et utilisent des calculs de probabilité pour parvenir à des conclusions que la base de données de connaissances ne prend pas strictement en charge, mais implique simplement ou suggère.
La plupart des moteurs d’inférence conçus dans le domaine de l’intelligence artificielle sont basés sur le concept de système expert. Un système expert est construit pour résoudre des problèmes dans un domaine spécifique et parfois étroitement défini, comme certaines spécialités médicales. Le composant moteur d’inférence d’un système expert est la structure de contrôle qui produit une sortie initiale basée sur les données existantes dans la base de connaissances et les règles de programmation du système expert, puis l’applique au problème spécifique de manière significative. Étant donné que les résultats du moteur d’inférence sont le résultat des données, ils changent au fur et à mesure que les données sont mises à jour, et peuvent également changer lorsque les données sont recherchées de différentes manières par le moteur d’inférence lui-même. Si les données du système sont pondérées vers une ou plusieurs conclusions par rapport à une autre, cela peut modifier les résultats générés par le moteur d’inférence.
Les logiciels qui utilisent un moteur d’inférence peuvent être considérés comme un mécanisme sélectif actif, où les actions de traitement sont dirigées par l’état le plus actuel des données. Les systèmes experts ont deux manières générales de traiter ces données stockées, appelées chaînage avant ou chaînage arrière. Dans le chaînage avant, les règles du système expert analysent les données qui lui sont fournies par le moteur d’inférence, et les résultats sont réinjectés dans le stockage de données du système en tant que nouvelles données. Cela déclenche de nouvelles solutions aux problèmes au fur et à mesure que le système affine les données et les évalue par inférence inductive, ce qui signifie que les conclusions atteintes ne refléteront pas nécessairement les données ou les prémisses d’origine qui ont été utilisées pour démarrer l’analyse.
Le chaînage en amont est plus axé sur la probabilité, les données stockées étant pondérées en fonction de la valeur dès le départ. Des règles sont utilisées pour tester les conditions de validité des données à la lumière du problème donné et, à mesure que cela est fait, de nouvelles valeurs de probabilité sont attribuées aux données. Également appelé par hypothèse, le chaînage en amont ne tire pas de conclusions strictes tant que les tests continus des données par rapport aux conditions établies par les règles du système expert n’atteignent pas un niveau de preuve minimum pour la question ou le problème étudié.
La logique bayésienne est l’une des formes de logiciels de moteur d’inférence orientées probabilité qui utilisent le chaînage en amont, du nom de Thomas Bayes, un mathématicien anglais du milieu du XVIIIe siècle. Une telle logique utilise une base de connaissances d’événements antérieurs pour prédire les résultats futurs grâce à des tests répétés des connaissances, et elle intègre des preuves supplémentaires des résultats des essais dans de nouveaux essais, dans le but de produire des résultats de plus en plus précis. L’architecture logicielle de logique floue peut également s’appuyer sur le moteur d’inférence dans le cadre de son système. La différence avec la logique floue est que la sortie est un ensemble flou ou une gamme de solutions possibles qui sont ensuite agrégées en un seul groupe et, par la logique et la probabilité, réduites à une conclusion ou action optimale.