Chaînage avant vs chaînage arrière

Qu’est-ce qu’un bon pour que l’autre ne soit pas en pratique? Je comprends la théorie de ce qu’ils font, mais quelles sont leurs limites et leurs capacités dans l’utilisation pratique? Je considère Drools vs un prolog java pour un nouveau projet AI, mais ouvert à d’autres suggestions. Quelles sont les approches les plus populaires pour déduire un dataset relationnelles compliqué ou des alternatives?

Le chaînage en amont (à la Prolog) est plus comme trouver les conditions initiales qui forment un chemin vers votre objective. À un niveau très basique, il s’agit d’une recherche en arrière de votre objective pour trouver les conditions qui l’accompliront.

Le chaînage en amont est utilisé pour les applications interrogatives (recherche d’éléments répondant à certains critères). Un exemple commercial d’une application en chaîne peut être la recherche des fonts d’assurance couvertes par un contrat de réassurance particulier.

Le chaînage avant (à la CLIPS) correspond aux conditions et génère ensuite des inférences à partir de ces conditions. Ces conditions peuvent à leur tour correspondre à d’autres règles. Fondamentalement, cela prend un ensemble de conditions initiales et puis tire toutes les déductions possibles de ces conditions.

Les inférences (si elles sont affirmées) peuvent également être des actions ou des événements pouvant déclencher des actions externes. Cela est utile dans les systèmes pilotés par les événements, car les jeux de règles peuvent être configurés pour (par exemple) lancer un workflow ou une autre action. Ce type de moteur de règles est le plus couramment utilisé dans les applications commerciales.

Les systèmes pilotés par les événements sont une application courante des moteurs de règles de chaînage avant. Un exemple d’une application de chaînage avant peut être un moteur d’approvisionnement de plan de télécommunications (généralement utilisé pour administrer des forfaits de téléphonie mobile). La saisie d’un utilisateur particulier avec un plan particulier déclenchera une série d’éléments à configurer dans différents commutateurs téléphoniques, systèmes de facturation, services financiers, systèmes CRM, etc.

La réponse de Concerned est très bonne. Lorsqu’on me demande de réduire la différence à une piqûre sonore, je dis habituellement quelque chose comme:

Beaucoup d’hypothèses de sortie + beaucoup de données en amont => Utiliser le chaînage avant

Moins d’hypothèses de sortie + requête obligatoire pour les données => utilisation du chaînage arrière

Mais c’est juste une règle de base, pas un commandement.

Dans les vieux vieux vieux systèmes de systèmes experts, on avait l’habitude de dire que le chaînage avant était bon pour regarder autour de soi (vérifier ce qui pourrait être) alors que le chaînage arrière était bon pour confirmer (vérifier si “c’est” vraiment).

Pensez configuration (chaînage avant, XCON [1]) et diagnostic médical (MYCIN) [2]

  1. http://www.aaai.org/Papers/AAAI/1980/AAAI80-076.pdf
  2. https://www.amazon.com/Rule-Based-Expert-Systems-Addison-Wesley/dp/0201101726

Le chaînage avancé concerne la question “que va-t-il se passer ensuite?”, Tandis que le chaînage en arrière se penche sur la question “pourquoi cela est-il arrivé?”.

Un exemple de chaînage à terme est de prédire si le statut de marché des actions a un effet sur les variations des taux d’intérêt.

Un exemple de chaînage en amont est le diagnostic du cancer du sang chez l’homme.

En termes simples, le chaînage avant est principalement utilisé pour prédire les résultats futurs, tandis que le chaînage arrière est principalement utilisé pour parsingr les données historiques.