Bonjour,
les faits sont de la forme a,b,c,e,g...
les regles sont de la forme: 1) a et b et c --> d
2) d et g --> x
3) a -->h
4) h-->d
il existe 2+1 approches:
- chainage avant : On part des hypotheses (les faits/prémisses) vers la conclusion [ gauche vers droite quoi]
on exécute toutes les regles dont les hypotheses sont vérifiées afin d'obtenir le plus de nouvelles informations possibles. dans le cas présent, la regle une est exécutable et donne le fait d ( la 3 donne h). ce nouveau fait, une fois ajouté à la liste des faits vrais (a,b,c,e,g) permet de lancer la regle 2.
Dans cette approche, on exécute toutes les regles qui sont exécutables.
- chainage arrière : on part de la conclusion et on remonte au hypotheses a vérifier
on a un but (par exemple obtenir le fait x) et on cherche a l'obtenir le plus rapidement possible.
Dans ce cas, le chainage arrière par de la fin ( la conclusion/but x) et remonte le chemin pour trouver le moyen le plus court de l'atteindre il nous faut donc d et g. g est vrai, il ne manque plus que d. celui -ci est obtenable en 1 fois par la regle 1 et en 2 pas par les regles 3 et 4. Le systeme va résoudre puis choisir le chemin 1)2)
-mixte : on mélange les 2 approches ci -dessus
exemple d'algo chainage avant : http://icwww.epfl.ch/~aicours2//labs/lab2/lab2.htm
pour faire du moteur d'inférence sous java, il y a notamment Jess, et swi-prolog, ou python ou autre :)
si tu cherches moteur d' inférence, prolog, java et /ou exercices sur prolog tu devrais trouver ton bonheur
@+