Chapitre 3 - Les Algorithmes de Recherche
Chapitre 3 - Les Algorithmes de Recherche
Chapitre 3 - Les Algorithmes de Recherche
recherche
Année 2020-2021
Lien: https://sites.google.com/view/depinfo-ia/
L. LAZIB et S. SADI
Recherche Recherche
Introduction Conclusion
systématique locale
2
Introduction Les algorithmes de recherche sont l'un des
domaines les plus importants en IA.
5
Introduction: Exemple des jeux d'échecs
7
Formulation Les problèmes d'IA peuvent souvent
être décrits comme des problèmes
et résolution de recherche.
de problèmes Il existe alors des formalismes pour
représenter ces problèmes ainsi
que des méthodes générales qui
permettent de les résoudre.
Cette section présente certains
concepts importants relatifs à la
formulation de problèmes ainsi qu'à
leur résolution.
8
Form. et rés. de problèmes : Agents
9
Form. et rés. de problèmes: Agents - types
➢ Agent réflexe basé sur des modèles : garde une trace limitée de la
perception passée de son environnement (dans un modèle). Ainsi, le
choix de l'action à entreprendre se base sur la perception actuelle et
certaines informations sur les perceptions passées.
➢ Agent basé sur des objectifs : contient une liste d'objectifs (ou buts) à
atteindre. L'action à entreprendre est choisie pour se rapprocher du but
choisi. L'agent doit notamment pouvoir prédire les conséquences d'une
action pour faire ce choix. Contrairement à un agent réflexe, cet agent
va envisager plusieurs actions avant de faire un choix (en utilisant des
algorithmes de recherche et de planification).
10
Form. et rés. de problèmes : Agents - types (suite)
➢ Agent basé sur des préférences : fixer des objectifs ne suffit pas
toujours. En effet, il peut exister plusieurs solutions mais, pour une
raison ou une autre, une de ces solutions est préférable. Un agent
de ce type utilise une fonction pour évaluer le coût de chaque
action menant à l'objectif pour choisir la meilleure.
➢ Agent d'apprentissage : apprend depuis les expériences passées et
peut faire évoluer son processus de prise de décision (pour le choix
des actions futurs) en conséquence. Il utilise l'apprentissage
automatique.
11
Form. et rés. de problèmes : Formulation
12
Form. et rés. de problèmes : Formulation (exemple)
Nous souhaitons sortir d'un labyrinthe, avec une contrainte : les déplacements sont
uniquement possibles dans les directions indiquées (en orange).
S B E
C D G
13
Form. et rés. de problèmes : Formulation (exemple)
Il est possible de représenter un problème sous forme d'arbre. Dans ce cas, les états
peuvent être dupliqués.
La racine de l'arbre est l'état initial. Les enfants d'un nœud sont les états accessibles
à partir de celui-ci.
L'arbre correspondant à l'exemple précédent est le suivant :
C B
D C E
D G
14
Form. et rés. de problèmes : Problématique
15
Form. et rés. de problèmes : Graphes et arbres de recherche
16
Form. et rés. de problèmes: Graphes et arbres de recherche (suite)
○ Exemple : dans les jeux d'échecs, nous ne calculons pas les suites
possibles pour une position immédiatement. Nous le faisons uniquement
lorsqu’on commence l’analyse de cette position.
17
Form. et rés. de problèmes: Graphes et arbres de recherche (suite)
18
Form. et rés. de problèmes: Algorithme général de recherche
2 3 4
5 6 7 8
9 10 11 12
2 7 8
3 6 9 12
4 5 10 11
➢ Complétude :
○ BFS est complet (s’il existe une solution, elle sera trouvée)
○ par contre DFS ne l’est pas. En effet, s’il existe un cycle dans l’espace de
recherche alors certains nœuds peuvent être développés encore et encore
et l’algorithme ne s'arrêtera pas.
➢ Optimalité :
○ DFS n’est pas optimal car il retourne toujours la première solution qui est
la plus à gauche (sans tenir compte d’autres facteurs, comme la longueur
du chemin ou le coût de chaque nœud).
○ BFS est optimal si le seul facteur de coût est la longueur du chemin. Il ne
l’est souvent pas si d’autres facteurs d’optimalité sont pris en compte.
26
Recherche systématique : Comparaison entre BFS et DFS (suite)
➢ Complexité spatiale :
○ BFS maintient tous les nœuds de la profondeur actuelle en mémoire. Ainsi,
au pire des cas, BFS maintient bm nœuds, ou b est le nombre de nœuds
par profondeur et m la profondeur de l’arbre.
○ DFS maintient au plus b * m nœuds en mémoire, b étant le nombre de
nœuds par profondeur et m la profondeur de l’arbre.
DFS BFS
28
Recherche systématique : Autres algorithmes (suite)
29
Recherche La recherche heuristique (ou informée)
est un type de recherche où l'on dispose
heuristique d'indications quant au chemin menant
vers la solution.
30
Recherche heuristique : Compromis
31
Recherche heuristique : Compromis (suite)
32
Recherche heuristique : recherche gloutonne
35
Recherche La recherche locale est une recherche
heuristique qui cherche d'autres
locale solutions (possiblement optimales)
en se basant sur une solution initiale
(pas forcément optimale).
Pour ce faire, ces solutions sont
recherchées dans le voisinage de la
solution initiale.
Ainsi, la recherche locale passe de
solution en solution dans l'espace des
solutions possibles (l'espace de
recherche) en appliquant des
changements locaux, jusqu'à ce
qu'une solution jugée optimale soit
trouvée ou qu'une limite de temps soit
écoulée.
36
Recherche Locale : Hill-Climbing
38
Recherche Locale : Hill-Climbing (suite)
39
Recherche Locale : Hill-Climbing (suite)
Illustration de l’exemple 2
f(x) décroît
f(x) croît
f(x) croît
f(x) décroît
f(x)
Maximum global
trouvé avec b
Maximum local
trouvé avec a
a b 40
Recherche Locale : Hill-Climbing (suite)
➢ Remarques :
○ Cette méthode ne trouve pas forcément une solution optimale.
○ Ainsi, dans l’exemple précédent, un maximum local est trouvé,
mais pas forcément le maximum global.
■ Trouver un maximum global est uniquement garanti si la
fonction f(x) est convexe.
○ La solution trouvée dépend souvent de la solution initiale
choisie lors de l’initialisation.
41
Recherche Locale : Autres stratégies (pour aller plus loin)
43
Recherche adversiale : Principe
➢ Lors d’une recherche adversiale, l’agent peut choisir une action (le
prochain état) à développer. Mais l’action qui s’ensuit est choisie
par l’adversaire. L’action choisie par l’adversaire est :
○ Imprédictible (quoique, on peut supposer qu’il va choisir
l’action qui l’arrange le plus).
○ Est hostile (ou défavorable) à l’agent rationnel.
➢ Par exemple, aux jeux d’échecs, si l’agent prend les blancs, alors
l’agent va essayer de choisir le meilleur coup en tenant compte du
fait que les noirs vont aussi jouer leur meilleur coup.
44
Recherche adversiale : Types
45
Recherche adversiale : Algorithme minimax
46
Recherche adversiale : Algorithme minimax (suite)
➢ Fonction d’évaluation : c’est une fonction qui évalue un état sans recherche .
Pour mieux comprendre, prenons le cas des jeux d’échecs.
➢ Chaque pièce prend une valeur : le pion (+1), le fou et le cavalier (+3), la tour
(+5) et la reine (+9).
➢ Une fonction d’évaluation possible (la plus simple) consiste à additionner la
valeur de toutes les pièces de l’agent et soustraire les valeurs des pièces de
l'adversaire.
➢ Exemple : il nous reste (à l’agent) un cavalier et un pion, et il reste à l’adversaire
une reine. Le score calculé sera : S = 3 + 1 - 9 = -5. Le score est négatif donc
l’adversaire est gagnant. Nous cherchons à augmenter ce score pour gagner.
➢ Bien évidemment, si l’un des deux joueurs est en échec et mat, alors le score
sera de plus ou moins l’infini.
➢ Attention ! il s’agit là de la fonction la plus simple. En pratique, plus de
paramètres sont pris en compte (la sécurité du roi, les espaces, la structure des
pions, etc.). Voir ici https://www.chessprogramming.org/Evaluation pour plus de détails.
47
Recherche adversiale : Algorithme minimax (suite)
48
Recherche adversiale : Algorithme minimax (suite)
Adversaire
8 7
(MIN)
Agent (MAX) 7 22
12 8 15
Adversaire 12 5 8 15 3 7 2 22 17
(MIN)
Pour être sûr d'améliorer son score, l’agent doit choisir l’action le menant au nœud
avec le score 8.
49
Recherche adversiale : Algorithme minimax (suite)
Explications :
➢ La fonction estTerminal() indique si le nœud n’a pas d’enfants possibles
(exemple, aux jeux d’échecs, c’est un nœud qui correspond à un échec et mat
ou une partie nulle).
➢ La fonction évaluer() retourne le score du nœud (comme précédemment
indiqué).
Fonctionnement :
➢ Initialement, la fonction minimax() est appelée pour chaque nœud possible. Le
nœud qui maximise le score est choisi.
➢ Pour faire “remonter” le score correspondant à un nœud :
○ Lorsque c’est à l’agent de choisir une action, le score du nœud considéré
est maximisé (l’agent choisit l’action qui augmente son score).
○ Lorsque c’est à l'adversaire de choisir une action, le score du noeud
considéré est minimisé (l’adversaire choisit l’action qui diminue le score de
l’agent).
51
Recherche adversiale: Autres stratégies (pour aller plus loin)
53
Fin