35
1 Patrice Bellot Agents intelligents en Java [email protected] DESS Commerce Électronique / DESS TAII 2002/03

Agents intelligents en Java - Freebigbozoid.free.fr/CoursIUT/SCO/PARTIE 2 - INTELLIGENCE ARTIFICIELLE/04... · • JADE (CSELT S.p.A., Italie) – À coupler avec FIPA – Outils

  • Upload
    others

  • View
    7

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Agents intelligents en Java - Freebigbozoid.free.fr/CoursIUT/SCO/PARTIE 2 - INTELLIGENCE ARTIFICIELLE/04... · • JADE (CSELT S.p.A., Italie) – À coupler avec FIPA – Outils

1Patrice Bellot

Agents intelligents en Java

[email protected] Commerce Électronique / DESS TAII

2002/03

Page 2: Agents intelligents en Java - Freebigbozoid.free.fr/CoursIUT/SCO/PARTIE 2 - INTELLIGENCE ARTIFICIELLE/04... · • JADE (CSELT S.p.A., Italie) – À coupler avec FIPA – Outils

2Patrice Bellot

Intelligence artificielle

• Début dans les années 50• Langages de choix : Lisp, Prolog, Smalltalk

– Exemple en Prolog II :• Homme (Pierre) ; Homme (Pierrot)• Femme (Pierrette)• Fils (Pierre, Pierrot) ; Fils (Pierre, Pierrette)• Père (X,Y) : Homme(X), Fils (Y,X)

• ? Père (Pierrot, Pierre) : Oui• ? Père (X, Pierre) : {X = Pierrot}

Règles

Résolutions

Page 3: Agents intelligents en Java - Freebigbozoid.free.fr/CoursIUT/SCO/PARTIE 2 - INTELLIGENCE ARTIFICIELLE/04... · • JADE (CSELT S.p.A., Italie) – À coupler avec FIPA – Outils

3Patrice Bellot

Algorithmes de « recherche »

• Equations sur des arbres, programmation parcontraintes

– Prolog III et Prolog IV

• Recherche de plus court chemin– Problème du voyageur de commerce

• Examen de tous les chemins rapidement impossible

– Utilisation d’heuristiques(problèmes NP-complets)

• Algorithmes génétiques• Recuit simulé…

Fils

XPierre

Fils

PierrotPierre

départ

arrivée

unification

Page 4: Agents intelligents en Java - Freebigbozoid.free.fr/CoursIUT/SCO/PARTIE 2 - INTELLIGENCE ARTIFICIELLE/04... · • JADE (CSELT S.p.A., Italie) – À coupler avec FIPA – Outils

4Patrice Bellot

Recuit simulé et voyageur de commerce

Minimum local => Recuit simulé

Chaque exécution fournit une solution différente

Croisement ou échange de chemins

http://www.enib.fr/~buche/these/recuitSimule.ppt

Page 5: Agents intelligents en Java - Freebigbozoid.free.fr/CoursIUT/SCO/PARTIE 2 - INTELLIGENCE ARTIFICIELLE/04... · • JADE (CSELT S.p.A., Italie) – À coupler avec FIPA – Outils

5Patrice Bellot

Réseaux de neurones

• Cerveau humain– Centaines de milliards de cellules– Architecture massivement parallèle– Fonctions de bas-niveau, pondération des cellules

Entrées SortiesSorties

attendues

Apprentissage par rétro-propagation

Page 6: Agents intelligents en Java - Freebigbozoid.free.fr/CoursIUT/SCO/PARTIE 2 - INTELLIGENCE ARTIFICIELLE/04... · • JADE (CSELT S.p.A., Italie) – À coupler avec FIPA – Outils

6Patrice Bellot

Algorithmes génétiques

• Exploration de dizaines ou de centaines de solutionssimultanément

• Etat du problème = une chaîne = un chromosome• Fonction d’évaluation : score des chromosomes• Sélection des chromosomes

– Procréation (crossover)• Mutations possibles

• Paramètres– Taille de la population,– mode de sélection,– nombre de générations,– fréquence des mutations

110010101

Page 7: Agents intelligents en Java - Freebigbozoid.free.fr/CoursIUT/SCO/PARTIE 2 - INTELLIGENCE ARTIFICIELLE/04... · • JADE (CSELT S.p.A., Italie) – À coupler avec FIPA – Outils

7Patrice Bellot

Représentation de la connaissance

