Chaînage vers l'avant contre chaînage vers L'arrière

Qu'est-ce qui est 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 les capacités dans la pratique? Je pense Drools vs un prolog java pour un nouveau projet AI, mais ouvert à d'autres suggestions. Quelles sont les approches populaires pour inférer sur un ensemble complexe de données relationnelles ou des alternatives?

44
demandé sur ShiDoiSi 2010-07-29 19:27:53

4 réponses

Rétro-enchaînement (a la Prolog) est plus comme trouver ce que les conditions initiales forment un chemin à votre but. À un niveau très basique, c'est une recherche en arrière de votre but pour trouver des conditions qui le rempliront.

le chaînage inversé est utilisé pour les demandes d'interrogation (trouver des éléments qui répondent à certains critères) - un exemple commercial d'une demande de chaînage inversé pourrait être de trouver les polices d'assurance qui sont couvertes par une réassurance particulière contrat.

le chaînage vers l'avant (CLIPS la) 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 inférences qu'il peut à partir de ces conditions.

Les inférences (si affirmé) peuvent également être des actions ou des événements qui peuvent déclencher des actions extérieures. Ceci est utile dans les systèmes event driven, car les ensembles de règles peuvent être configurés pour (par exemple:) démarrer un flux de travail ou une autre action. Ce type de moteur de règles est le plus couramment utilisé dans les applications commerciales.

les systèmes entraînés par un événement sont une application courante des moteurs à Règles de chaînage vers l'avant. Un exemple d'application de chaînage vers l'avant pourrait être un moteur d'approvisionnement de plan de télécommunications (généralement utilisé pour l'administration des plans de téléphonie mobile). Entrer un utilisateur particulier avec un plan particulier déclenchera une série d'éléments à mettre en place dans divers commutateurs téléphoniques, la facturation systèmes, finances, CRM, etc.

44
répondu ConcernedOfTunbridgeWells 2010-08-03 13:55:26

la réponse de Concerned est très bonne. Quand on me demande de faire bouillir la différence jusqu'à une morsure, je dis habituellement quelque chose comme:

Beaucoup de Sortie Hypothèses + Beaucoup de Données à l'Avant => Utiliser le Chaînage Avant

Moins de Sortie Hypothèses + Doit Requête pour les Données => Utiliser en Arrière Chaînage

mais c'est juste une règle empirique, pas un commandement.

19
répondu TechNeilogy 2010-08-12 17:16:01

dans les vieux vieux vieux vieux vieux systèmes experts ils avaient l'habitude de dire enchaînement vers l'avant était bon pour regarder autour (en vérifiant ce qui pourrait être) tandis que enchaînement vers l'arrière était bon pour confirmer (en vérifiant si "il" est vraiment).

Think configuration (forward chaining, 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
4
répondu Tim Menzies 2017-10-27 21:42:16

enchaînement vers L'avant est concerné par la question "que se passera-t-il ensuite?", tandis que l'enchaînement en arrière regarde la question " pourquoi cela s'est-il produit?".

un exemple de chaînage à terme consiste à prédire si la situation du marché des actions a un effet sur les variations des taux d'intérêt.

le diagnostic du cancer du sang chez l'humain est un exemple de formation de chaînes vers l'arrière.

en termes simples, le chaînage vers l'avant est principalement utilisé pour prédire les résultats futurs tout en enchaînant vers l'arrière sert principalement à analyser des données historiques.

1
répondu Kudzai Allen Madzonga 2018-02-01 12:28:43