Affichage des articles dont le libellé est arbre de décisions. Afficher tous les articles
Affichage des articles dont le libellé est arbre de décisions. Afficher tous les articles

vendredi 4 novembre 2011

Ergonomie de visual rules modeler


Visual Rules édité par Bosch Software dispose d’un outil de modélisation dont l’ergonomie est particulièrement intéressante. Cette ergonomie permet de spécifier des raisonnements logiques de manière très intuitive c’est-à-dire sans nécessiter beaucoup de préalables techniques.
Vous n’avez ni besoin d’avoir préalablement formalisé votre vocabulaire, ni besoin d’avoir défini la structure de données, ni besoin d’avoir préalablement conçu votre modèle exécutable (XOM), ni non plus, besoin dans dans un premier temps, d’utiliser un langage formel prédéfini.

Dans une perspective de réappropriation de l’outil informatique par les métiers, le fait de  nécessiter peu de préalables est intéressant à plusieurs titres, il permet à de nombreux acteurs de démarrer sans beaucoup d’investissements intellectuels et  surtout il permet d’éviter ou de limiter le passage par des experts techniques souvent peu disponibles et pouvant, parfois, manquer d’expertise pédagogique.

Pour décrire votre logique vous utilisez une représentation arborescente et vous décrivez le sens de chaque noeud dans le langage de votre choix.
Un noeud de l’arbre équivaut à un test et une feuille à un résultat ou une action à lancer.
A tout moment vous pouvez écrire à côté du texte en clair un texte plus formel destiné à être interprété par la machine.

Bien que le formalisme “arbre de décisions” soit aussi utilisable avec jrules (ilog-ibm) ou de drools (red-hat). Cette approche est assez différente de celles de jrules (ilog-ibm) ou de drools (red-hat), elle est n’a pas que des avantages mais elle a celui de la simplicité. Les outils comme jrules ou drools ont plus tendance à nécessiter la mise en place préalable de domaines métiers (vocabulaire métier + structure objet ), sans pour autant d’ailleurs que ce soit indispensable.

Il faut signaler que visual rules n’utilise pas de moteur de règles à proprement parler, il permet d’éditer des règles sous des formes claires et lisibles, il permet de concevoir des logiques de décisions ou de raisonnement mais lorsque vous placez un test vous devez déterminer à l’avance où ce test ce déclenchera.



A titre d’exemple voici un arbre de décision qui permet de décider si une personne est ou n’est pas l’oncle d’une autre personne. La définition du concept “oncle” ou “tante” est réalisée à partir des relations de parenté “soeur”, frère, “fils” et fille.

Cette arborescence n’est pas exécutable au sens où les noeuds de l’arbre ne contiennent pas  encore de code formel (cet exercice sera réalisé dans un autre billet) mais elle constitue une première de familiarisation avec l’outil et avec la modélisation des logiques de raisonnement.

L’étape suivante est l’écriture d’expressions formelles avec son ensemble de préalables (structures de donnée, structures objets) exécutables par la machine. Cette deuxième étape aura tendance à remettre en cause, au moins partiellement une partie des travaux déjà réalisés. Que cela ne vous incite pas, pour autant,à sacrifier la première étape, elle est très utile pour éviter quelques allers-retours des plus ennuyeux !

jeudi 1 septembre 2011

Risques et arbre de décision

Les arbres de décisions, constituent un exemple de formalisme permettant de représenter des logiques de décisions.
S'ils sont réalisés à l'aide d'un BRMS ces arbres de décisions peuvent être directement exécutés par des machines au même titre qu'un programme informatique.

Voici un exemple simple d'arbre de décisions construit avec IBM Ilog jrules 7.1.
La logique présentée ici permet de décider si un particulier risque de se trouver en défaut de paiement.
Cette logique est une logique école et  n'a que peu d' intérêt en soi. La forme utilisée pour la représentée est le point qui nous intéresse.
La question qui mobilise notre attention est celle de l'intérêt de ce formalisme d'arbre par rapport  aux autres formalismes comme les tables ou de règles.
La logique de décisions présentée utilise ici trois conditions et aboutie à quatre conclusions.

Les trois conditions sont relatives :
- à l'ancienneté du client,
-  à la quantité d'incidents de paiement qu'il a rencontré,
- à son endettement.

Cet arbre équivaut à quatre règles :
1) Si le client est récent sa note est C.
2) Si le client est ancien et a connu beaucoup d'incidents sa note est B.
3) Si le client est ancien, n'a pas connu beaucoup d'incidents et est endetté sa note est A.
4) Si le client est ancien, n'a pas connu beaucoup d'incidents et n'est pas endetté sa note est AA.

Plus la note est proche de AAA plus la banque a confiance dans le particulier est une personne de confiance pour la banque.

Le formalisme d'arbre présenté a l'immense avantage sur le formalisme textuel d'être exécutable.
Le formalisme textuel a l'immense avantage d'être plus accessible et plus clair.

Il reste à prendre en compte le fait que je n'ai formalisé les règles sous forme de texte qu'après avoir formalisé l'arbre et que cet ordre de travail a très favorablement facilité l'écriture de règles simple à comprendre et logiquement ordonnées.

Il peut être intéressant de constater que les conditions utilisées pour évaluer le risque du particulier sont restées très floues : qu'est-ce qu'un client ancien ? à partir de combien les incidents sont nombreux ? à partir de quels critères doit-on considérer que qu'une personne est endettée ?

La réponse à chacune de ces questions est en soi un problème complexe que l'on peut ou non choisir d'automatiser. Et si l'on choisit de l'automatiser on peut à nouveau se poser la question du bon formalisme à utiliser.