SlideShare une entreprise Scribd logo
1  sur  17
*


Réalisé par :
Zaibi Mohammed
*
*Historique d’inférences
*Pourquoi recourir à un moteur de règles ?
*Programmation logique
*Résumé d’un comparatif des moteurs de règles
*Drools: Moteurs de règles
    * Offre Drools
      *   Expert, Flow (jBpm), Planer, Fusion(Event Processing), (BRMS/BPMS)
    * Les alternatives
*Démonstration
*
* Moteur de règles est un système capable
    * de définir des règles (= traitement)
    * et de les appliquer à des faits ( = données)
* Moteur d’Inférence
    * opération mentale, ou jugement, qui consiste à tirer une
      conclusion
       * sur des propositions tenues pour vraies (prémisses)
       * à partir de règles de base
       * en concluant à la vérité
*   3 types d'inférence :
    * la déduction : utiliser dans la programmation logique
    * l'induction : loi générale à partir d’observations
    * l'abduction : hypothèse explicative d’une observation      Charles Sanders Peirce
      formalisés par Peirce en 1903                               Philosophe américain
                                                                        1839-1914
                                              3
*

        Programmer           • Dire « ce que je fais » plutôt que « comment je fais »

    de manière déclarative   • Décrire les règles métiers sous une forme compréhensible par les personnes




                             • Les règles métiers du code de l’application
         Externaliser
                             • Les règles métiers deviennent indépendantes de la génération du logiciel




      Appliquer à chaud      • Un changement des règles métiers au sein de l’application




                             • Proposer une interface utilisateur pour administrer les règles métiers
         Administrer
                             • Créer de la souplesse au niveau de l’administration




    Centraliser la gestion   • Centraliser les règles métiers dans un dépôt particulier
                             • Centraliser la gestion de la connaissance
                             • Partager avec d’autres applications
     de la connaissance      • Conserver et ré-exploiter l’historique des règles métiers
                                                   4
*
    *   Moteur d’inférence
         * Séparer les traitements des données (Règles et faits)
         * Faire de la programmation déclarative (qu’est ce que je fais plutôt
           que comment je fais)
         * Rapidité et dimensionnement (l’algorithme RETE pour trouver les
           règles en fonction de vos objets métiers)
         * Centralisation et gestion de la connaissance (règles compréhensible
           par l’humain)




                                           5
*
    *Solutions envisagées:




    *Solutions écartées:
      * Jess « Licence commerciale, pas utilisable pour un site eCommerce
       commerciale »
      * Groovy Rules « Pas prêt pour la production »
                                           6
*
    *Drools – superstar mais trop complexe




                               7
*
    *Java Rules Engines, exemple de règle:




    *Dommage de faire du XML pour faire des if/then/else
                               8
*
    *Java Rules Engines




                          9
*




    10
*
    * Expert
      * Contient l’implémentation du moteur
        * algorithme de RETE
      * La gestion des règles
        * Langage MVEL
      * Permet de lancer le moteur en java
        À partir de fichier
        * DRL : liste des règles
        * DSL : contient le langage métier si utiliser
        * DSLR : liste des règles en langage DSL


                                         11
*
    * Démonstration
      * smart-content-selection




                                  12
*
    * Guvnor
      * Gère les règles suivant différents environnements
      * Avec une interface graphique
      * Se repose sur Drools Expert
      * Hiérarchisation des règles
    * Qui peut utiliser Guvnor
      * Expert fonctionnel
      * Expert ou administrateurs de règles
      * Développeurs
    * Quand utiliser Guvnor
      * Gérer des versions et des déploiements
      * Ne pas appeler les développeurs
      * Non lié au déploiement du cœur applicatif
                                     13
*
    * Guvnor – interface d’administration Web (Business Rules
     Management System)




                                  14
*
    * Drools Planner
      * Moteur de planification automatique
        * grâce à la définition de contraintes
        * solver calcule et propose des solutions




                                        15
*
    * jBPM/ Flow – Moteur de workflow
      * Les règles peuvent être écrite en MVEL (ou java)
      * Le moteur d’inférence est celui de Drools




                                     16
