Prolog & ia bases de l’intelligence artificielle - intellig

Intelligence Artificielle AI - Prolog : PROLOG & IA Bases de l’Intelligence Artificielle

Télécharger PDF

Obtenir le pack complet des cours, TDs, TPs et projets sur intelligence artificielle!

Vous souhaitez maîtriser l'intelligence artificielle ? Ne cherchez plus, nous avons le pack parfait pour vous.

pack complet des cours, TDs, TPs et projets sur Informatique Industrielle AI prolog

Accédez à une collection complète des supports de cours, des travaux dirigés (TD) corrigés, des travaux pratiques (TP) et des projets.

Obtenir le pack maintenant

Bases de l’Intelligence Artificielle PROLOG & IA

Marie Lefevre

2020-2021

Université Claude Bernard Lyon 1

De quoi va-t-on parler ?

•Les débuts •Avec Eliza

•Résolution par satisfaction de contraintes (CSP) •Avec les N-Reines

•Recherche dans un graphe d’états •Avec le labyrinthe

•Décomposition de problèmes •Avec les Tours de Hanoi

•Système à base de connaissances en TP...

BIA 2020 : Prolog & IA2 Les débuts avec Eliza

•Classique des débuts de l’IA

•N’u2lise absolument pas d’IA

•Est censé simuler une conversa2on avec un psychologue

BIA 2020 : Prolog & IA3 Dialogue avec Eliza

?-eliza.

Bonjour. Quest ce qui vous amene?

|: "je suis triste".

depuis combien de temps etesvous triste ? |: "depuis le departde mon frere".

pouvez vous me parler de votre frere? |: "j aime discuter avec lui".

quelquun d autre dans votre famille aime til cela ? |: "non".

continuez |: "je me sens seule maintenant".

ressentez vous souvent cela ? |: "oui, depuis que mon frereest parti !".

pouvez vous me parler de votre frere? |: "vous vous moquez de moi ?".

continuez |: "bye".

BIA 2020 : Prolog & IA4 Eliza : principe du programme

•Principe du «S-mulus –Réac-on»

•«bonjour / bienvenu»

•«je suis X / depuis combien de temps êtes vous X ?»

•Lire l’entrée de l’u-lisateur

•Tant que l’entrée n’est pas «bye»

•Choisir une paire «s:mulus-réac:on»

•Apparier l’entrée avec le s:mulus

•Générer la réponse à par:r de la réac:on et de l’appariement

•Afficher la réponse

•Lire l’entrée suivante

•Améliora-on avec des mots-clés à détecter

•pere, mere, frere....

BIA 2020 : Prolog & IA5 De quoi va-t-on parler ?

•Les débuts •Avec Eliza

•Résolution par satisfaction de contraintes (CSP) •Avec les N-Reines

•Recherche dans un graphe d’états •Avec le labyrinthe

•Décomposition de problèmes •Avec les Tours de Hanoi

•Système à base de connaissances en TP...

BIA 2020 : Prolog & IA6 CSP

•X = X1 , X2 , ..., Xn l’ensemble des variables caractérisant le problème•D(X i

) le domaine de chaque variable Xi = l’ensemble des valeurs que Xi peut prendre théoriquement

•C = C1 , C2 , ..., Ck l’ensemble des contraintes

•Chaque contrainte Cj est une rela:on entre certaines variables de X restreignant les valeurs que peuvent prendre simultanément ces variables

BIA 2020 : Prolog & IA7 Problème des N reines

Placer N reines sur un échiquier (une grille N x N)

tel qu’aucune reine attaque une autre reine

c’est-à-dire qu’il n’y a pas deux reines sur la même colonne,

la même ligne, ou sur la même diagonale

BIA 2020 : Prolog & IA8 4 reines : 1ère modélisation

•Les variables

•Associer à chaque reine i deux variables Li (sa ligne) et Ci (sa colonne)

•X = {L1, L2, L3, L4, C1, C2, C3, C4}

•Les domaines de valeurs

•D(L1) = D(L2) = D(L3) = D(L4) = D(C1) = D(C2) = D(C3) = D(C4) = {1,2,3,4}

•Les contraintes :

•Les reines doivent être sur des lignes différentes. •Clig= {L1≠L2, L1≠L3, L1≠L4, L2≠L3, L2≠L4, L3≠L4 }

•Les reines doivent être sur des colonnes différentes. •Ccol= {C1≠C2, C1≠C3, C1≠C4, C2≠C3, C2≠C4, C3≠C4 }

•Les reines doivent être sur des diagonales montantes différentes.

•Cdm= {C1+L1≠C2+L2, C1+L1≠C3+L3, C1+L1≠C4+L4, C2+L2≠C3+L3, C2+L2≠C4+L4, C3+L3≠C4+L4}

•Les reines doivent être sur des diagonales descendantes différentes. •Cdd = {C1-L1≠C2-L2, C1-L1≠C3-L3, C1-L1≠C4-L4, C2-L2≠C3-L3, C2-L2≠C4-L4, C3-L3≠C4-L4}

