urbanisation-si

urbanisation-si

Drools


Drools le moteur de règles métiers open source (BRMS) : le chaînage arrière (backward chaining)

drools-chainage-arriere-backward-chaining.png

 

Le chaînage arrière est piloté par les objectifs, dans le sens où on commence par la conclusion que le moteur de règles va essayer de satisfaire. 

S'il ne peut pas, il cherche des conclusions qu'il peut satisfaire.

C'est ce qu'on appelle des "sous-objectifs" qui peuvent satisfaire des parties inconnues de l'objectif courant.

Le processus continue jusqu'à ce que soit la conclusion initiale est prouvée ou soit il n'y a plus de sous-objectifs.

Prolog est un exemple de moteur de chaînage arrière.

Drools peut aussi faire du chaînage arrière en se référant aux requête de dérivation.

Avant, vous deviez faire un choix entre des systèmes comme OPS5 (chaînage avant) ou Prolog (chaînage arrière).

Aujourd'hui, les systèmes modernes fournissent les 2 types de raisonnement.

Il existe aussi d'autres techniques de raisonnement comme par exemple la logique floue.

Toutes ces techniques sont rassemblées sous l'appellation de Système de Raisonnement Hybride (Hybrid Reasoning Systems HRS).

L'intégration de la logique floue dans Drools est en train de se réaliser.

 

Rhona Maxwel

@rhona_helena

 

“Vouloir être de son temps, c’est déjà être dépassé.”
Eugène Ionesco

 

Voir aussi :  

 

https://tutorialsysml.wordpress.com/

//sysml-tutorial.tumblr.com/

//urbanisation-si.wix.com/blog

//urbanisme-si.wix.com/blog

//urbanisation-si.wix.com/urbanisation-si

//urbanisation-si.over-blog.com/

//rhonamaxwel.over-blog.com/

//urbanisation-des-si.blogspot.fr/

//bonnes-pratiques-si.eklablog.com/

//urbanisation-si.eklablog.com/


06/04/2016
0 Poster un commentaire

Drools le moteur de règles métiers open source (BRMS) : le chaînage avant (forward chaining)

drools-chainage-avant-forward-chaining.png

 

Le chaînage avant est un système d'inférence piloté par les données et ainsi réactif, les faits sont assertés dans la mémoire de travail et le résultat se traduit par l'activation de manière concurrente d'une ou plusieurs règles et planifiées pour exécution dans l'agenda.

En bref, on démarre avec un fait qui se propage à travers les règles et on termine par la conclusion.

 

Rhona Maxwel

@rhona_helena

 

“Ce n'est pas assez d'avoir l'esprit bon, mais le principal est de l'appliquer bien.”
René Descartes

 

Voir aussi :  

 

https://tutorialsysml.wordpress.com/

//sysml-tutorial.tumblr.com/

//urbanisation-si.wix.com/blog

//urbanisme-si.wix.com/blog

//urbanisation-si.wix.com/urbanisation-si

//urbanisation-si.over-blog.com/

//rhonamaxwel.over-blog.com/

//urbanisation-des-si.blogspot.fr/

//bonnes-pratiques-si.eklablog.com/

//urbanisation-si.eklablog.com/


06/04/2016
0 Poster un commentaire

Drools le moteur de règles métiers open source (BRMS) : Représentation des Connaissances et des Raisonnements (Knowledge Representation and Reasoning KRR)

drools-moteur-de-regles-metiers-open-source-BRMS-presentation-002.png

 

 

Représentation des Connaissances et des Raisonnements (Knowledge Representation and Reasoning KRR).

KRR est comment nous représentons notre connaissance sous forme symbolique, c'est-à-dire comment nous décrivons quelque chose.
Le raisonnement est comment nous allons penser en utilisant cette connaissance.

Avec les langages de programmation orientés objet comme le C++, Java, C#, …, on peut définir des modèles de données appelées classes pour modéliser la composition et le comportement d'entités.