*
    * Fusion – Gestion des événements
      * Centré sur le timing des événements
      * Cas d’utilisation
        * Bourse : trading
        * Tarif téléphonique
        * Détection de fraude
        *…




    * Algorithme CEP
      * Complex Event Processing
      * système d’évènement proche de CEP avec la possibilité de
       gérer des évènement changeant dans le temps.
                                  17

Contenu connexe

Tendances

Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2
Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2
Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2
Sofien Benrhouma
 
Mise en oeuvre des Frameworks de Machines et Deep Learning pour les Applicati...
Mise en oeuvre des Frameworks de Machines et Deep Learning pour les Applicati...Mise en oeuvre des Frameworks de Machines et Deep Learning pour les Applicati...
Mise en oeuvre des Frameworks de Machines et Deep Learning pour les Applicati...
ENSET, Université Hassan II Casablanca
 

Tendances (20)

Intelligence Artificielle - Algorithmes de recherche
Intelligence Artificielle - Algorithmes de rechercheIntelligence Artificielle - Algorithmes de recherche
Intelligence Artificielle - Algorithmes de recherche
 
Intelligence Artificielle : Introduction à l'intelligence artificielle
Intelligence Artificielle : Introduction à l'intelligence artificielleIntelligence Artificielle : Introduction à l'intelligence artificielle
Intelligence Artificielle : Introduction à l'intelligence artificielle
 
Algorithmes de jeux
Algorithmes de jeuxAlgorithmes de jeux
Algorithmes de jeux
 
Smart house Project - v1.1 - cahier de charge fonctionnel
Smart house Project - v1.1 - cahier de charge fonctionnelSmart house Project - v1.1 - cahier de charge fonctionnel
Smart house Project - v1.1 - cahier de charge fonctionnel
 
Presentation PFE
Presentation PFEPresentation PFE
Presentation PFE
 
ROBOT à base d'Android - Rapport PFE
ROBOT à base d'Android - Rapport PFEROBOT à base d'Android - Rapport PFE
ROBOT à base d'Android - Rapport PFE
 
L’intelligence artificielle
L’intelligence artificielleL’intelligence artificielle
L’intelligence artificielle
 
Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...
 
Intelligence Artificielle - Systèmes experts
Intelligence Artificielle - Systèmes expertsIntelligence Artificielle - Systèmes experts
Intelligence Artificielle - Systèmes experts
 
Rapport de stage d'été
Rapport de stage d'étéRapport de stage d'été
Rapport de stage d'été
 
Base des données réparties
Base des données répartiesBase des données réparties
Base des données réparties
 
Ma présentation PFE : Application Android & Site Web
Ma présentation PFE : Application Android & Site WebMa présentation PFE : Application Android & Site Web
Ma présentation PFE : Application Android & Site Web
 
Cours 1 : introduction a l'ergonomie logicielle
Cours 1 :  introduction a l'ergonomie logicielleCours 1 :  introduction a l'ergonomie logicielle
Cours 1 : introduction a l'ergonomie logicielle
 
Chp1 - Introduction aux méthodologies de Conception
Chp1 - Introduction aux méthodologies de ConceptionChp1 - Introduction aux méthodologies de Conception
Chp1 - Introduction aux méthodologies de Conception
 
Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2
Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2
Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2
 
MVVM de A à Z
MVVM de A à ZMVVM de A à Z
MVVM de A à Z
 
Application web de gestion de recrutement- Recruitement managment system
Application web de gestion de recrutement- Recruitement managment systemApplication web de gestion de recrutement- Recruitement managment system
Application web de gestion de recrutement- Recruitement managment system
 
Mise en oeuvre des Frameworks de Machines et Deep Learning pour les Applicati...
Mise en oeuvre des Frameworks de Machines et Deep Learning pour les Applicati...Mise en oeuvre des Frameworks de Machines et Deep Learning pour les Applicati...
Mise en oeuvre des Frameworks de Machines et Deep Learning pour les Applicati...
 