•L'ensemble des contraintes est défini par l'union de ces 4 ensembles :

•C = CligU CcolU CdmU Cdd

BIA 2020 : Prolog & IA9 4 reines : 1ère modélisation

?-reines4_v1(R).

R = [1, 2, 3, 4, 2, 4, 1, 3] ;

R = [1, 2, 3, 4, 3, 1, 4, 2] ;

R = [1, 2, 4, 3, 2, 4, 3, 1] ;

R = [1, 2, 4, 3, 3, 1, 2, 4] ;

R = [1, 3, 2, 4, 2, 1, 4, 3] ;

R = [1, 3, 2, 4, 3, 4, 1, 2] ;

R = [1, 3, 4, 2, 2, 1, 3, 4] ;

R = [1, 3, 4, 2, 3, 4, 2, 1] ;

R = [1, 4, 2, 3, 2, 3, 4, 1] ;

R = [1, 4, 2, 3, 3, 2, 1, 4] ;

R = [1, 4, 3, 2, 2, 3, 1, 4] ;

R = [1, 4, 3, 2, 3, 2, 4, 1] ;

R = [2, 1, 3, 4, 1, 3, 4, 2] ;

R = [2, 1, 3, 4, 4, 2, 1, 3] ;

R = [2, 1, 4, 3, 1, 3, 2, 4] ;

R = [2, 1, 4, 3, 4, 2, 3, 1] ;

R = [2, 3, 1, 4, 1, 4, 3, 2] ;

R = [2, 3, 1, 4, 4, 1, 2, 3] ;

R = [2, 3, 4, 1, 1, 4, 2, 3] ;

R = [2, 3, 4, 1, 4, 1, 3, 2] ;

R = [2, 4, 1, 3, 1, 2, 3, 4] ;

R = [2, 4, 1, 3, 4, 3, 2, 1] ;

R = [2, 4, 3, 1, 1, 2, 4, 3] ;

R = [2, 4, 3, 1, 4, 3, 1, 2] ;

R = [3, 1, 2, 4, 1, 2, 4, 3] ;

R = [3, 1, 2, 4, 4, 3, 1, 2] ;

R = [3, 1, 4, 2, 1, 2, 3, 4] ;

R = [3, 1, 4, 2, 4, 3, 2, 1] ;

R = [3, 2, 1, 4, 1, 4, 2, 3] ;

R = [3, 2, 1, 4, 4, 1, 3, 2] ;

R = [3, 2, 4, 1, 1, 4, 3, 2] ;

R = [3, 2, 4, 1, 4, 1, 2, 3] ;

R = [3, 4, 1, 2, 1, 3, 2, 4] ;

R = [3, 4, 1, 2, 4, 2, 3, 1] ;

R = [3, 4, 2, 1, 1, 3, 4, 2] ;

R = [3, 4, 2, 1, 4, 2, 1, 3] ;

R = [4, 1, 2, 3, 2, 3, 1, 4] ;

R = [4, 1, 2, 3, 3, 2, 4, 1] ;

R = [4, 1, 3, 2, 2, 3, 4, 1] ;

R = [4, 1, 3, 2, 3, 2, 1, 4] ;

R = [4, 2, 1, 3, 2, 1, 3, 4] ;

R = [4, 2, 1, 3, 3, 4, 2, 1] ;

R = [4, 2, 3, 1, 2, 1, 4, 3] ;

R = [4, 2, 3, 1, 3, 4, 1, 2] ;

R = [4, 3, 1, 2, 2, 4, 3, 1] ;

R = [4, 3, 1, 2, 3, 1, 2, 4] ;

R = [4, 3, 2, 1, 2, 4, 1, 3] ;

R = [4, 3, 2, 1, 3, 1, 4, 2] ;false. BIA 2020 : Prolog & IA10 Enorme combinatoire...

4 reines : 2ème modélisation

•Intégrer une par;e des contraintes :

•On ne peut pas avoir deux reines sur la même colonne

•Les variables

•Associer à chaque reine i une variable Li, sa colonne étant fixée

•X = {L1, L2, L3, L4}

•Les domaines de valeurs

•D(L1) = D(L2) = D(L3) = D(L4) = {1,2,3,4}

•Les contraintes :

•les reines doivent être sur des lignes différentes •Clig= {Li ≠ Lj/ i élément_de{1,2,3,4}, j élément_de{1,2,3,4} et i ≠ j}

•les reines doivent être sur des diagonales montantes différentes •Cdm= {Li+i≠ Lj+j/ i élément_de{1,2,3,4}, j élément_de{1,2,3,4} et i ≠ j}

•les reines doivent être sur des diagonales descendantes différentes •Cdd = {Li-i≠ Lj-j / i élément_de{1,2,3,4}, j élément_de{1,2,3,4} et i ≠ j}

