Alan Turing, en bref… - Le site de Marc SIBERT

publicité
Intelligence Artificielle :
des tentatives de dé
définitions
Intelligence Artificielle
Repré
Représentation des connaissances
Définitions
Discipline de l'informatique dont le but est
de construire des programmes « intelligents »
Mais aussi :
Références du cours
« C’est la science qui consiste à faire faire aux machines ce que l’homme ferait
moyennant une certaine intelligence », Marvin Minsky, MIT.
• "Artifical Intelligence, a modern approach", S. Russel, P.
Norvig, Prentice Hall.
« Tout problème pour lequel il n’existe pas d’algorithmes connu ou raisonnable
permettant de le résoudre relève a priori de l’IA »
…
• "Artificial Intelligence", third edition, P.H. Winston, Addison
Wesley
Le test de Turing (1950)... Contourner le problème de la comparaison
Capacité à simuler des performances équivalentes à celles d’humains
dans des tâches cognitives (jeu de l’imitation).
• "Foundations of Constraint Satisfaction", E. Tsang, Academic
Press
« Je crois que, dans une cinquantaine d’années, il sera possible de programmer des
ordinateurs [...] pour les faire si bien jouer au jeu de l’imitation qu’un
interrogateur moyen n’aura pas plus de 70% de chances de procéder à
l’identification exacte au bout de cinq minutes de questionnement », Turing, 1950
Alan Turing, en bref…
Le test de Turing
•
Le test a été maintes fois reformulé en 50 ans... Aujourd’hui :
Un humain qui interroge un ordinateur à travers un télétype (pas
d'interaction entre l'humain et l'ordinateur), et l'humain ne peut pas
distinguer si son interlocuteur est un humain ou un ordinateur.
•
Requiert des capacités en
Grand Informaticien, Mathématicien, Physicien, Philosophe,
(et d’autres)… anglais (1912-1954)
Son implication dans la seconde guerre mondiale et la réussite
de sa machine « bombe » pour casser les codes allemands l’a
définitivement motivé pour se lancer dans la quête de
machines intelligentes...
• représentation complexe des connaissances
• compréhension langage naturel
• raisonnement automatique
• apprentissage
Intelligence Artificielle :
un bref panorama (suite)
S'appuie sur des disciplines telles que
• la philosophie
• la psychologie et les neuro-sciences (modèles cognitifs)
Intelligence Artificielle
Terme créé en 1950-56 par Mc Carthy
•
• les mathématiques :
Les débuts (1950 – 1970) :
–
logique (incomplétude de Goedel) :
un système formel est –il complet – correct ?
complexité : une classe de problèmes est dite intractable si le
temps pour résoudre des instances de cette classe de problème
augmente au moins exponentiellement avec la taille de ces instances;
• linguistique
Souvent fortement liée à d’autres disciplines informatique
•
Recherche Opérationnelle
•
Graphes
•
Complexité (problèmes NP et au dessus…)
•
…
•
méthodes générales de recherche
(méthodes faibles) : GPS (General Problem
Solving) par Newell et Simon, CMU,
–
Lisp (Mac Carthy) (langage de haut niveau)
–
Programme qui joue aux dames (Samuel)
–
Représentation des connaissances : logique (représentation
explicite du monde + processus déductif)
–
Recherche en traitement naturel de la langue (projets de
traduction automatique) fondé sur la syntaxe.
Mais.... un gros problème de complexité et… les premières
déceptions…
Intelligence Artificielle
•
Seconde période (1969 – 1979)
–
Domaines de compétence plus restreint et utilisation plus
grande de connaissances du domaine.
–
Les systèmes experts
–
En linguistique : langages plus restreints, la notion de
sémantique émerge (organisation de la mémoire, définition et
reconnaissance de situations prototypiques, …)
–
En représentation des connaissances, langages de frames
beaucoup plus structurés que la logique
–
Prolog, projet de 5ème génération
•
Mais, les résultats n'atteignent pas les promesses des
années 70...
•
Le retour des approches sub-symboliques (réseaux
neuronaux).
Intelligence Artificielle
•
Depuis 1987
–
des techniques de recherche efficaces résolvent des problèmes
combinatoires (voir notamment SAT et la résolution de
contraintes)
–
le champion du monde d'échecs battu par un programme
–
des interfaces en langage naturel sont opérationnelles
–
des systèmes experts temps réel
•
Des méthodes numériques : Modèles de Markov cachés,
•
De nouveaux défis avec l’augmentation des données disponibles
sous forme électronique (Web) : indexation/classification de
raisonnement probabiliste et manipulation de données incertaines
(réseaux bayésiens)
documents, recherche d’information, extraction de connaissances dans
les bases de données, recherche d’informations dans des « peers », …
Le plan du cours
On trouve de l’IA un peu partout...
Résolution de problèmes
–
Etat, opérateur, espace des états
–
Recherche non informée, heuristique, recherche informée
Satisfaction de contraintes et SAT
–
Etat, contraintes, problème de satisfaction de contraintes
–
Techniques de cohérence par noeud, par arc
–
Techniques avancées Forward Checking, backjumping,...
–
SAT
Raisonnement, déduction, systèmes experts
–
Représentation des connaissances, faits, règles
–
Recherche dans un arbre ET/OU, chaînage avant, chaînage
arrière
Pourquoi l’IA peut souvent
se ré
résumer à de la recherche ?
Exemple : le jeu du taquin
État initial
• À l’origine la plupart des problèmes d’IA étaient liés à
– Résolution de puzzles, (Taquin, Rubik’s Cube, 8-Reines, …)
– Démonstration de théorèmes (logique, arithmétique,
géométrie, …)
– Jeux (Dames, Echecs, GO,…)
– …
État final
2
8
3
1
6
4
8
5
7
7
1
2
3
4
6
5
Les opérateurs de changements d’état :
• Faire bouger une tuile à droite, à gauche, en haut,
en bas (si la case adjacente dans cette direction
est vide)
• Faire bouger la case vide à droite, à gauche, en
haut en bas (si on reste dans les limites du
damier)
Méthodes de recherches...
Méthodes de recherches...
Etat Final
F
I
Etat Initial
Espace des états : le taquin
Résolution de problè
problèmes
Le problème à résoudre peut se formaliser comme
• Chaque configuration possible du taquin est un état
• Un but
– 9 cases, 9! Possibilités (362880)
• Un état initial
• Un ensemble d'opérateurs permettant de passer d'un état à
un autre
Un état initial + un ensemble d'opérateurs permettent de définir
un espace de recherche.
• L’ensemble des états crée l’espace des états dans
lequel la recherche de l’état but aura lieue
• Note: certains états ne sont pas atteignables depuis l’état
initial (la moitié sur l’exemple du taquin).
Résoudre un problème : trouver un chemin entre l'état initial et
l'état final.
En général, on associe également une fonction de coût à chaque
opérateur. Il faut donc dans ce cas trouver le meilleur chemin
(le moins coûteux).
Exemple :
2
7
8
1 2
8
7 6
3
4
5
• ...
Espace des états pour le taquin
noeud : état
arc : application d'un
opérateur
8
2
6
1
[étiquette des arcs: coût de
l'application d'un
opérateur]
2
8
1
7
7
5
2
4
6
4
•
facteur de branchement
•
profondeur
1
5
8
7
6
2
4
5
7
8
3
1
4
6
5
2
1
7
8
3
2
4
3
6
4
7
5
6
5
1
8
6
6
2
8
6
1
7
3
1
5
7
8
1
3
4
5
1
4
5
2
1
7
8
6
2
8
3
2
1
6
4
1
5
7
6
3
1
2
3
8
6
7
3
2
2
8
6
2
3
4
5
3
4
5
2
6
.
.
.
3
4
5
.
.
.
.
.
.
.
.
.
2
1
7
8
6
3
6
4
7
5
2
1
7
8
3
2
4
1
8
4
3
5
7
6
5
2
3
4
1
8
4
5
7
6
5
3
4
5
8
3
6
5
4
.
.
.
.
.
.
caractéristiques de l'arbre
de recherche :
3
2
8
3
4
7
8
Une solution pour le pb du taquin
1
8
3
4
5
7
3
7
8
• Problèmes de routage
2
6
1
• Les jeux
1
1
7
4
6
5
7
Importance de la modé
modélisation
• Intelligence humaine cachée dans la modélisation…
L’efficacité des méthodes générales dépend de cette
partie « cachée » de l’IA classique
• Exemple : labyrinthe dans les jeux 3D contemporains
Evaluation d'une mé
méthode
de ré
résolution de problè
problème
Comment mesurer la performance d'une méthode de
résolution de problèmes ?
• trouve-t-elle une solution / toutes les solutions/ une
bonne solution / la meilleure des solutions?
?
• quel est le coût de la recherche (temps/mémoire
requis pour trouver la solution) ?
Construction de l'arbre de recherche
Recherche-solution(problème,stratégie)
%problème= (Etat-initial,Etat-but,Opérateurs ). Retourne un chemin
solution ou échec
OUVERT ← {Etat-initial};
Straté
Stratégies de recherche
Régissent l' ordre dans lequel les noeuds de l'arbre de recherche
vont être développés.
Types de stratégies :
• non informée, aveugle: purement syntaxiques
Tant que OUVERT ≠ ∅
• heuristique: exploitation d'information sur le problème à
résoudre
Etat-courant ← tete(OUVERT)
si Etat-courant = Etat-but alors return(chemin(Etat-initial,Etatcourant))
Propriétés d'une stratégie :
• Complétude
sinon
NEtats← développer(Etat-courant,opérateurs,stratégie)
OUVERT ← mise-à-jour( OUVERT, NEtats,stratégie)
• Complexité en temps / espace
• Admissibilité
Fin tant que
return(échec).
OUVERT = frontière de l’espace de recherche
Un exemple simple
Problème de routage
Problème de routage
4
3
4
B
A
5
S
Un exemple simple
4
C
3
5
G
4
E
C
5
G
4
3
4
2
D
5
S
3
4
B
A
4
2
D
F
Point de départ: S
Point de départ: S
Point d'arrivée : G
Point d'arrivée : G
E
F
Un exemple simple
Problème de routage
Problème de routage
4
3
4
B
A
5
S
Un exemple simple
4
C
3
5
G
4
E
Point de départ: S
Point d'arrivée : G
Un exemple simple
Problème de routage
E
F
Un exemple simple
4
B
A
5
4
C
3
5
G
4
E
D
5
S
3
4
B
A
C
5
G
4
3
4
2
4
2
E
D
F
Point de départ: S
Point de départ: S
Point d'arrivée : G
Point d'arrivée : G
Un exemple simple
Problème de routage
F
Un exemple simple
Problème de routage
4
4
B
A
5
S
4
Problème de routage
4
3
G
3
D
F
Point d'arrivée : G
S
5
2
Point de départ: S
3
C
4
4
2
D
5
S
3
4
B
A
4
C
3
5
G
4
E
C
5
G
4
3
4
2
D
5
S
3
4
B
A
4
2
D
F
Point de départ: S
Point de départ: S
Point d'arrivée : G
Point d'arrivée : G
E
F
Straté
Stratégie Largeur d'abord
Arbre de recherche en largeur d'abord
1
• stratégie complète
5
4
4
B
• ne développe jamais un noeud de profondeur n avant
d'avoir développé tous les noeuds de profondeur n-1
5
9
• s'il y a un coût associé à l'application de chaque
opérateur, ne trouve pas nécessairement la solution de
meilleur coût en premier.
2
4
1
F5
Ordre lexicographique sur
Les fils d’un même noeud
4
A
5
4
4
B
5
8
C
10
E
2
1
4 D
4
1
F5
1 5
6B
3
2
G
3
19
5
4
E
4
4
1
8 C
3
2 G
5
1
7
4
2
0 A
5
1
E9
4
2
C1
1
3
4
2 F
6
3
2 G
7
2
7
S
• Stratégie qui n'est ni complète, ni admissible (de plus, pb si
erreur dans les niveaux hauts de l'arbre)
1
3
2
7
Ordre lexicographique sur
Les fils d’un même noeud
4
3
5
2
4
1
4 D
1
F5
1 5
6B
3
2
4
E
4
4
1
2 B
1
F3
4
4
1
E9
3
4
2
0 A
5
1
8 C
3
2
C1
2
G2
1
3
4
2 G
5
1
7
7
E
5
1
1 B
1 F
7
2
4 C
7
A
4
2
G
3
19
6
3
6
2
10
E
D
4
D
9
5
2 F
6
3
2 G
7
2
7
Arbre de recherche avec
straté
stratégie en profondeur d'abord
S
1
3
2
Ordre lexicographique sur
Les fils d’un même noeud
1
D
5
4
A
4
3
• Complexité en espace: bm, où b est le facteur de
branchement, et m la profondeur max de l'arbre de
recherche
• A éviter s'il existe des chemins infinis dans l'arbre de
recherche
2 G
7
5
8
4 C
Les descendants du noeud courant développé sont placés en tête
de OUVERT
• Peut être plus efficace que la largeur d'abord si beaucoup de
solutions
2
G2
2 F
6
3
5
Straté
Stratégie Profondeur d'abord
• Complexité en temps : O(bm)
3
2
C1
4
2 G
5
1
7
3
2
G2
1
E9
3
4
2
0 A
5
1
8 C
A
4
1
F3
1
F3
4
4
4
4
4
B
4
1
2 B
4
1 F
7
4
1
2 B
1
1 B
E
2
4 C
2
3
E
1
1 B
1 F
7
4
2
4 C
7
A
E
5
4
1
1
2
6
2
9
3
7
A
Arbre de recherche en largeur d'abord
2
D
4
D
4
5
1 5
6B
3
2
G
3
19
Arbre de recherche en largeur d'abord
S
10
1
4 D
• complexité : en temps et en espace, pour un facteur de
branchement b et une solution de profondeur d : O(bd).
Applicable à de « petits » problèmes uniquement.
3
6
2
E
3
2
5
8
C
• trouve la solution la plus courte en premier (le plus petit
nombre d'applications d'opérateurs)
D
4
D
4
1
Ordre lexicographique sur
Les fils d’un même noeud
4
A
OUVERT est géré comme une file
2
S
3
2
5
5
4
4
2
5
C
10
E
6
2
4
D
7
F
3
8
G
19
1 5
1B
1
2C
4
1
6A
9
D
B
2
2
2
E
5
4
4
1 1 4
F3 8 C
4
3
G
1
7
1
4
4
2
F 6
2
3 B
1
7 B
E
2
4A
5
1
E9
4
2
C5
3
G
1
3
4
2
0 F
3
2
1 G
4
2
7
2
7
Recherche dans un espace d’
d’ états +
détection de cycles
Cycles dans la recherche
Recherche-solution(problème,stratégie)
Induit des chemins infinis et des solutions qui sont exhibées
plusieurs fois
%problème= (Etat-initial,Etat-but,opérateurs ). Retourne un chemin solution ou
échec
Plusieurs manières de complexité croissante en espace:
OUVERT ← {Etat-initial}; FERME = ∅
• ne pas revenir dans l'état d'où l'on vient
• vérifier que le chemin que l'on construit ne contient pas de
cycle.
• vérifier que l'on ne revient pas dans un état que l'on a déjà
visité (complexité en espace O(bd)).
Tant que OUVERT ≠ ∅
Etat-courant ← tete(OUVERT)
si Etat-courant = Etat-but alors return(chemin(Etat-initial,Etat-courant))
sinon
NEtats ← développer(Etat-courant,opérateurs,stratégie);
Modification de l'algorithme de recherche
FERME ← FERME ∪ Etat-courant;
OUVERT ← mise-à-jour( OUVERT, FERME, NEtats,stratégie)
Fin tant que
return(échec).
Fonctions d'é
d'évaluation d'un état
Fonction d’évaluation s’applique à un nœud de l’espace de recherche
En. Nous étudierons les fonctions d'évaluation de la forme :
f(En) := a. g(En) + b. h(En)
h(En) : estimation du coût du meilleur chemin pour aller de l'état En à
un état but.
Il existe des fonctions d'évaluation qui s'appuient uniquement sur la
composante g ou h, certaines qui s'appuient sur les 2.
Arbre de recherche
en recherche avec coû
coût uniforme
10 S
34
D
A
6
D
11 11
C
8
E
1 12
2 E
16
14
D
F
15
B
1
4
F
OUVERT est géré comme une liste triée par ordre croissant
sur les coûts de chaque état.
Trouve la solution optimale si pour tout fils de En g(fils(En)) ≥
g(En)
Amé
Amélioration de la recherche
branch and bound
Exemple : SD : coût 4
SAD coût 8
79
A
8
10
•Variante de la stratégie largeur d'abord(largeur d'abord =
coût uniforme avec g(En) = profondeur(En))
Il existe dans cet arbre beaucoup de chemins redondants
3
57
B
Appelé également stratégie « branch and bound »
• Fonction d'évaluation à composante g uniquement.
g(En) : estimation du coût du meilleur chemin pour aller de l'état
initial à l'état courant En.
2
Straté
Stratégie de coû
coût uniforme
46
E
1
0 B
13
1 B
3
15
18
C
17
E
910
F
11
A
15
C
1 13
4G
1
3
Ordre dans OUVERT : moindre g + ordre lexicographique
Si l'on est dans un cas tel que le chemin pour aller de S à I
n'influence pas le chemin pour aller de I à G: le plus court chemin
pour aller de S à G passant par I est le plus court chemin pour
aller de S à I + le plus court chemin pour aller de I à G.
Pour un état I, on maintient le coût du meilleur chemin pour aller de
S à I. Ce coût peut être mis à jour au cours de la recherche. On
ne développe pas les noeuds qui ont des évaluations supérieures.
Exemple de recherche
branch and bound amé
amélioré
liorée
10 S
2
Ordre dans lequel
sont développés les noeuds
34
D
3
A
57
B
7
12
11
C
16
9
A
B
F
C
F
4
3
8
15
A
E
B
5
S
B
17
Estimation (liée au problème à résoudre) du coût d'une
solution.
610
F
11
15
Exemple :
13
pb de routage : heuristique : distance à vol d'oiseau
entre l'état n et l'état but.
G
C
pb du tic-tac-toe : le nombre de tuiles mal placées.
1
3
4
A
Toute technique qui améliore la performance dans le cas
moyen d'un processus de résolution de problème, sans
forcément améliorer sa performance dans le pire des cas.
46
E
18
1
4
15
14
D
8
D
8 Non exploré ! 13
10
1 B
E
3
E
Heuristique
C
5
h peut être n'importe quelle fonction telle que h(but)=0
G
4
3
4
2
E
D
F
Recherche gloutonne
Exemple de recherche par gradient
6.7 C
B
Si l'évaluation est fondée uniquement sur h(En), stratégie de
recherche dite gloutonne.
4.
0
10.4
A
S
10.4
G
Stratégie par gradient: variante de la stratégie profondeur d'abord.
On développe les descendants d'un noeud, on les trie en fonction de h,
on les met en tête de Etats-à-développer.
8.9
A
11.0
D
S
6.9
8.9
D
Problèmes :
E
6.7
B
• Stratégie incomplète et non admissible (comme profondeur
4
d'abord)
3
• Même complexité (dans le pire des cas) que profondeur d'abord.
• Par contre, si l'heuristique est bonne, amélioration substantielle des
performances de la recherche
A
B
5
S
C
5
9
3
D
4
E
5
S
C
5
13
9
A
D
G
13
A
3
100
Faisceau : borne sur la taille de OUVERT.
4
B
D
4
2
D
E
F
9
7
3
E
On élague OUVERT pour ne garder que les n meilleurs états
(évaluation g et/ou f).
S
7
8.9
10.4
E
9
3
B
F
A
6.7
4.0
G
C
D
8.9 10.4
B
F
F
La recherche par faisceau
S
10000
4
A
G
1
3
G
4
2
D
6.9
E
6.9
E
A
6.7
B
F
109
G
17
3.0
F
4
Straté
Stratégie gloutonne :
optimum local
13
E
F
optimum local - plateau
3
6.9
10.4
A
3.0
G
3.0
Recherche A*
Algorithme de recherche A*
Recherche-Aetoile(problème)
% retourne un chemin solution
ou échec
Ouvert ← Etat-initial; Ferme = ∅
Tant que Ouvert ≠ ∅
Etat-courant ← tete(Ouvert);
Ferme = Ferme ∪ Etat-courant
si Etat-courant = Etat-but alors return(chemin(Etatinitial,Etat-courant))
sinon
pour tous les successeurs s de Etat-courant
évaluer(s) g(s) et h(s)
si s ∈ Ouvert ∪ Ferme alors
si g(Etat-courant) + c(Etat-courant ,s) ≤ g(s) alors
mettre-a-jour(pere(s)); inserer
(s,Ouvert)
sinon inserer(s,Ouvert)
fin pour
Fin Tant que
Fonction d'évaluation f(n) = g(n) + h(n)
On cherche à minimiser le coût total du chemin entre l'état initial et
un état but.
g*(n): le coût du plus court chemin allant de l'état initial à l'état n.
g(n): estimation du coût du plus court chemin allant de l'état initial à
l'état n (étant donné les états développés à l'instant courant).
Si h est minorante, la stratégie de recherche est complète et correcte.
h(n) minorante : pour tout n, h(n) ≤ h*(n)
c'est-à-dire, l'estimation du chemin qui reste à parcourir entre l'état n et
l'état but est toujours inférieure ou égale à la valeur réelle de ce coût.
Cas particulier : recherche branch and bound : h=0 pour tout n.
return(échec).
Recherche A*
Optimisation sur A*
Comment sélectionner une heuristique ?
• Plus h est élevée, moins on va développer de noeuds.
• Par contre, si h(n) ≥ h*(n) pour un noeud qui est sur le chemin
de meilleur coût, on risque de "rater" ce chemin.
Le problème du taquin : facteur de branchement ~ 3
• Monotonie : Une heuristique h est dite monotone si pour toute
paire de d'états n et s tels que s est un successeur de n h(n)
≤ h(s) + c(n,s) (l'heuristique est cohérente avec les coûts
des arcs).
Si h est monotone, si A* sélectionne un état n pour le développer,
g(n) = g*(n)
Si recherche exhaustive jusqu'à un niveau 20 ~ 3.5 x 109 états...
( 9! ~ 370 000 si on garde la trace des états déjà générés).
• h1 : le nombre de tuiles mal placées
• h2 : la somme des distances de chaque tuile par rapport à sa position
dans l'état final.
• h3 : h2+S ( S est la somme pour chaque tuile sur la circonférence des
si, avec si=2pour la tuile i si elle n'est pas suivie par son "vrai"
successeur, si =0 sinon).
h3 n'est pas minorante : pas d'optimalité, mais recherche très efficace.
Lorsqu'un état e est généré, il est inutile de vérifier s'il a déjà
été généré (avec un coût moindre), on ne mettra jamais à jour
le coût du meilleur chemin pour aller de s à un état n
quelconque.
• Entre deux noeuds qui ont la même f, choisir le noeud qui a le
plus grand g
Recherche de
type A*
6.7 C
B
4.
0
10.4
A
S
(3;10.4;13.4)
G
6.9
8.9
E
3.0
E
4
A
g(A)=9
1
S
(10;3.0; 13.0)
F
G
4
3
4
E
2
(5,7)
D
E
6
2
(3,9)
B
3
D
G
(6,8)
E
(8,108)
C
(5,7)
E
C
5
2
1
A
(11;0; 11.0)
D
(4,10)
D
4
B
5
S
(2,9)
C
A
F
B
100
3
B
A
4
(11;6.7; 17.7)
S
2
3
2
D
(6;6.9;12.9)
S
3
7
(4;8.9;12.9)
A
11.0
D
Recherche de type A* avec h non
minorante
F
G
(9,9)
G
(8,8)
G
Recherche A* avec h non
monotone
S
6.7 C
B
4.
0
10.4
A
A
G
S
(7;6.7;13.7)
6.9
10
E
3
A
D
A
E
B
3.0
(12;6.9;18.9)
F
E
4
g(A)=9
(6;6.9;12.9)
11.0
D
(4;10;14)
(3;10.4;13.4)
(11;4;15)
C
g(B)=11
(10;3.0
;
13.0)
B
F
4
B
C
(11;0; 11)
5
S
5
G
3
4
2
D
4
E
F
G
Téléchargement