Les occurrences des classes (modèles) sont appelées objets ou instances.

Cependant ces systèmes de classification ont été surtout conçus pour des raisons d’efficience informatique.

Au fil des ans les chercheurs ont développé des façons de plus en plus sophistiquées de représenter notre monde, comme le langage OWL (Web Ontology Language, Langage d'Ontologie Web). Il y a toujours un écart entre ce qui peut être théoriquement représenté et ce qui peut être utilisé par informatique, c'est pourquoi OWL possède des sous-langages différents. N'importe quel système de raisonnement ne peut pas supporter OWL complètement, des avancées algorithmiques continuent à réduire les écart et améliorer l'expressivité disponible pour le raisonnement des moteurs. 

Il y a aussi beaucoup d'algorithmes pour s’approcher des modes de raisonnement comme le chaînage avant (forward chaining) qui est réactif avec pilotage des données, le chaînage arrière (backward chaining), qui est passif avec pilotage de requêtes. Beaucoup d'autres types de techniques de raisonnement existent, augmentant le périmètre de ce qui peut être abordeé déclarativement. 

Pour comprendre le fonctionnement du BRMS open source Drools, il n’est pas nécessaire de maîtriser toutes les dernières recherches en Intelligence Artificielle (IA).

KRR est souvent mentionné comme le cœur de l’Intelligence artificielle. Même en utilisant des approches biologiques comme les réseaux neuronaux, KRR reste un sujet énorme et fascinant qui constitue la plus grande partie de la théorie de Drools. 

 

Un moteur de règles métiers est le programme informatique qui réalise KRR à un haut niveau, il a trois composants :

  • Ontologie
  • Règles
  • Données

L'ontologie est le modèle de représentation que nous utilisons pour nos "entités". On pourrait utiliser des "records" ou des classes Java ou OWL.

Les règles exécutent le raisonnement, c'est-à-dire, elles facilitent "la pensée".

A début Drools a commencé comme un moteur de règles de type spécifique appelé Système de Règle de Production (Production Rule System PRS) et a été basé autour de l'algorithme Rete (du latin rete réseau).
L'algorithme Rete, développé par Charles Forgy en 1974, forme le "cerveau" d'un PRS.
Le système peut exécuter un très grand nombre de règles et de faits.

Une Règle est une structure en deux parties : les faits correspondants à des conditions et les conclusions qui aboutissent aux actions.

when 
          <conditions>
then
          <actions>;

Le processus de correspondance des faits existants (ou nouveaux) par rapport aux règles est appelé "pattern matching" (schéma de correspondance) et est exécuté par le moteur d'inférence.
Les actions exécutées peuvent modifiées les données, comme un trigger de base de données et c'est pour cela qu'il s'agit d'une approche de raisonnement pilotée par les données.
Les actions elles-mêmes peuvent changer les données, qui pourraient à leur tour correspondre à d'autres règles et ainsi de suite, c'est ce qu'on appelle un algorithme de chaînage avant.
Drools version 5.x implémente et étend l'algorithme Rete. Cette extension est nommée ReteOO, qui signifie que Drools a une mise en œuvre améliorée et optimisée de l'algorithme Rete pour l'Orienté Objet.
Drools version 6.x présente un nouvel algorithme "paresseux" nommé PHREAK.

Les Règles sont stockées dans la mémoire de production (Production Memory) et les faits que le moteur d'inférence va faire correspondre se trouvent dans la mémoire de travail (Working Memory).
Les faits sont affirmés dans la mémoire de travail où ils peuvent alors être modifiés ou rétractés.
Un système avec un grand nombre de règles et des faits peut aboutir à un grand nombre de règles vérifiées pour la même affirmation ; on dit que ces règles sont en conflit.
L'agenda va gérer l'ordre d'exécution de ces règles contradictoires utilisant une stratégie de résolution de conflit.

 

Nous nous intéresserons dans un prochain article au système de raisonnement hybride (HRS Hybrid Reasoning System). 

  

Rhona Maxwel

@rhona_helena

 

"Originellement nous ne pensons que pour agir. C'est dans le moule de l'action que notre intelligence a été coulée. La spéculation est un luxe, tandis que l'action est une nécessité."
Henri Bergson

 

Voir aussi :  

 

https://tutorialsysml.wordpress.com/

//sysml-tutorial.tumblr.com/

//urbanisation-si.wix.com/blog

//urbanisme-si.wix.com/blog

//urbanisation-si.wix.com/urbanisation-si

//urbanisation-si.over-blog.com/

//rhonamaxwel.over-blog.com/

//urbanisation-des-si.blogspot.fr/

//bonnes-pratiques-si.eklablog.com/

//urbanisation-si.eklablog.com/


05/02/2016
0 Poster un commentaire

Drools le moteur de règles métiers open source (BRMS) : commençons par l'historique de l'Intelligence Artificielle (IA)

drools-moteur-de-regles-metiers-open-source-BRMS-historique-intelligence-artificielle-001.gif

Pour débuter cette série d'articles à venir sur le moteur de règles métiers open source Drools, faisons le point sur ce qui s'est passé dans le domaine de l’Intelligence Artificielle (IA).

Ces dernières décennies, l’Intelligence Artificielle (IA) est devenue un terme impopulaire, avec une période de « vaches maigres ». Un grand nombre de projets ont été abandonnés et la spirale infernale s’est déclenchée avec la diminution inéluctable des financements et  par voie de conséquence le désintérêt des scientifiques voir l’exemple de la société « Thinking Machines Corporation » (//en.wikipedia.org/wiki/Thinking_Machines_Corporation) et  celui de la  5ème génération d’ordinateur (//en.wikipedia.org/wiki/Fifth-generation_computer) qui est sans aucun doute le meilleur exemple de la banqueroute de l’IA.

 

La société « Thinking Machines Corporation » était l’une des sociétés à la pointe de l’Intelligence Artificielle  dans les années 1990, elle avait un CA de 65 millions de $. Voici une citation de sa plaquette commerciale :

"Un jour nous construirons une machine pensante. Ce sera une machine vraiment intelligente qui pourra, entendre et parler. Une machine qui sera fière de nous."

Et 5 ans plus tard elle déposa le bilan !

Le site inc.com a un article fascinant intitulé « l'Essor et déclin Thinking Machines Corporation »" (http: // www.inc.com/magazine/19950915/2622.html). L'article couvre la croissance de l'industrie et comment une relation confortable avec Thinking Machines Corporation  et le DARPA
(http: //en.wikipedia.org/wiki/DARPA) a surchauffé le marché, au point de l’écroulement. Il explique comment et pourquoi le commerce s'est éloigné de l’IA et vers le calcul plus pratique des supers ordinateurs.

Le budget d’un projet au Japon  de 5ème Génération d'Ordinateur était de 400 millions de $ pour construire un ordinateur de nouvelle génération. Les tubes étaient la première génération, les transistors la deuxième, les circuits intégrés la troisième et finalement les microprocesseurs étaient la quatrièmes. La cinquième était destinée pour être une machine capable d'Intelligence Artificielle efficiente. Ce projet a donné lieu à une course effrénée  entre le Royaume-Uni et les USA, qui ont causé une grande partie de la bulle de l’Intelligence Artificielle. La  5ème Génération d'Ordinateur fournirait le matériel de traitement parallèle pour un grand nombre d’unités centrales avec la représentation massive de connaissance et les algorithmes de raisonnement en langage Prolog (langage spécialisé dans les systèmes experts). Dès 1992 on a considéré le projet en échec et il a été arrêté. C'était l'entreprise commerciale primordiale pour Prolog. Beaucoup d'échecs étaient dus à des problèmes d'exécution de la logique Prolog basée sur le matériel massivement parallèle. Et depuis Prolog a été relégué au monde universitaire
(//www.dvorak.org/blog/whatever-happened-to-prolog/)

 

Cependant tandis que les recherches et les financements s’amenuisaient et que le terme Intelligence Artificielle tombait en désuétude, de nombreux autres domaines ont commencé à éclore et à de développer comme les systèmes cognitifs (cognitive systems), l’apprentissage automatique (machine learning), systèmes intelligents, représentation de connaissance et raisonnement (Knowledge Representation and Reasoning KRR). C’est alors que l’on a vu apparaître les BRMS (Business Rules Managment System), on parle aussi de moteur de règles métiers sur le marché.

 

Les langages impératifs comme le C, C++, Java, C# et bien d’autres encore ont dominé les 30 dernières années grâce à leurs excellentes performances de compilation et d’exécution.

 

En 2005 une renaissance a eu lieu dans le domaine de l’Intelligence Artificielle (//www.computerworld.com/s/article/99691/Spring_comes_to_AI_winter), stimulée par les spectaculaires progrès des technologies et leurs baisses des coûts faramineuses ainsi que dans la recherche fondamentale en IA.

Les dernières années ont vu une révolution tant dans le contenu que dans la méthodologie de travail dans l'Intelligence Artificielle.

 

Les réseaux neuronaux, l'apprentissage automatique (machine learning) et la représentation de connaissance et le raisonnement (KRR Knowledge Representation and Reasoning) ont fait d’énormes progrès et se retrouvent maintenant dans des produits commerciaux.

 

En mai 1997, a eu lieu le match historique en six parties entre Deep Blue (dont les composants et le programme informatique ont été améliorés ; surnommé « Deeper Blue » à cette occasion) et Kasparov. Pour la première fois de l'histoire, le champion du monde doit s'incliner contre l'ordinateur, sur le score de 2½ à 3½ .

Aujourd’hui les voitures sans chauffeur sont en phase finale de tests et sur le point d’être commercialisées.

 

Et tout récemment, le coup de maître dans l’univers de l’intelligence artificielle. Pour la première fois, un ordinateur a battu un joueur de go professionnel. Il s’agit de Google DeepMind avec leur algorithme, AlphaGo, qui a battu l’actuel champion européen, Fan Hui, par cinq victoires à zéro en octobre 2015 à Londres. Il n’a en outre perdu qu’une partie sur 500 contre les meilleurs programmes déjà sur le marché. Fan Hui a, lui, mieux résisté dans des parties rapides, perdant 3 à 2.

 

A présent, l’IA vit bien sa période de "vaches grasses" avec tous les géants de l’IT comme Google, Facebook, Microsoft, IBM, … qui se livrent une guerre impitoyable à coup d’annonces sensationnelles. Il est évident que l’IA devient incontournable, elle se démocratise par la mise à disposition en open source des algorithmes. Les objectifs les plus fous sont en train de devenir des réalités à tel point que des scientifiques de renom, tel le célèbre physicien Stephen Hawking, voient en l’avènement de ces technologies un danger pour la race humaine ...

  

Rhona Maxwel

@rhona_helena

 

"Les gens qui ont perdu tout espoir ressemblent à des lieux profanés, à des maisons cambriolées. Un dédale de mises à sac, de lumières éteintes, de portes fracturées. Des courants d'air que rien n'arrête. Du silence et du vide."
Marie-Sabine Roger

 

Voir aussi :  

 

https://tutorialsysml.wordpress.com/

//sysml-tutorial.tumblr.com/

//urbanisation-si.wix.com/blog

//urbanisme-si.wix.com/blog

//urbanisation-si.wix.com/urbanisation-si

//urbanisation-si.over-blog.com/

//rhonamaxwel.over-blog.com/

//urbanisation-des-si.blogspot.fr/

//bonnes-pratiques-si.eklablog.com/

//urbanisation-si.eklablog.com/


03/02/2016
0 Poster un commentaire