Maisons Intelligentes ( Projet bibliographique )
Maisons Intelligentes ( Projet bibliographique ) Maisons Intelligentes ( Projet bibliographique )
Maisons Intelligentes ( Projet bibliographique )
 
SMART Home Rapport
SMART Home RapportSMART Home Rapport
SMART Home Rapport
 

En vedette

105 langevin xavier ia(intelligence artificielle)
105 langevin xavier ia(intelligence artificielle)105 langevin xavier ia(intelligence artificielle)
105 langevin xavier ia(intelligence artificielle)
Xavier Langevin
 

En vedette (20)

Présentation intelligence artificielle et domaines dapplications
Présentation intelligence artificielle et domaines dapplicationsPrésentation intelligence artificielle et domaines dapplications
Présentation intelligence artificielle et domaines dapplications
 
Vers un monde digital plus intelligent
Vers un monde digital plus intelligentVers un monde digital plus intelligent
Vers un monde digital plus intelligent
 
105 langevin xavier ia(intelligence artificielle)
105 langevin xavier ia(intelligence artificielle)105 langevin xavier ia(intelligence artificielle)
105 langevin xavier ia(intelligence artificielle)
 
Polymorphisme, interface et classe abstraite
Polymorphisme, interface et classe abstraitePolymorphisme, interface et classe abstraite
Polymorphisme, interface et classe abstraite
 
Programmation orientée objet : Object, classe et encapsulation
Programmation orientée objet : Object, classe et encapsulationProgrammation orientée objet : Object, classe et encapsulation
Programmation orientée objet : Object, classe et encapsulation
 
HTML, CSS et Javascript
HTML, CSS et JavascriptHTML, CSS et Javascript
HTML, CSS et Javascript
 
Composition, agrégation et immuabilité
Composition, agrégation et immuabilitéComposition, agrégation et immuabilité
Composition, agrégation et immuabilité
 
Python avancé : Lecture et écriture de fichiers
Python avancé : Lecture et écriture de fichiersPython avancé : Lecture et écriture de fichiers
Python avancé : Lecture et écriture de fichiers
 
Type abstrait de données
Type abstrait de donnéesType abstrait de données
Type abstrait de données
 
Héritage et redéfinition de méthode
Héritage et redéfinition de méthodeHéritage et redéfinition de méthode
Héritage et redéfinition de méthode
 
Python avancé : Classe et objet
Python avancé : Classe et objetPython avancé : Classe et objet
Python avancé : Classe et objet
 
Développement informatique : Algorithmique I : Récursion et arbre
Développement informatique : Algorithmique I : Récursion et arbreDéveloppement informatique : Algorithmique I : Récursion et arbre
Développement informatique : Algorithmique I : Récursion et arbre
 
Introduction à la formation Digitalent
Introduction à la formation DigitalentIntroduction à la formation Digitalent
Introduction à la formation Digitalent
 
Développement informatique : Chaines de caractères et expressions regulières
Développement informatique : Chaines de caractères et expressions regulièresDéveloppement informatique : Chaines de caractères et expressions regulières
Développement informatique : Chaines de caractères et expressions regulières
 
Arbre et algorithme de recherche
Arbre et algorithme de rechercheArbre et algorithme de recherche
Arbre et algorithme de recherche
 
Développement informatique : Gestion de projet, versioning, debugging, testin...
Développement informatique : Gestion de projet, versioning, debugging, testin...Développement informatique : Gestion de projet, versioning, debugging, testin...
Développement informatique : Gestion de projet, versioning, debugging, testin...
 
Programmation de systèmes embarqués : BeagleBone Black et Linux embarqué
Programmation de systèmes embarqués : BeagleBone Black et Linux embarquéProgrammation de systèmes embarqués : BeagleBone Black et Linux embarqué
Programmation de systèmes embarqués : BeagleBone Black et Linux embarqué
 
Développement informatique : Programmation fonctionnelle, décorateur et génér...
Développement informatique : Programmation fonctionnelle, décorateur et génér...Développement informatique : Programmation fonctionnelle, décorateur et génér...
Développement informatique : Programmation fonctionnelle, décorateur et génér...
 