• Connaissance ?– Faits, relations, formules, règles, hiérarchies d’objets…– Relations ?

• Bases de données relationnelles, Structured Query Language (SQL)

• Généralement : connaissance = symbole(s)– Représentation interne de la connaissance

• Connaissance <==> langage• Programmation déclarative vs. Procédurale

– {Prolog} vs. {Java, C, C++, …}

Page 8: Agents intelligents en Java - Freebigbozoid.free.fr/CoursIUT/SCO/PARTIE 2 - INTELLIGENCE ARTIFICIELLE/04... · • JADE (CSELT S.p.A., Italie) – À coupler avec FIPA – Outils

8Patrice Bellot

Représentation de la connaissance (2)

• Logique des prédicats– Ex: Prolog (Programmation LOGique)

• Logique floue (fuzzy logic)– « vérité » définie entre 0.0 et 1.0 (et non pas soit 0 soit 1)– Variables floues = variables linguistiques

• Réseaux sémantiques– WordNet, Ontologies

• Représentation de l’incertitude– Réseaux bayesiens

(graphe dirigé représentant les dépendances entre variables)

– Th. de Bayes :

P Y X( ) = P X Y( ) P Y( )P X( )

Page 9: Agents intelligents en Java - Freebigbozoid.free.fr/CoursIUT/SCO/PARTIE 2 - INTELLIGENCE ARTIFICIELLE/04... · • JADE (CSELT S.p.A., Italie) – À coupler avec FIPA – Outils

9Patrice Bellot

Représentation de la connaissance (3)

• Knowledge Interchange Format (KIF)– Conçu pour l’échange de connaissances entre agents– Utilise la logique des prédicats

• Réminescence de LISP(mais KIF n’est pas un langage de programmation)

– 3 types d’objets• Variables (individuelles : ?price ; séquences : @cart)• Opérateurs (sur termes/objets, règles d’inférence,

phrases/faits et définitions de constantes)• Constantes (noms d’objets, relations, conditions booléennes,

fonctions sur les objets)« récupère le prix et place le dans une variable price puis tester s’il est supérieur à 150 »

(GetStockPrice ?price) (IntegerCompare ?price « > » 150)

Page 10: Agents intelligents en Java - Freebigbozoid.free.fr/CoursIUT/SCO/PARTIE 2 - INTELLIGENCE ARTIFICIELLE/04... · • JADE (CSELT S.p.A., Italie) – À coupler avec FIPA – Outils

10Patrice Bellot

Knowledge Query and Manipulation Language(KQML)

• Chaque message correspond à une action• Exemple :

(ask-one: sender joe: content (real price = sun.price( )): receiver stock-server: reply-with sun-stock: language java: ontology NYSE-TICKS

)

Page 11: Agents intelligents en Java - Freebigbozoid.free.fr/CoursIUT/SCO/PARTIE 2 - INTELLIGENCE ARTIFICIELLE/04... · • JADE (CSELT S.p.A., Italie) – À coupler avec FIPA – Outils

11Patrice Bellot

Raisonnement

• Système à base de règlessi-alors et de clauses

• Forward-chaining– Production de nouveaux faits

Page 12: Agents intelligents en Java - Freebigbozoid.free.fr/CoursIUT/SCO/PARTIE 2 - INTELLIGENCE ARTIFICIELLE/04... · • JADE (CSELT S.p.A., Italie) – À coupler avec FIPA – Outils

12Patrice Bellot

Raisonnement (2)

• Backward-chaining (vérifie si vrai ou non)

Page 13: Agents intelligents en Java - Freebigbozoid.free.fr/CoursIUT/SCO/PARTIE 2 - INTELLIGENCE ARTIFICIELLE/04... · • JADE (CSELT S.p.A., Italie) – À coupler avec FIPA – Outils

13Patrice Bellot

Implémentation en Java

• Règles si,alors

Page 14: Agents intelligents en Java - Freebigbozoid.free.fr/CoursIUT/SCO/PARTIE 2 - INTELLIGENCE ARTIFICIELLE/04... · • JADE (CSELT S.p.A., Italie) – À coupler avec FIPA – Outils

14Patrice Bellot

Implémentation en Java (2)• Clauses (parties « antécédent » et « conséquence » des règles)

Page 15: Agents intelligents en Java - Freebigbozoid.free.fr/CoursIUT/SCO/PARTIE 2 - INTELLIGENCE ARTIFICIELLE/04... · • JADE (CSELT S.p.A., Italie) – À coupler avec FIPA – Outils

