2012-07-02   Soat: Drools Expert   1
2012-07-02   Soat: Drools Expert   2
De quoi allons nous parler?⦿ Quand le moteur de règles vous sauve ?        ⦿ Et quand il ne vous sauvera pas…⦿ Comment écr...
IA: symboliste VS connexioniste⦿ Symboliste:        ⦿ Raisonnement logique        ⦿ Apogée: systèmes expert        ⦿ Nuanc...
JBoss Drools⦿ Drools Expert: le moteur⦿ Drools Guvnor: le BRMS⦿ Drools jBPM: ordonnancer les packages⦿ Drools Fusion: gest...
JBoss Drools2012-07-02                  Soat: Drools Expert   6
JBoss Drools2012-07-02                  Soat: Drools Expert   7
Quand s’en servir?⦿ Le rêve du BA autonome:        ⦿ Change oriented Application        ⦿ IT pour le socle, BA pour les rè...
Quand ne pas s’en servir?⦿ Peu de faits peu de règles⦿ Quand chaque octet compte⦿ Quand les faits changent⦿ Quand les règl...
Présentation de l’application2012-07-02                Soat: Drools Expert   10
Avengers: des gens bien⦿ Données de référentiel:        ⦿ Valider les informations        ⦿ Ajouter une erreur fonctionnel...
Première étape: Ecrire le moteur2012-07-02               Soat: Drools Expert    12
Première étape: Ecrire le moteur⦿ KnowledgeBuilder:        ⦿ Ajouter les règles        ⦿ Vérifier la compilation⦿ Knowledg...
Deuxième étape: coder les règles⦿ Import⦿ Déclarations et global⦿ LHS:        ⦿ Ne pas penser en terme de boucles        ⦿...
Sélection des éléments⦿ Moyens:        ⦿ Class (conditions)        ⦿ Eval et fonctions externes⦿ Autres utilisations:     ...
Interfaces avec les règles⦿ Utilisation de global:        ⦿ Objets déclarés dans la knowledge base        ⦿ Récupérables a...
Utilisation de la working memory⦿ Mémoire partagée:        ⦿ Chaque règle peut l’utiliser        ⦿ On utilise un FactHandl...
From⦿ From accumulate: le couteau suisse        ⦿ Conditions sur une seule classe        ⦿ Initialisations        ⦿ Boucle...
Les pièges à considérer⦿ Boucler:        ⦿ Ajouter un fait en WM        ⦿ Risque de boucle au delete⦿ Coder deux règles (s...
A suivre… L’arbre de Rete2012-07-02            Soat: Drools Expert   20
Les types de noeuds⦿ Les nœuds alpha        ⦿ Sélection de faits individuels        ⦿ Object Type Node: Choisir sa classe ...
RETE: le graphe des noeuds2012-07-02               Soat: Drools Expert   22
Attendez, si vous êtes encore             réveillés, il reste la logique floue2012-07-02                 Soat: Drools Expe...
D’autres façons de penser2012-07-02               Soat: Drools expert   24
Utilisation de la logique floue⦿ Exemple: Validation d’un référentiel BO        ⦿ Evolution du forex EUR/USD        ⦿ Règl...
Les contrôleurs flous⦿       Source: Franck Dernoncourt (developpez.com)2012-07-02                                        ...
Fuzzification: la partie difficile⦿ Trouver les fonctions de fuzzyfication idoines⦿ Solutions:        ⦿ Ranking, modèles  ...
Raisonner en logique floue                       Soat: Drools Expert. Source: Franck2012-07-02                            ...
Merci2012-07-02    Soat: Drools Expert   29
Prochain SlideShare
Chargement dans…5
×

3 t drools

950 vues

Publié le

0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
950
Sur SlideShare
0
Issues des intégrations
0
Intégrations
5
Actions
Partages
0
Téléchargements
40
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

3 t drools

  1. 1. 2012-07-02 Soat: Drools Expert 1
  2. 2. 2012-07-02 Soat: Drools Expert 2
  3. 3. De quoi allons nous parler?⦿ Quand le moteur de règles vous sauve ? ⦿ Et quand il ne vous sauvera pas…⦿ Comment écrire un moteur?⦿ Comment écrire des règles?⦿ Au delà des règles standards?2012-07-02 Soat: Drools Expert 3
  4. 4. IA: symboliste VS connexioniste⦿ Symboliste: ⦿ Raisonnement logique ⦿ Apogée: systèmes expert ⦿ Nuance: la logique floue⦿ Connexioniste: ⦿ Emergence ⦿ Réseaux de neurones2012-07-02 Soat: Drools Expert 4
  5. 5. JBoss Drools⦿ Drools Expert: le moteur⦿ Drools Guvnor: le BRMS⦿ Drools jBPM: ordonnancer les packages⦿ Drools Fusion: gestion des événements⦿ Drools Planner: planifier (NP Complet donc heuristique)2012-07-02 Soat: Drools Expert 5
  6. 6. JBoss Drools2012-07-02 Soat: Drools Expert 6
  7. 7. JBoss Drools2012-07-02 Soat: Drools Expert 7
  8. 8. Quand s’en servir?⦿ Le rêve du BA autonome: ⦿ Change oriented Application ⦿ IT pour le socle, BA pour les règles⦿ Adapté aux gros volumes: ⦿ Algorithme de RETE ⦿ Peu de modifications de faits⦿ Exemple: AAPT ⦿ Développé par Sungard ⦿ Validation Back office2012-07-02 Soat: Drools Expert 8
  9. 9. Quand ne pas s’en servir?⦿ Peu de faits peu de règles⦿ Quand chaque octet compte⦿ Quand les faits changent⦿ Quand les règles interagissent les unes avec les autres (working memory)⦿ Quand les seuils sont stratégiques⦿ NE PAS utiliser les DSL⦿ NE PAS utiliser la version .Net2012-07-02 Soat: Drools Expert 9
  10. 10. Présentation de l’application2012-07-02 Soat: Drools Expert 10
  11. 11. Avengers: des gens bien⦿ Données de référentiel: ⦿ Valider les informations ⦿ Ajouter une erreur fonctionnelle⦿ Une initiative éthique: ⦿ Prendre la moyenne M des salaires ⦿ Pour chaque personne P ⦿ Si le salaire est inférieur à 0,5M ⦿ Si le salaire est supérieur à 2M ⦿ Ajouter une erreur fonctionnelle2012-07-02 Soat: Drools Expert 11
  12. 12. Première étape: Ecrire le moteur2012-07-02 Soat: Drools Expert 12
  13. 13. Première étape: Ecrire le moteur⦿ KnowledgeBuilder: ⦿ Ajouter les règles ⦿ Vérifier la compilation⦿ KnowledgeBase: ⦿ Définir les packages à exécuter⦿ Les sessions: ⦿ Stateless: un seul déclenchement ⦿ Statefull: les faits restent en mémoire2012-07-02 Soat: Drools Expert 13
  14. 14. Deuxième étape: coder les règles⦿ Import⦿ Déclarations et global⦿ LHS: ⦿ Ne pas penser en terme de boucles ⦿ $var : Class( conditions, $var: attribute)⦿ RHS: ⦿ Java ⦿ Accès à la working memory⦿ Fonctions ⦿ Utilisation de function2012-07-02 Soat: Drools Expert 14
  15. 15. Sélection des éléments⦿ Moyens: ⦿ Class (conditions) ⦿ Eval et fonctions externes⦿ Autres utilisations: ⦿ Calcul de moyenne ⦿ Construction d’ensembles ⦿ Vérifier qu’une règle n’a pas été exécutée2012-07-02 Soat: Drools Expert 15
  16. 16. Interfaces avec les règles⦿ Utilisation de global: ⦿ Objets déclarés dans la knowledge base ⦿ Récupérables après exécution⦿ Passer des faits en paramètres:⦿ Déclarer des structures: ⦿ POJO utilisables ⦿ Manipulables avec FactType2012-07-02 Soat: Drools Expert 16
  17. 17. Utilisation de la working memory⦿ Mémoire partagée: ⦿ Chaque règle peut l’utiliser ⦿ On utilise un FactHandler, pas un objet⦿ Arbre de RETE: ⦿ Alpha node. Ex: getName().equals(« Stark ») ⦿ Beta node: a.getName().equals(b.getName()) ⦿ Global node: not exists ⦿ Reconstruit à chaque modification de la WM2012-07-02 Soat: Drools Expert 17
  18. 18. From⦿ From accumulate: le couteau suisse ⦿ Conditions sur une seule classe ⦿ Initialisations ⦿ Boucle for ⦿ Retract ⦿ Result⦿ Autres from ⦿ From collect, from2012-07-02 Soat: Drools Expert 18
  19. 19. Les pièges à considérer⦿ Boucler: ⦿ Ajouter un fait en WM ⦿ Risque de boucle au delete⦿ Coder deux règles (si alors sinon) ⦿ Prendre l’ensemble des faits qui matchent ⦿ Dans le then, séparer les cas⦿ Attention: des surprises avec l’Agenda ⦿ Utiliser la salience2012-07-02 Soat: Drools Expert 19
  20. 20. A suivre… L’arbre de Rete2012-07-02 Soat: Drools Expert 20
  21. 21. Les types de noeuds⦿ Les nœuds alpha ⦿ Sélection de faits individuels ⦿ Object Type Node: Choisir sa classe ⦿ Hiérarchie de classes par condition⦿ Les nœuds Beta: ⦿ Nœuds de jointure ⦿ Exemple: Person(name == p.name)⦿ Memory Node: ⦿ Alpha: référence vers les faits qui matchent ⦿ Beta: référence vers les tuples qui matchent2012-07-02 Soat: Drools Expert 21
  22. 22. RETE: le graphe des noeuds2012-07-02 Soat: Drools Expert 22
  23. 23. Attendez, si vous êtes encore réveillés, il reste la logique floue2012-07-02 Soat: Drools Expert 23
  24. 24. D’autres façons de penser2012-07-02 Soat: Drools expert 24
  25. 25. Utilisation de la logique floue⦿ Exemple: Validation d’un référentiel BO ⦿ Evolution du forex EUR/USD ⦿ Règle: ramené sur 5j, évolution < 1,0% ⦿ Quelle différence entre 0,99 et 1,01?⦿ Exemple: stratégie momentum ⦿ Vendre les titres qui ont un faible rendement depuis longtemps ⦿ Acheter les titres ayant un rendement élevé depuis peu de temps2012-07-02 Soat: Drools Expert 25
  26. 26. Les contrôleurs flous⦿ Source: Franck Dernoncourt (developpez.com)2012-07-02 Soat: Drools Expert 26
  27. 27. Fuzzification: la partie difficile⦿ Trouver les fonctions de fuzzyfication idoines⦿ Solutions: ⦿ Ranking, modèles ⦿ Apprentissage (réseaux de neurones)⦿ Exemple:2012-07-02 Soat: Drools Expert 27
  28. 28. Raisonner en logique floue Soat: Drools Expert. Source: Franck2012-07-02 28 Dernoncourt, developpez.com
  29. 29. Merci2012-07-02 Soat: Drools Expert 29

×