Python avancé : Interface graphique et programmation évènementielle
Python avancé : Interface graphique et programmation évènementiellePython avancé : Interface graphique et programmation évènementielle
Python avancé : Interface graphique et programmation évènementielle
 
Développement informatique : Programmation réseau
Développement informatique : Programmation réseauDéveloppement informatique : Programmation réseau
Développement informatique : Programmation réseau
 

Similaire à Intelligence artificielle

#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter
Atsé François-Xavier KOBON
 
Université de la performance - Devoxx France
Université de la performance - Devoxx FranceUniversité de la performance - Devoxx France
Université de la performance - Devoxx France
Marc Bojoly
 
Audit openERP 7.0: Mise en place &Optimisation de Performances
Audit openERP 7.0: Mise en place &Optimisation de Performances Audit openERP 7.0: Mise en place &Optimisation de Performances
Audit openERP 7.0: Mise en place &Optimisation de Performances
Firas Kouẞàa
 

Similaire à Intelligence artificielle (20)

Introduction aux BRMS
Introduction aux BRMSIntroduction aux BRMS
Introduction aux BRMS
 
Trouver le chemin des bonnes pratiques
Trouver le chemin des bonnes pratiquesTrouver le chemin des bonnes pratiques
Trouver le chemin des bonnes pratiques
 
Comment choisir le bon système d'exploitation pour un système embarqué.pdf
Comment choisir le bon système d'exploitation pour un système embarqué.pdfComment choisir le bon système d'exploitation pour un système embarqué.pdf
Comment choisir le bon système d'exploitation pour un système embarqué.pdf
 
Présentation Rex GWT 2.0
Présentation Rex GWT 2.0Présentation Rex GWT 2.0
Présentation Rex GWT 2.0
 
Openerp
OpenerpOpenerp
Openerp
 
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter
 
Alphorm.com support de la formation Drupal 8 webmaster configurateur
Alphorm.com support de la formation Drupal 8 webmaster configurateurAlphorm.com support de la formation Drupal 8 webmaster configurateur
Alphorm.com support de la formation Drupal 8 webmaster configurateur
 
Les framework mvc
Les framework mvcLes framework mvc
Les framework mvc
 
Capacity Planning : Pratiques et outils pour regarder la foudre tomber sans p...
Capacity Planning : Pratiques et outils pour regarder la foudre tomber sans p...Capacity Planning : Pratiques et outils pour regarder la foudre tomber sans p...
Capacity Planning : Pratiques et outils pour regarder la foudre tomber sans p...
 
X-Rules - FR
X-Rules - FRX-Rules - FR
X-Rules - FR
 
MongoDB .pptx
MongoDB .pptxMongoDB .pptx
MongoDB .pptx
 
Université de la performance - Devoxx France
Université de la performance - Devoxx FranceUniversité de la performance - Devoxx France
Université de la performance - Devoxx France
 
Perf university
Perf universityPerf university
Perf university
 
Cours 1 les principes de base
Cours 1 les principes de baseCours 1 les principes de base
Cours 1 les principes de base
 
Audit openERP 7.0: Mise en place &Optimisation de Performances
Audit openERP 7.0: Mise en place &Optimisation de Performances Audit openERP 7.0: Mise en place &Optimisation de Performances
Audit openERP 7.0: Mise en place &Optimisation de Performances
 
L’informatique efficience
L’informatique efficienceL’informatique efficience
L’informatique efficience
 
10 astuces que vous pouvez faire dès maintenant pour améliorer la performance...
10 astuces que vous pouvez faire dès maintenant pour améliorer la performance...10 astuces que vous pouvez faire dès maintenant pour améliorer la performance...
10 astuces que vous pouvez faire dès maintenant pour améliorer la performance...
 
Symfony2: 30 astuces et bonnes pratiques
Symfony2: 30 astuces et bonnes pratiquesSymfony2: 30 astuces et bonnes pratiques
Symfony2: 30 astuces et bonnes pratiques
 
OpenNMS
OpenNMSOpenNMS
OpenNMS
 