15Patrice Bellot

Implémentation en Java (3)

• Forward-chaining– Chaque règle

est testée(antécédent)en fonctiondes données

– Cycled’inférences(ajout deconnaissances)

Page 16: Agents intelligents en Java - Freebigbozoid.free.fr/CoursIUT/SCO/PARTIE 2 - INTELLIGENCE ARTIFICIELLE/04... · • JADE (CSELT S.p.A., Italie) – À coupler avec FIPA – Outils

16Patrice Bellot

Implémentation en Java (4)

• Backward-chaining

Page 17: Agents intelligents en Java - Freebigbozoid.free.fr/CoursIUT/SCO/PARTIE 2 - INTELLIGENCE ARTIFICIELLE/04... · • JADE (CSELT S.p.A., Italie) – À coupler avec FIPA – Outils

17Patrice Bellot

Méthodes d’apprentissage

• Différentes formes d’apprentissage– Agent « élève » recopie l’agent « maître »– Ajustement de paramètres importants– Raisonnement par induction (à partir d’exemples)

• Apprentissage de caractéristiques importantes

– Classification automatique• Détection de patterns récurrents

• Utilisation en Data Mining :Transformation d’informations en connaissances

Page 18: Agents intelligents en Java - Freebigbozoid.free.fr/CoursIUT/SCO/PARTIE 2 - INTELLIGENCE ARTIFICIELLE/04... · • JADE (CSELT S.p.A., Italie) – À coupler avec FIPA – Outils

18Patrice Bellot

Data Mining

• « Le Data Mining est le procédé qui consiste à découvrir des corrélationsnouvelles et utiles, des irrégularités et des tendances en explorant de grandsvolumes de données stockées à l’aide de techniques statistiques, mathématiquesou issues de la reconnaissance des formes » (Gartner Group)

• « Ensemble de techniques permettant d’extraire des modèles d’une base dedonnées « historisées » par raisonnement statistique (déduction ou inductionapprochées) afin de décrire les comportements actuels et/ou de prédire lecomportement futur d’un procédé »(Georges Gardarin, PRISM)

• « Le Data Mining est l’extraction d’informations de grandes bases de données.Il s’agit du processus de présentation automatique de règles à des opérateursqualifiés, pour examen. Ici l’humain joue un rôle essentiel car lui seul peutdécider de l’intérêt d’une règle pour l’entreprise »(IBM)

Page 19: Agents intelligents en Java - Freebigbozoid.free.fr/CoursIUT/SCO/PARTIE 2 - INTELLIGENCE ARTIFICIELLE/04... · • JADE (CSELT S.p.A., Italie) – À coupler avec FIPA – Outils

19Patrice Bellot

Data Mining : quelques applications

• Analyse de trafic d’un site Web• Etude des clients d’un site

– Alexa.com• 25 sites les plus visités en amont (resp. en aval)

• Amélioration de la navigation dans un site– À partir de l’analyse des parcours des internautes

• Personnalisation d’un site Web– Modélisation de la clientèle d’un site commercial

Page 20: Agents intelligents en Java - Freebigbozoid.free.fr/CoursIUT/SCO/PARTIE 2 - INTELLIGENCE ARTIFICIELLE/04... · • JADE (CSELT S.p.A., Italie) – À coupler avec FIPA – Outils

20Patrice Bellot

Data Mining : quelques outils

• Analog– Analyse des fichiers log des

serveurs

• WebTrends– Reconstitution de sessions à

partir de hits(IP, mots de passe ou cookies)

– Nombre de pages vues, duréemoyenne d’une session,nombre de visiteurs, originegéographique des visiteurs,sites d’origine…

http://www.analog.cx/

Page 21: Agents intelligents en Java - Freebigbozoid.free.fr/CoursIUT/SCO/PARTIE 2 - INTELLIGENCE ARTIFICIELLE/04... · • JADE (CSELT S.p.A., Italie) – À coupler avec FIPA – Outils

21Patrice Bellot

Data Mining : parcours d’un site

Harvard

NIST

Page 22: Agents intelligents en Java - Freebigbozoid.free.fr/CoursIUT/SCO/PARTIE 2 - INTELLIGENCE ARTIFICIELLE/04... · • JADE (CSELT S.p.A., Italie) – À coupler avec FIPA – Outils

22Patrice Bellot

Data Mining : Personnalisation de sites Web

cookie

client serveur