•L'ensemble des contraintes est défini par l'union de ces 3 ensembles

•C = CligU CdmU Cdd

BIA 2020 : Prolog & IA11 4 reines : 3ème modélisation

•Les variables

•Non pas les posiUons des reines

•Mais les états des 16 cases de l'échiquier Xij(ligne i et colonne j)

•X = { X11, X12, X13, X14, X21, X22, X23, X24, X31, X32, X33, X34, X41, X42, X43, X44}

•Les domaines de valeurs

•chaque variable peut prendre pour valeur 0 (pas de reine sur la case) ou 1

•D(Xij) = {0,1} pour tout i et tout j compris entre 1 et 4

•Les contraintes :

•les reines doivent être sur des lignes différentes •Clig= {Xi1 + Xi2 + Xi3 + Xi4 = 1 / i élément_de{1,2,3,4}}

•les reines doivent être sur des colonne différentes •Ccol= {X1i + X2i + X3i + X4i = 1 / i élément_de{1,2,3,4}}

•les reines doivent être sur des diagonales montantes différentes •Ccol= pour tout couple de variables différentes Xijet Xkl, i+j=k+l=> Xij+ Kkl≤ 1

•les reines doivent être sur des diagonales descendantes différentes •Cdd = pour tout couple de variables différentes Xijet Xkl, i-j=k-l=> Xij+ Kkl≤ 1

•L'ensemble des contraintes est défini par l'union de ces 3 ensembles

•C = CligU CcolU CdmU Cdd

BIA 2020 : Prolog & IA12 Généralisation à N reines

•Par exemple, la deuxième modélisa;on devient :

•Variables :

•L = {Li / i est un enQer compris entre 1 et n}

•Domaines :

•Quelque soit Li élément de L, D(Li) = {j / j est un enQer compris entre 1 et n}

•Contraintes :

•les reines doivent être sur des lignes différentes •Clig= {Li ≠ Lj/ i et j sont 2 enUers différents compris entre 1 et n}

•les reines doivent être sur des diagonales montantes différentes •Cdm= {Li+i≠ Lj+j/ i et j sont 2 enUers différents compris entre 1 et n}

•les reines doivent être sur des diagonales descendantes différentes •Cdd = {Li-i≠ Lj-j / i et j sont 2 enUers différents compris entre 1 et n}

•L'ensemble des contraintes est défini par l'union de ces 3 ensembles

•C = CligU CdmU Cdd

BIA 2020 : Prolog & IA13 CSP : généralisation

•Prédicats de résolu-on génériques

•Nécessitent la défini-on pour chaque problème des prédicats •domaines(L) qui génère la liste L des couples [Variable,Domainede la variable]

•consistants(affecta:on1,affecta:on2) si les deux affecta:ons sont compa:bles

BIA 2020 : Prolog & IA14 De quoi va-t-on parler ?

•Les débuts •Avec Eliza

•RésoluCon par saCsfacCon de contraintes (CSP) •Avec les N-Reines

•Recherche dans un graphe d’états •Avec le labyrinthe

•DécomposiCon de problèmes •Avec les Tours de Hanoi

•Système à base de connaissances en TP...

BIA 2020 : Prolog & IA15 Un problème de labyrinthe

BIA 2020 : Prolog & IA16 Salle ThéséeEntrée Salle Minotaure

Salle SombreSortie Salle Claire

Salle Ariane

Généralisation : recherche dans un graphe d’états

•On définit pour chaque problème :

•Un état ini-al (ou plusieurs)

•Un état final (ou plusieurs)

•Des états interdits (éventuellement)

•Des opérateurs de transi-on

•On définit un algorithme général de recherche dans le graphe ainsi construit

BIA 2020 : Prolog & IA17 Algorithme de recherche

BIA 2020 : Prolog & IA18 État initial

État courant

Liste des états déjà rencontrés

Opérateur

État suivantÉtat final

Liste des opérateurs à appliquer

De quoi va-t-on parler ?

•Les débuts •Avec Eliza

•RésoluCon par saCsfacCon de contraintes (CSP) •Avec les N-Reines

•Recherche dans un graphe d’états •Avec le labyrinthe

•DécomposiCon de problèmes •Avec les Tours de Hanoi

•Système à base de connaissances en TP...

BIA 2020 : Prolog & IA19 Les tours de Hanoï

BIA 2020 : Prolog & IA20 Situation initialeObjectif

Problème ini;al

Sous-problème 1

Sous-problème 2

Sous-problème 3

Décomposition un problème en sous-problèmes

BIA 2020 : Prolog & IA21 De quoi va-t-on parler ?

•Les débuts •Avec Eliza

•RésoluCon par saCsfacCon de contraintes (CSP) •Avec les N-Reines

•Recherche dans un graphe d’états •Avec le labyrinthe

•DécomposiCon de problèmes •Avec les Tours de Hanoi

•SBC en TP...

BIA 2020 : Prolog & IA

22