Saas Libre
Saas LibreSaas Libre
Saas Libre
 

Intelligence artificielle

  • 2. * *Historique d’inférences *Pourquoi recourir à un moteur de règles ? *Programmation logique *Résumé d’un comparatif des moteurs de règles *Drools: Moteurs de règles * Offre Drools * Expert, Flow (jBpm), Planer, Fusion(Event Processing), (BRMS/BPMS) * Les alternatives *Démonstration
  • 3. * * Moteur de règles est un système capable * de définir des règles (= traitement) * et de les appliquer à des faits ( = données) * Moteur d’Inférence * opération mentale, ou jugement, qui consiste à tirer une conclusion * sur des propositions tenues pour vraies (prémisses) * à partir de règles de base * en concluant à la vérité * 3 types d'inférence : * la déduction : utiliser dans la programmation logique * l'induction : loi générale à partir d’observations * l'abduction : hypothèse explicative d’une observation Charles Sanders Peirce formalisés par Peirce en 1903 Philosophe américain 1839-1914 3
  • 4. * Programmer • Dire « ce que je fais » plutôt que « comment je fais » de manière déclarative • Décrire les règles métiers sous une forme compréhensible par les personnes • Les règles métiers du code de l’application Externaliser • Les règles métiers deviennent indépendantes de la génération du logiciel Appliquer à chaud • Un changement des règles métiers au sein de l’application • Proposer une interface utilisateur pour administrer les règles métiers Administrer • Créer de la souplesse au niveau de l’administration Centraliser la gestion • Centraliser les règles métiers dans un dépôt particulier • Centraliser la gestion de la connaissance • Partager avec d’autres applications de la connaissance • Conserver et ré-exploiter l’historique des règles métiers 4
  • 5. * * Moteur d’inférence * Séparer les traitements des données (Règles et faits) * Faire de la programmation déclarative (qu’est ce que je fais plutôt que comment je fais) * Rapidité et dimensionnement (l’algorithme RETE pour trouver les règles en fonction de vos objets métiers) * Centralisation et gestion de la connaissance (règles compréhensible par l’humain) 5
  • 6. * *Solutions envisagées: *Solutions écartées: * Jess « Licence commerciale, pas utilisable pour un site eCommerce commerciale » * Groovy Rules « Pas prêt pour la production » 6
  • 7. * *Drools – superstar mais trop complexe 7
  • 8. * *Java Rules Engines, exemple de règle: *Dommage de faire du XML pour faire des if/then/else 8
  • 9. * *Java Rules Engines 9
  • 10. * 10
  • 11. * * Expert * Contient l’implémentation du moteur * algorithme de RETE * La gestion des règles * Langage MVEL * Permet de lancer le moteur en java À partir de fichier * DRL : liste des règles * DSL : contient le langage métier si utiliser * DSLR : liste des règles en langage DSL 11
  • 12. * * Démonstration * smart-content-selection 12
  • 13. * * Guvnor * Gère les règles suivant différents environnements * Avec une interface graphique * Se repose sur Drools Expert * Hiérarchisation des règles * Qui peut utiliser Guvnor * Expert fonctionnel * Expert ou administrateurs de règles * Développeurs * Quand utiliser Guvnor * Gérer des versions et des déploiements * Ne pas appeler les développeurs * Non lié au déploiement du cœur applicatif 13
  • 14. * * Guvnor – interface d’administration Web (Business Rules Management System) 14
  • 15. * * Drools Planner * Moteur de planification automatique * grâce à la définition de contraintes * solver calcule et propose des solutions 15
  • 16. * * jBPM/ Flow – Moteur de workflow * Les règles peuvent être écrite en MVEL (ou java) * Le moteur d’inférence est celui de Drools 16
  • 17. * * Fusion – Gestion des événements * Centré sur le timing des événements * Cas d’utilisation * Bourse : trading * Tarif téléphonique * Détection de fraude *… * Algorithme CEP * Complex Event Processing * système d’évènement proche de CEP avec la possibilité de gérer des évènement changeant dans le temps. 17