Base dedonnées

Pagesstatiques

Programme serveur(CGI, PHP, JSP, ASP…)

Internet

Page dynamiquepersonnalisée

Base declients

Page 23: Agents intelligents en Java - Freebigbozoid.free.fr/CoursIUT/SCO/PARTIE 2 - INTELLIGENCE ARTIFICIELLE/04... · • JADE (CSELT S.p.A., Italie) – À coupler avec FIPA – Outils

23Patrice Bellot

Data Mining : personnalisation de sites Web (2)

• Banières contextuelles, sélection automatique dedonnées, création dynamique de catalogues

Exemple : http://www.bluemartini.com/software/

Page 24: Agents intelligents en Java - Freebigbozoid.free.fr/CoursIUT/SCO/PARTIE 2 - INTELLIGENCE ARTIFICIELLE/04... · • JADE (CSELT S.p.A., Italie) – À coupler avec FIPA – Outils

24Patrice Bellot

Data Mining : système de recommandations

http://aztec.cs.depaul.edu/scripts/ACR2/session.pl?/index.html

Page 25: Agents intelligents en Java - Freebigbozoid.free.fr/CoursIUT/SCO/PARTIE 2 - INTELLIGENCE ARTIFICIELLE/04... · • JADE (CSELT S.p.A., Italie) – À coupler avec FIPA – Outils

25Patrice Bellot

Apprentissage : catégorisation dansl’espace vectoriel

nouveau document ou requête

Thématiquesprédéfinies

Documentsplacésdans l’espace

mais… (Document = plusieurs thématiques) + modèle mal adapté

Page 26: Agents intelligents en Java - Freebigbozoid.free.fr/CoursIUT/SCO/PARTIE 2 - INTELLIGENCE ARTIFICIELLE/04... · • JADE (CSELT S.p.A., Italie) – À coupler avec FIPA – Outils

26Patrice Bellot

Modèle vectoriel

terme 2

terme 1

terme 3Exemple :

taille vocabulaire : 3

doc 1 : (1, 0, 2)doc 2 : (0, 3, 1)

requête : (0, 1, 0)

Contre-exemple : « Chat voisin chien chasser »– le chat a chassé le chien du voisin– le chien a chassé le chat du voisin– le chat voisin du chien chasse– …

pondérations

Page 27: Agents intelligents en Java - Freebigbozoid.free.fr/CoursIUT/SCO/PARTIE 2 - INTELLIGENCE ARTIFICIELLE/04... · • JADE (CSELT S.p.A., Italie) – À coupler avec FIPA – Outils

27Patrice Bellot

Pondérations de type TF.IDFPondération pour les documents Pondération pour les

requêtes

(a)

wi, D =

tf mi ,D( ). logN

n mi( )

tf mj ,D( ). logN

n mj( )Ê

Ë Á Á

ˆ

¯ ˜ ˜

2

j / m j ŒDÂ

wi, R = 0,5 + 0,5tf mi , R( )

maxj / m j ŒR

tf mi , R( )

Ê

Ë

Á Á Á

ˆ

¯

˜ ˜ ˜

⋅logN

n mi( )

(b)

wi, D = 0,5 +0,5tf mi , D( )

maxj / m j ŒD

tf mi ,D( )

wi, R = logN - n mi( )

n mi( )

(c)

wi, D = logN

n mi( )

wi, R = logN

n mi( )

(d) wi, D =1

wi,R = logN - n mi( )

n mi( )

(e)

wi, D =tf m i,D( )

tf m j, D( )2

j / m j ŒDÂ

wi, R = tf mi ,R( )

(f) wi, D =1 wi, R = 1

Tableau 1 - Pondérations citées et évaluéesdans [Salton & Buckley, 1988]

Page 28: Agents intelligents en Java - Freebigbozoid.free.fr/CoursIUT/SCO/PARTIE 2 - INTELLIGENCE ARTIFICIELLE/04... · • JADE (CSELT S.p.A., Italie) – À coupler avec FIPA – Outils

28Patrice Bellot

Modèles de langage

Thématiquesprédéfinies

Modèlepour chaquethématique

art histoire politique économie

Mart Mhist Mpol Méco

Max { P ( thématique | document ) } ?Règle de Bayes

Probabilité d’un mot sachant son historique

Page 29: Agents intelligents en Java - Freebigbozoid.free.fr/CoursIUT/SCO/PARTIE 2 - INTELLIGENCE ARTIFICIELLE/04... · • JADE (CSELT S.p.A., Italie) – À coupler avec FIPA – Outils

29Patrice Bellot

Arbres de décision (Crawford, 1991)

apprentissage sur des documents étiquetés

nouveaudocument

pT1

probabilité d’appartenanceà la thématique T1

oui non?

pT2 pT3 pT4 p’T1 p’T2 p’T3 p’T4… …

partition qui maximiseou minimise lesprobabilitésliées à chaquethématique

Question

Page 30: Agents intelligents en Java - Freebigbozoid.free.fr/CoursIUT/SCO/PARTIE 2 - INTELLIGENCE ARTIFICIELLE/04... · • JADE (CSELT S.p.A., Italie) – À coupler avec FIPA – Outils

30Patrice Bellot

Self Organized Maps (SOM)(Kohonen 1982)

• Réduction de ladimensionde l’espace

documents séquences de mots

modèlelié à son voisin

chaque zonereprésentée par 1, 2 ou 3 mots

Assignation

Page 31: Agents intelligents en Java - Freebigbozoid.free.fr/CoursIUT/SCO/PARTIE 2 - INTELLIGENCE ARTIFICIELLE/04... · • JADE (CSELT S.p.A., Italie) – À coupler avec FIPA – Outils

31Patrice Bellot

• Ensemble de beans réutilisables (AbleBeans)– Capacités

• Accès à des données• Filtrage• Transformation• Apprentissage• Raisonnement

– Fonctionnalités• Catégorisation (classification)• Classification (clustering)• Prédiction• Recherche génétique

The Agent Building and LearningEnvironment (ABLE)

http://www.research.ibm.com/able/index.html

Page 32: Agents intelligents en Java - Freebigbozoid.free.fr/CoursIUT/SCO/PARTIE 2 - INTELLIGENCE ARTIFICIELLE/04... · • JADE (CSELT S.p.A., Italie) – À coupler avec FIPA – Outils

32Patrice Bellot

Autres environnements basés sur Java

• AgentBuilder (Reticular Systems Inc.)– www.agentbuilder.com– Outils de développement graphiques

• Éditeur d’ontologies, de règles• Débogueur dédié

– Utilise KQML

• Aglets (IBM - SourceForge)• FIPA-OS (Nortel Networks - SourceForge)

Page 33: Agents intelligents en Java - Freebigbozoid.free.fr/CoursIUT/SCO/PARTIE 2 - INTELLIGENCE ARTIFICIELLE/04... · • JADE (CSELT S.p.A., Italie) – À coupler avec FIPA – Outils

33Patrice Bellot

Autres environnements (2)• JADE (CSELT S.p.A., Italie)

– À coupler avec FIPA– Outils destinés à l’intégration et au déploiement d’agents

distribués• Annuaire « pages jaunes » d’agents (service de noms)• Une seule JVM par hôte (containeur pour agents)• Chaque agent est un thread

– Compatible avec RMI et CORBA– http://sharon.cselt.it/projects/jade/home.htm

• JATLite (Stanford University)– Ensemble de packages orientés communication– Communications basées sur TCP/IP et KQML– Ciblé agents autonomes (peer-to-peer)– http://java.stanford.edu/java_agent.html

Page 34: Agents intelligents en Java - Freebigbozoid.free.fr/CoursIUT/SCO/PARTIE 2 - INTELLIGENCE ARTIFICIELLE/04... · • JADE (CSELT S.p.A., Italie) – À coupler avec FIPA – Outils

34Patrice Bellot

Autres environnements (3)

• Jess– Implémentation en Java du shell système-expert (CLIPS)– http://herzberg.ca.sandia.gov/jess

• Voyager (ObjectSpace, Inc.)– Object Request Broker (ORB) en Java + agents mobiles

• Création distante d’objets

– Intelligence à rajouter…– http://www.objectspace.com

• ZEUS (British Telecom)– Agents collaboratifs– http://www.labs.bt.com/projects/agents.htm

Page 35: Agents intelligents en Java - Freebigbozoid.free.fr/CoursIUT/SCO/PARTIE 2 - INTELLIGENCE ARTIFICIELLE/04... · • JADE (CSELT S.p.A., Italie) – À coupler avec FIPA – Outils

35Patrice Bellot

Bibliographie

Cette partie du cours est basée sur le livre :« Constructing Intelligent Agents Using Java »

J.P. Bigus & J. BigusWiley, 2001