SlideShare ist ein Scribd-Unternehmen logo
1 von 50
Downloaden Sie, um offline zu lesen
Intelligence Artificielle
Dorra BEN AYED
Chapitre 2
Résolution de problème en IA
Par recherche
3
Introduction
™ Résoudre un pb c’est chercher un chemin
qui permet d’aller d’une situation initiale à
une situation finale (but)
Situation
initiale
Situation
Finale
? Trouver ce chemin
4
Introduction
Pour résoudre un problème il arrive qu’on puisse le
décomposer en sous-problèmes puis décomposer
ceux-ci, etc.,
Æjusqu’à n’avoir plus que des problèmes dont la
solution est considérée comme immédiatement
accessible sans qu’il soit nécessaire de les
décomposer à leur tour.
™ L’ensemble des décompositions possibles peut être
représenté par un “ graphe des sous-problèmes ”.
ÆLa résolution d’un problème est alors ramenée à la
recherche d’un certain sous-graphe du graphe des
sous-problèmes.
5
Introduction
Un graphe sans cycle Æ arbre
Certains sommets marquent une conjonction de sous problèmes dont la
résolution implique celle du problème décomposé.
D’autres sommets marquent une disjonction de décompositions possibles.
ET
OU
ET
OU
Arbre ET/OU
6
Exemple
™ un état est une
configuration du
tableau 4x4
On distingue:
™ L’état initial
™ Un ou plusieurs états
finaux
1 3 14 5
9 11 4 12
6 10 2 8
7 13 15
13 3 5 15
9 4 12
6 10 2 8
7 11 1 14
6 3 14 5
9 12 4
1 10 2 8
7 11 13 15
3 14 15
9 11 4 12
6 10 2 1
5 8 13 7
Etat initial
7
Représenter le problème
Le monde réel est excessivement complexe
l'espace d'états doit être une abstraction de la réalité
•Les états du problème (abstrait) = ensemble d'états réels
•L’objectif à atteindre: solution (abstraite) = ensemble de chemins-
solutions dans le monde réel
• Les opérateurs de transformations (abstrait) = combinaison
d'actions réelles (représentation par graphe)
Il faut définir:
8
Types de problèmes
™ déterministe, accessible Æ problème à état unique
ƒ état exact connu
ƒ effets des actions connus
™ déterministe, inaccessible Æ problème à états multiples
ƒ un ensemble parmi plusieurs ensembles d'états
ƒ effets des actions connus
™ non déterministe, inaccessible Æ problème contingent
(perception limitée, algorithmes plus complexes)
ƒ besoin de percevoir durant l'exécution
ƒ solution a une structure d'arbre
ƒ souvent mélange entre recherche et exécution
ƒ effet conditionnel des actions
™ espace d'états inconnu Æ problème d'exploration ("online")
ƒ exécution révèle les états
ƒ besoin d'expérimenter pour trouver la solution
ƒ le plus difficile
9
Formulation d'un problème à état unique
Un problème est défini par 4 éléments:
™ état initial
™ opérateurs (ou fonction successeur S(x))
™ Test-but: fonction applicable à un état qui
détermine si c'est l'état solution.
™ Coût-chemin: permet de déterminer quel est le
meilleur chemin menant à la solution si plusieurs
chemins existent.
une solution est une séquence d'opérateurs
menant de l'état initial à l'état final (solution)
10
Exemple: assemblage automatique
• état initial: coordonnées des articulations du robot et pièces à assembler
• opérateurs: mouvements continus du bras robotique
• test-but: assemblage terminé, robot en position de repos
• coût-chemin: temps d'exécution
11
Exemple : jeu de taquin (puzzle)
Configuration initiale
Etat initial
Configuration finale
Etat final
• état initial: positions des 8 plaquettes dans une des 9 cases
• opérateurs: déplacer la case vide
• test-but: état courant = état final
• coût-chemin: chaque déplacement coûte 1,
coût total = nombre de déplacements
12
Opérateurs du jeu taquin
™ Un opérateur transforme un état en un autre
état.
™ Il existe quatre opérateurs pour le taquin:
ƒ déplacer la case vide en haut
ƒ déplacer la case vide en bas
ƒ déplacer la case vide à gauche
ƒ déplacer la case vide à droite
13
Représentation par graphes d’états
L’application des opérateurs sur les états en
démarrant de l’état initial conduit à la
construction d’une arborescence
14
Problème général de recherche
?
Représentation
par un arbre
Graphe d’état général
A
G
k
L
O
M
N
I
F
c
E
H
D
B
15
États vs. noeuds
• Un état est une représentation d'une configuration physique
• un noeud est un élément d'une structure de donnée constitutive d'un
arbre de recherche; il possède les informations de:
– parent, enfants, profondeur, coût de chemin g(x)
16
Méthodes de recherche
• Méthodes de recherche « aveugles » = Explorations non informées
– recherche en largeur
– recherche en profondeur
– recherche en profondeur limitée
– recherche par approfondissement itératif
• Méthodes de recherche heuristiques = Explorations informées
Stratégies d’exploration
17
Critères d'évaluation
Les différentes méthodes de recherche sont évaluées selon les critères suivants:
• Complétude: est-ce que la méthode garantit de trouver une solution si elle existe?
• Complexité en temps: combien de temps faut-il pour trouver la solution?
• Complexité en espace: quel espace mémoire faut-il pour effectuer la recherche?
• Optimalité: est-ce que la méthode trouve la meilleure solution s'il en existe
plusieurs?
• Les complexités en temps et en espace sont mesurée en fonction de:
– b = facteur de branchement maximum de l'arbre de recherche
– d = profondeur à laquelle se trouve le (meilleur) noeud-solution
– m = profondeur maximum de l'espace de recherche (espace d'états ou
arbre de recherche) - peut être infini
18
Exercice 1: problème du fermier
™ quartes acteurs le fermier(f), le loup(l), la chèvre (c) et le
chou (C) se trouvent sur la rive gauche d’une rivière.
™ On considère:
ƒ Un bateau qui peut transporter le fermier seul ou avec un des
trois acteurs restants de gauche à droite
ƒ Un bateau qui peut transporter le fermier seul ou avec un des
trois acteurs restants de droite à gauche
ƒ Le loup peut manger la chèvre sans présence du fermier
ƒ La chèvre peut manger le chou sans présence du fermier
Pb?
Comment faire pour passer les 4 acteurs à l’autre rive
19
Algorithme de recherche
Largeur d’abord
(breadth-first-search)
20
Principe de la recherche en largeur
™ L’expansion des noeuds les moins récemment engendrés
s’effectue en premier
™ L’arborescence est construite niveau après niveau et donc
de manière horizontale
™ Stratégie: étend le
noeud le moins
profond
™ Implémentation:
™ insertion des
successeurs à la fin
de la file d'attente
21
Algorithme
1-Insérer le noeud initial s dans une liste appelée OPEN
2-Si OPEN est vide alors échec sinon continuer
3-Retirer le premier noeud de OPEN et l’insérer dans une liste
appelée CLOSED. Soit n ce noeud.
4-S’il n’existe pas de successeur alors aller à 2. Engendrer les
successeurs de n et les insérer à la queue de OPEN. Créer
un chaînage de ces noeuds vers n
5-Si parmi les successeurs, il existe un état final alors succès:
la solution est obtenue en suivant le chaînage arrière de ce
noeud vers la racine, sinon aller à 2
22
Propriétés de la recherche en largeur
• Complétude Oui (si b est fini)
• Complexité en temps
1 + b + b2 + b3 + … + bd = O(bd) (exponentiel en d)
• Complexité en espace O(bd) (il faut garder
chaque noeud en mémoire)
• Optimalité Oui (si coût = 1 par étape )
en général pas optimal
23
Exercice 2 : taquin 3x3
™Appliquer la recherche en largeur d’abord
sur la donnée suivante:
Configuration initiale
Etat initial
Configuration finale
Etat final
1 3
2
6
5
8
4
7
1 3
2
4
8
6 5
7
24
Solution Exercice 2
1 2
8 6
3
7 5 4
1 2
3
8 6
7 5 4
1 2
4
8 6
3
7 5
1 2
6
8
3
7 5 4
1
3
8 6
2
7 5 4
1 2
4
8 6
2
7 5
1
6
8 2
3
7 5 4
1 2
6
8 5
2
7 4
1 2
6
8
2
7 5 4
1 6
3
8
2
7 5 4
1
3
8 6
2
7 5 4
1 2
8 4
3
7 6 5
Etat initial
(0)
Etat But
(1) (2) (3)
(4) (5) (6) (7) (8)
(11)
(10)
(9)
( ): numéro donnant l’ordre de développement
25
Algorithme de recherche
profondeur d’abord
(depth-first-search)
26
Principe de recherche en profondeur
™ Stratégie: étend le noeud le plus profond
™ Implémentation: insertion des successeurs en tête de la
file d'attente
Attention aux cycles
infinis !
Il faut un espace de
recherche fini et sans
cycle,
nécessité d'éliminer
les nœuds déjà
rencontrés.
27
Algorithme de recherche en profondeur
Les nœuds sont numérotés dans l'ordre de leur exploration
28
Propriétés de la recherche en profondeur
• Complétude : Non
échoue dans les espaces infinis ou avec cycle
Æ complet dans les espaces finis acycliques
• Complexité en temps :
O(bm) = terrible si m est beaucoup plus grand que d
• Complexité en espace: O(b * m) linéaire!
• Optimalité : Non
• discussion: besoins modestes en espace
– pour b = 10, d = 12 et 100 octets/noeud:
• recherche en profondeur a besoin de 12 Koctets
• recherche en largeur a besoin de 111 Tera-octets
* 1010 !!!
29
Algorithme de recherche
profondeur limitée
30
Principe de la recherche en profondeur
limitée
31
Principe de la recherche en
profondeur limitée
™ algorithme de recherche en profondeur avec une
limite de profondeur d'exploration L
Implémentation
™ les noeuds de profondeur L n'ont pas de successeurs
™ exemple avec L = 2
32
Propriétés de la recherche en profondeur
limitée
™ Complétude: Oui si L ≥ d
™ Complexité en temps: O(bL)
™ Complexité en espace: O(b * L)
™ Optimalité: Non
33
Exercice 3 : taquin 3x3
™Reprendre l’exercice 2 en appliquant la
recherche en profondeur limitée à 3 sur la
donnée suivante:
Configuration initiale
Etat initial
Configuration finale
Etat final
1 3
2
6
5
8
4
7
1 3
2
4
8
6 5
7
34
Algorithme de recherche
approfondissement itératif
=
Itérative en profondeur
35
Principe de la recherche
itérative en profondeur
Æ Le problème avec la recherche en profondeur limitée est
de fixer la bonne valeur de L
• approfondissement itératif = essayer toutes les valeurs
possibles de L à partir de L = 0 (en incrémentant la limite)
• combine les avantages de la recherche en largeur et en
profondeur
– optimal et complet comme la recherche en largeur
– économe en espace comme la recherche en profondeur
• c'est l'algorithme de choix si l'espace de recherche est grand
et si la profondeur de la solution est inconnue
36
Exemple de la recherche
itérative en profondeur
37
Propriétés de la recherche
itérative en profondeur
™ Complétude Oui
™ Complexité en temps
(d+1)b0 + db1 + (d-1)b2 + … + bd = O(bd)
™ Complexité en espace O(b * d)
™ Optimalité Oui si coût = 1 par étape
38
Les méthodes heuristiques
(exploration informée)
39
Introduction aux heuristiques
™ Les méthodes aveugles (non informées) sont des méthodes
systématiques peu efficaces
™ Il existe des limites pratiques sur le temps d’exécution et
l’espace mémoire pour appliquer ces méthodes sur une grande
catégorie de problèmes
™ Toute technique visant à accélérer la recherche est basée sur
une information appelée heuristique
™ Une heuristique signifie ‘aider à découvrir’
™ Ils utilisent des sources d’information supplémentaires. Ces
algorithmes parviennent ainsi à des performances meilleures
™ Les méthodes utilisant des heuristiques sont dites méthodes de
recherche heuristiques
40
Implémentation des méthodes heuristiques
™ Utiliser un critère pour réordonner tous les
nœuds qui sont explorés (au lieu d’être mis dans
une pile ou file)
™ Une certaine mesure doit être établie pour
évaluer « la promesse » d’un nœud.
ÆCette mesure est appelée fonction
d’évaluation ou d’adéquation ou objective
41
Fonction d’évaluation
™ La recherche ordonnée revient à choisir à développer le
meilleur nœud au sens d’un certain critère
Î centrée sur le nœud ayant les meilleurs chances de
mener au but
™ L’utilisation d’une heuristique est basée sur une
fonction d’évaluation pour ordonner la recherche
appelée fonction heuristique nommée
h(u)
™ h est la fonction heuristique qui estime le coût
du passage de l'état u à l'état final.
42
Méthode d’évaluation
™ Soit f une fonction d’évaluation, f(n) exprime la
valeur de cette fonction pour le noeud n
™ f*(n) représente le coût idéal du chemin passant
par un nœud n pour arriver au but
I
B
n
f*(n)
g*(n)
h*(n)
f*(n) = g*(n) + h*(n)
Etat
initial
Etat
But
Nœud
n
43
™Estimation de g*
™ g* peut être le coût du meilleur
Chemin déjà rencontré de I à n
™ Soit g cette fonction du coût on a
g(n) ≥ g* (n)
ÆLe choix de g est très dépendant
du domaine traité
ÆExemple pour le jeu de taquin
g(n) le nombre de jeton déplacé
(la longueur de la chaîne entre la
racine et n)
I
B
n
f*(n)
g*(n)
h*(n)
f*(n) = g*(n) + h*(n)
Etat
initial
Etat
But
Nœud
n
Méthode d’évaluation
44
™ Estimation de h*
™ plus difficile car on connaît
pas de chemin de n Æ But
™ Il faut se référer à des informations
heuristiques sur le domaine
™ Æ l’algorithme se fondant sur f(n)
pour ordonner les nœud est nommé
l’Algorithme A
I
B
n
f*(n)
g*(n)
h*(n)
f*(n) = g*(n) + h*(n)
Etat
initial
Etat
But
Nœud
n
Méthode d’évaluation
•L’algorithme A* est une stratégie du meilleur en premier dans le cadre des
graphes OU et des problèmes de minimisation des coûts additifs.
•L’algorithme A* est chargé de calculer le plus court chemin menant de l’état
initial à l’état final.
45
Exercice 4: Recherche heuristique avec A*
™f(n)=g(n) +h(n)
avec
™g : nombre de jetons déplacés
™h: nombre de jetons mal placés
Configuration initiale
Etat initial
Configuration finale
Etat final
1 3
2
6
5
8
4
7
1 3
2
4
8
6 5
7
46
Exercice 5: recherche avec algorithme A*
Rappel
Mouvements légaux: Déplace le <blanc> vers:
- le haut - la droite
- le bas - la gauche
Contraintes: Les mouvements en diagonal sont interdits
Configuration initiale
Etat initial
Configuration finale
Etat final
2 3
8
6
5
1 4
7
1 3
2
4
8
6 5
7
47
Votre tour..!
™ Dans la vie réelle on utilise aussi l’heuristique:
™ Exemple: Au supermarché, on choisit la
queue la moins longue ou alors on choisit la
queue dans laquelle les clients on le plus petit
nombre d’objets dans leur panier.
™ Avez-vous d’autres exemples?
48
Votre tour..!
™Allez: et jouer et commenter
™http://www.dc.fi.udc.es/lidia/mariano/de
mos/8puzzle/EightPuzzle.htm
49
Résumé
™ Les algorithmes de recherche sont une technologie de base
importante en Intelligence Artificielle.
™ Recherche d’arbres en profondeur d’abord: utilise peu de
mémoire, mais peut rater la solution optimale.
™ Recherche d’arbres en largeur d’abord: gourmande en
™ mémoire, mais trouve toujours la solution optimale.
™ Recherche heuristique: A* peut trouver la solution optimale
de manière efficace.
chap2 algorithme de recherche.pdf

Weitere ähnliche Inhalte

Was ist angesagt?

Chapitre4: Pointeurs et références
Chapitre4: Pointeurs et références Chapitre4: Pointeurs et références
Chapitre4: Pointeurs et références Aziz Darouichi
 
Introduction à l’orienté objet en Python
Introduction à l’orienté objet en PythonIntroduction à l’orienté objet en Python
Introduction à l’orienté objet en PythonAbdoulaye Dieng
 
Développement informatique : Algorithmique II : Techniques de recherche en in...
Développement informatique : Algorithmique II : Techniques de recherche en in...Développement informatique : Algorithmique II : Techniques de recherche en in...
Développement informatique : Algorithmique II : Techniques de recherche en in...ECAM Brussels Engineering School
 
Algebre relationelle
Algebre relationelleAlgebre relationelle
Algebre relationellehnsfr
 
POO Java Chapitre 1 Classe & Objet
POO Java Chapitre 1 Classe & ObjetPOO Java Chapitre 1 Classe & Objet
POO Java Chapitre 1 Classe & ObjetMouna Torjmen
 
Cours les Listes doublement chainées Prof. KHALIFA MANSOURI
Cours les Listes doublement chainées Prof. KHALIFA MANSOURI Cours les Listes doublement chainées Prof. KHALIFA MANSOURI
Cours les Listes doublement chainées Prof. KHALIFA MANSOURI Mansouri Khalifa
 
Chapitre 5 classes abstraites et interfaces
Chapitre 5  classes abstraites et interfacesChapitre 5  classes abstraites et interfaces
Chapitre 5 classes abstraites et interfacesAmir Souissi
 
Chapitre 6 traitement des exceptions
Chapitre 6  traitement des exceptionsChapitre 6  traitement des exceptions
Chapitre 6 traitement des exceptionsAmir Souissi
 
Exercice 1 java Héritage
Exercice 1 java HéritageExercice 1 java Héritage
Exercice 1 java HéritageNadaBenLatifa
 
Chapitre 3 la recherche tabou
Chapitre 3 la recherche tabouChapitre 3 la recherche tabou
Chapitre 3 la recherche tabouAchraf Manaa
 
Chapitre8: Collections et Enumerations En Java
Chapitre8: Collections et Enumerations En JavaChapitre8: Collections et Enumerations En Java
Chapitre8: Collections et Enumerations En JavaAziz Darouichi
 
Cours python avancé
Cours python avancéCours python avancé
Cours python avancépierrepo
 
Programmation orientée objet : Object, classe et encapsulation
Programmation orientée objet : Object, classe et encapsulationProgrammation orientée objet : Object, classe et encapsulation
Programmation orientée objet : Object, classe et encapsulationECAM Brussels Engineering School
 
Atelier Python 2eme partie par Achraf Kacimi El Hassani
Atelier Python 2eme partie par Achraf Kacimi El HassaniAtelier Python 2eme partie par Achraf Kacimi El Hassani
Atelier Python 2eme partie par Achraf Kacimi El HassaniShellmates
 

Was ist angesagt? (20)

Chapitre4: Pointeurs et références
Chapitre4: Pointeurs et références Chapitre4: Pointeurs et références
Chapitre4: Pointeurs et références
 
Introduction à l’orienté objet en Python
Introduction à l’orienté objet en PythonIntroduction à l’orienté objet en Python
Introduction à l’orienté objet en Python
 
Développement informatique : Algorithmique II : Techniques de recherche en in...
Développement informatique : Algorithmique II : Techniques de recherche en in...Développement informatique : Algorithmique II : Techniques de recherche en in...
Développement informatique : Algorithmique II : Techniques de recherche en in...
 
Algebre relationelle
Algebre relationelleAlgebre relationelle
Algebre relationelle
 
POO Java Chapitre 1 Classe & Objet
POO Java Chapitre 1 Classe & ObjetPOO Java Chapitre 1 Classe & Objet
POO Java Chapitre 1 Classe & Objet
 
TP C++ : Correction
TP C++ : CorrectionTP C++ : Correction
TP C++ : Correction
 
système multi agent
système multi agentsystème multi agent
système multi agent
 
Algorithmes de jeux
Algorithmes de jeuxAlgorithmes de jeux
Algorithmes de jeux
 
Cours les Listes doublement chainées Prof. KHALIFA MANSOURI
Cours les Listes doublement chainées Prof. KHALIFA MANSOURI Cours les Listes doublement chainées Prof. KHALIFA MANSOURI
Cours les Listes doublement chainées Prof. KHALIFA MANSOURI
 
Chapitre 5 classes abstraites et interfaces
Chapitre 5  classes abstraites et interfacesChapitre 5  classes abstraites et interfaces
Chapitre 5 classes abstraites et interfaces
 
Chapitre 6 traitement des exceptions
Chapitre 6  traitement des exceptionsChapitre 6  traitement des exceptions
Chapitre 6 traitement des exceptions
 
Cours java
Cours javaCours java
Cours java
 
Ch 01 poo
Ch 01 pooCh 01 poo
Ch 01 poo
 
Exercice 1 java Héritage
Exercice 1 java HéritageExercice 1 java Héritage
Exercice 1 java Héritage
 
Chapitre 3 la recherche tabou
Chapitre 3 la recherche tabouChapitre 3 la recherche tabou
Chapitre 3 la recherche tabou
 
Chapitre8: Collections et Enumerations En Java
Chapitre8: Collections et Enumerations En JavaChapitre8: Collections et Enumerations En Java
Chapitre8: Collections et Enumerations En Java
 
Cours python avancé
Cours python avancéCours python avancé
Cours python avancé
 
Programmation orientée objet : Object, classe et encapsulation
Programmation orientée objet : Object, classe et encapsulationProgrammation orientée objet : Object, classe et encapsulation
Programmation orientée objet : Object, classe et encapsulation
 
Atelier Python 2eme partie par Achraf Kacimi El Hassani
Atelier Python 2eme partie par Achraf Kacimi El HassaniAtelier Python 2eme partie par Achraf Kacimi El Hassani
Atelier Python 2eme partie par Achraf Kacimi El Hassani
 
Python avancé : Classe et objet
Python avancé : Classe et objetPython avancé : Classe et objet
Python avancé : Classe et objet
 

Ähnlich wie chap2 algorithme de recherche.pdf

Développement informatique : Algorithmique I : Récursion et arbre
Développement informatique : Algorithmique I : Récursion et arbreDéveloppement informatique : Algorithmique I : Récursion et arbre
Développement informatique : Algorithmique I : Récursion et arbreECAM Brussels Engineering School
 
La recherche opérationnelle et l'optimisation combinatoire
La recherche opérationnelle et l'optimisation combinatoireLa recherche opérationnelle et l'optimisation combinatoire
La recherche opérationnelle et l'optimisation combinatoiresarah Benmerzouk
 
Algorithmes récursifs : une introduction pragmatique pour un enseignement au ...
Algorithmes récursifs : une introduction pragmatique pour un enseignement au ...Algorithmes récursifs : une introduction pragmatique pour un enseignement au ...
Algorithmes récursifs : une introduction pragmatique pour un enseignement au ...RichardTerrat1
 
165380609 livre-professeur-maths-1ere-s
165380609 livre-professeur-maths-1ere-s165380609 livre-professeur-maths-1ere-s
165380609 livre-professeur-maths-1ere-sEttaoufik Elayedi
 
Cours-optimisation.pdf
Cours-optimisation.pdfCours-optimisation.pdf
Cours-optimisation.pdfMouloudi1
 
ALGEBRE BINAIRE ET CIRCUITS LOGIQUES
ALGEBRE BINAIRE ET CIRCUITS LOGIQUESALGEBRE BINAIRE ET CIRCUITS LOGIQUES
ALGEBRE BINAIRE ET CIRCUITS LOGIQUESsarah Benmerzouk
 
Les vecteurs seconde2020.pptx
Les vecteurs seconde2020.pptxLes vecteurs seconde2020.pptx
Les vecteurs seconde2020.pptxrezgui10
 
optimisation cours.pdf
optimisation cours.pdfoptimisation cours.pdf
optimisation cours.pdfMouloudi1
 
Les algorithmes avancés
Les algorithmes avancésLes algorithmes avancés
Les algorithmes avancésmohamed_SAYARI
 
Les vecteurs seconde2020.pdf
Les vecteurs seconde2020.pdfLes vecteurs seconde2020.pdf
Les vecteurs seconde2020.pdfrezgui10
 

Ähnlich wie chap2 algorithme de recherche.pdf (20)

chapitre 5.pptx
chapitre 5.pptxchapitre 5.pptx
chapitre 5.pptx
 
Développement informatique : Algorithmique I : Récursion et arbre
Développement informatique : Algorithmique I : Récursion et arbreDéveloppement informatique : Algorithmique I : Récursion et arbre
Développement informatique : Algorithmique I : Récursion et arbre
 
La recherche opérationnelle et l'optimisation combinatoire
La recherche opérationnelle et l'optimisation combinatoireLa recherche opérationnelle et l'optimisation combinatoire
La recherche opérationnelle et l'optimisation combinatoire
 
Oc1 2013
Oc1 2013Oc1 2013
Oc1 2013
 
cours algorithme
cours algorithmecours algorithme
cours algorithme
 
Planification
Planification Planification
Planification
 
coursAlgo_V5.pdf
coursAlgo_V5.pdfcoursAlgo_V5.pdf
coursAlgo_V5.pdf
 
IA
IAIA
IA
 
Rapport MOGPL
Rapport MOGPLRapport MOGPL
Rapport MOGPL
 
Algorithmes récursifs : une introduction pragmatique pour un enseignement au ...
Algorithmes récursifs : une introduction pragmatique pour un enseignement au ...Algorithmes récursifs : une introduction pragmatique pour un enseignement au ...
Algorithmes récursifs : une introduction pragmatique pour un enseignement au ...
 
165380609 livre-professeur-maths-1ere-s
165380609 livre-professeur-maths-1ere-s165380609 livre-professeur-maths-1ere-s
165380609 livre-professeur-maths-1ere-s
 
PLNE.pptx
PLNE.pptxPLNE.pptx
PLNE.pptx
 
Cours-optimisation.pdf
Cours-optimisation.pdfCours-optimisation.pdf
Cours-optimisation.pdf
 
ALGEBRE BINAIRE ET CIRCUITS LOGIQUES
ALGEBRE BINAIRE ET CIRCUITS LOGIQUESALGEBRE BINAIRE ET CIRCUITS LOGIQUES
ALGEBRE BINAIRE ET CIRCUITS LOGIQUES
 
Les vecteurs seconde2020.pptx
Les vecteurs seconde2020.pptxLes vecteurs seconde2020.pptx
Les vecteurs seconde2020.pptx
 
coursAlgo_V6.ppt
coursAlgo_V6.pptcoursAlgo_V6.ppt
coursAlgo_V6.ppt
 
optimisation cours.pdf
optimisation cours.pdfoptimisation cours.pdf
optimisation cours.pdf
 
Les algorithmes avancés
Les algorithmes avancésLes algorithmes avancés
Les algorithmes avancés
 
Actuariat et Données
Actuariat et DonnéesActuariat et Données
Actuariat et Données
 
Les vecteurs seconde2020.pdf
Les vecteurs seconde2020.pdfLes vecteurs seconde2020.pdf
Les vecteurs seconde2020.pdf
 

chap2 algorithme de recherche.pdf

  • 2. Chapitre 2 Résolution de problème en IA Par recherche
  • 3. 3 Introduction ™ Résoudre un pb c’est chercher un chemin qui permet d’aller d’une situation initiale à une situation finale (but) Situation initiale Situation Finale ? Trouver ce chemin
  • 4. 4 Introduction Pour résoudre un problème il arrive qu’on puisse le décomposer en sous-problèmes puis décomposer ceux-ci, etc., Æjusqu’à n’avoir plus que des problèmes dont la solution est considérée comme immédiatement accessible sans qu’il soit nécessaire de les décomposer à leur tour. ™ L’ensemble des décompositions possibles peut être représenté par un “ graphe des sous-problèmes ”. ÆLa résolution d’un problème est alors ramenée à la recherche d’un certain sous-graphe du graphe des sous-problèmes.
  • 5. 5 Introduction Un graphe sans cycle Æ arbre Certains sommets marquent une conjonction de sous problèmes dont la résolution implique celle du problème décomposé. D’autres sommets marquent une disjonction de décompositions possibles. ET OU ET OU Arbre ET/OU
  • 6. 6 Exemple ™ un état est une configuration du tableau 4x4 On distingue: ™ L’état initial ™ Un ou plusieurs états finaux 1 3 14 5 9 11 4 12 6 10 2 8 7 13 15 13 3 5 15 9 4 12 6 10 2 8 7 11 1 14 6 3 14 5 9 12 4 1 10 2 8 7 11 13 15 3 14 15 9 11 4 12 6 10 2 1 5 8 13 7 Etat initial
  • 7. 7 Représenter le problème Le monde réel est excessivement complexe l'espace d'états doit être une abstraction de la réalité •Les états du problème (abstrait) = ensemble d'états réels •L’objectif à atteindre: solution (abstraite) = ensemble de chemins- solutions dans le monde réel • Les opérateurs de transformations (abstrait) = combinaison d'actions réelles (représentation par graphe) Il faut définir:
  • 8. 8 Types de problèmes ™ déterministe, accessible Æ problème à état unique ƒ état exact connu ƒ effets des actions connus ™ déterministe, inaccessible Æ problème à états multiples ƒ un ensemble parmi plusieurs ensembles d'états ƒ effets des actions connus ™ non déterministe, inaccessible Æ problème contingent (perception limitée, algorithmes plus complexes) ƒ besoin de percevoir durant l'exécution ƒ solution a une structure d'arbre ƒ souvent mélange entre recherche et exécution ƒ effet conditionnel des actions ™ espace d'états inconnu Æ problème d'exploration ("online") ƒ exécution révèle les états ƒ besoin d'expérimenter pour trouver la solution ƒ le plus difficile
  • 9. 9 Formulation d'un problème à état unique Un problème est défini par 4 éléments: ™ état initial ™ opérateurs (ou fonction successeur S(x)) ™ Test-but: fonction applicable à un état qui détermine si c'est l'état solution. ™ Coût-chemin: permet de déterminer quel est le meilleur chemin menant à la solution si plusieurs chemins existent. une solution est une séquence d'opérateurs menant de l'état initial à l'état final (solution)
  • 10. 10 Exemple: assemblage automatique • état initial: coordonnées des articulations du robot et pièces à assembler • opérateurs: mouvements continus du bras robotique • test-but: assemblage terminé, robot en position de repos • coût-chemin: temps d'exécution
  • 11. 11 Exemple : jeu de taquin (puzzle) Configuration initiale Etat initial Configuration finale Etat final • état initial: positions des 8 plaquettes dans une des 9 cases • opérateurs: déplacer la case vide • test-but: état courant = état final • coût-chemin: chaque déplacement coûte 1, coût total = nombre de déplacements
  • 12. 12 Opérateurs du jeu taquin ™ Un opérateur transforme un état en un autre état. ™ Il existe quatre opérateurs pour le taquin: ƒ déplacer la case vide en haut ƒ déplacer la case vide en bas ƒ déplacer la case vide à gauche ƒ déplacer la case vide à droite
  • 13. 13 Représentation par graphes d’états L’application des opérateurs sur les états en démarrant de l’état initial conduit à la construction d’une arborescence
  • 14. 14 Problème général de recherche ? Représentation par un arbre Graphe d’état général A G k L O M N I F c E H D B
  • 15. 15 États vs. noeuds • Un état est une représentation d'une configuration physique • un noeud est un élément d'une structure de donnée constitutive d'un arbre de recherche; il possède les informations de: – parent, enfants, profondeur, coût de chemin g(x)
  • 16. 16 Méthodes de recherche • Méthodes de recherche « aveugles » = Explorations non informées – recherche en largeur – recherche en profondeur – recherche en profondeur limitée – recherche par approfondissement itératif • Méthodes de recherche heuristiques = Explorations informées Stratégies d’exploration
  • 17. 17 Critères d'évaluation Les différentes méthodes de recherche sont évaluées selon les critères suivants: • Complétude: est-ce que la méthode garantit de trouver une solution si elle existe? • Complexité en temps: combien de temps faut-il pour trouver la solution? • Complexité en espace: quel espace mémoire faut-il pour effectuer la recherche? • Optimalité: est-ce que la méthode trouve la meilleure solution s'il en existe plusieurs? • Les complexités en temps et en espace sont mesurée en fonction de: – b = facteur de branchement maximum de l'arbre de recherche – d = profondeur à laquelle se trouve le (meilleur) noeud-solution – m = profondeur maximum de l'espace de recherche (espace d'états ou arbre de recherche) - peut être infini
  • 18. 18 Exercice 1: problème du fermier ™ quartes acteurs le fermier(f), le loup(l), la chèvre (c) et le chou (C) se trouvent sur la rive gauche d’une rivière. ™ On considère: ƒ Un bateau qui peut transporter le fermier seul ou avec un des trois acteurs restants de gauche à droite ƒ Un bateau qui peut transporter le fermier seul ou avec un des trois acteurs restants de droite à gauche ƒ Le loup peut manger la chèvre sans présence du fermier ƒ La chèvre peut manger le chou sans présence du fermier Pb? Comment faire pour passer les 4 acteurs à l’autre rive
  • 19. 19 Algorithme de recherche Largeur d’abord (breadth-first-search)
  • 20. 20 Principe de la recherche en largeur ™ L’expansion des noeuds les moins récemment engendrés s’effectue en premier ™ L’arborescence est construite niveau après niveau et donc de manière horizontale ™ Stratégie: étend le noeud le moins profond ™ Implémentation: ™ insertion des successeurs à la fin de la file d'attente
  • 21. 21 Algorithme 1-Insérer le noeud initial s dans une liste appelée OPEN 2-Si OPEN est vide alors échec sinon continuer 3-Retirer le premier noeud de OPEN et l’insérer dans une liste appelée CLOSED. Soit n ce noeud. 4-S’il n’existe pas de successeur alors aller à 2. Engendrer les successeurs de n et les insérer à la queue de OPEN. Créer un chaînage de ces noeuds vers n 5-Si parmi les successeurs, il existe un état final alors succès: la solution est obtenue en suivant le chaînage arrière de ce noeud vers la racine, sinon aller à 2
  • 22. 22 Propriétés de la recherche en largeur • Complétude Oui (si b est fini) • Complexité en temps 1 + b + b2 + b3 + … + bd = O(bd) (exponentiel en d) • Complexité en espace O(bd) (il faut garder chaque noeud en mémoire) • Optimalité Oui (si coût = 1 par étape ) en général pas optimal
  • 23. 23 Exercice 2 : taquin 3x3 ™Appliquer la recherche en largeur d’abord sur la donnée suivante: Configuration initiale Etat initial Configuration finale Etat final 1 3 2 6 5 8 4 7 1 3 2 4 8 6 5 7
  • 24. 24 Solution Exercice 2 1 2 8 6 3 7 5 4 1 2 3 8 6 7 5 4 1 2 4 8 6 3 7 5 1 2 6 8 3 7 5 4 1 3 8 6 2 7 5 4 1 2 4 8 6 2 7 5 1 6 8 2 3 7 5 4 1 2 6 8 5 2 7 4 1 2 6 8 2 7 5 4 1 6 3 8 2 7 5 4 1 3 8 6 2 7 5 4 1 2 8 4 3 7 6 5 Etat initial (0) Etat But (1) (2) (3) (4) (5) (6) (7) (8) (11) (10) (9) ( ): numéro donnant l’ordre de développement
  • 25. 25 Algorithme de recherche profondeur d’abord (depth-first-search)
  • 26. 26 Principe de recherche en profondeur ™ Stratégie: étend le noeud le plus profond ™ Implémentation: insertion des successeurs en tête de la file d'attente Attention aux cycles infinis ! Il faut un espace de recherche fini et sans cycle, nécessité d'éliminer les nœuds déjà rencontrés.
  • 27. 27 Algorithme de recherche en profondeur Les nœuds sont numérotés dans l'ordre de leur exploration
  • 28. 28 Propriétés de la recherche en profondeur • Complétude : Non échoue dans les espaces infinis ou avec cycle Æ complet dans les espaces finis acycliques • Complexité en temps : O(bm) = terrible si m est beaucoup plus grand que d • Complexité en espace: O(b * m) linéaire! • Optimalité : Non • discussion: besoins modestes en espace – pour b = 10, d = 12 et 100 octets/noeud: • recherche en profondeur a besoin de 12 Koctets • recherche en largeur a besoin de 111 Tera-octets * 1010 !!!
  • 30. 30 Principe de la recherche en profondeur limitée
  • 31. 31 Principe de la recherche en profondeur limitée ™ algorithme de recherche en profondeur avec une limite de profondeur d'exploration L Implémentation ™ les noeuds de profondeur L n'ont pas de successeurs ™ exemple avec L = 2
  • 32. 32 Propriétés de la recherche en profondeur limitée ™ Complétude: Oui si L ≥ d ™ Complexité en temps: O(bL) ™ Complexité en espace: O(b * L) ™ Optimalité: Non
  • 33. 33 Exercice 3 : taquin 3x3 ™Reprendre l’exercice 2 en appliquant la recherche en profondeur limitée à 3 sur la donnée suivante: Configuration initiale Etat initial Configuration finale Etat final 1 3 2 6 5 8 4 7 1 3 2 4 8 6 5 7
  • 34. 34 Algorithme de recherche approfondissement itératif = Itérative en profondeur
  • 35. 35 Principe de la recherche itérative en profondeur Æ Le problème avec la recherche en profondeur limitée est de fixer la bonne valeur de L • approfondissement itératif = essayer toutes les valeurs possibles de L à partir de L = 0 (en incrémentant la limite) • combine les avantages de la recherche en largeur et en profondeur – optimal et complet comme la recherche en largeur – économe en espace comme la recherche en profondeur • c'est l'algorithme de choix si l'espace de recherche est grand et si la profondeur de la solution est inconnue
  • 36. 36 Exemple de la recherche itérative en profondeur
  • 37. 37 Propriétés de la recherche itérative en profondeur ™ Complétude Oui ™ Complexité en temps (d+1)b0 + db1 + (d-1)b2 + … + bd = O(bd) ™ Complexité en espace O(b * d) ™ Optimalité Oui si coût = 1 par étape
  • 39. 39 Introduction aux heuristiques ™ Les méthodes aveugles (non informées) sont des méthodes systématiques peu efficaces ™ Il existe des limites pratiques sur le temps d’exécution et l’espace mémoire pour appliquer ces méthodes sur une grande catégorie de problèmes ™ Toute technique visant à accélérer la recherche est basée sur une information appelée heuristique ™ Une heuristique signifie ‘aider à découvrir’ ™ Ils utilisent des sources d’information supplémentaires. Ces algorithmes parviennent ainsi à des performances meilleures ™ Les méthodes utilisant des heuristiques sont dites méthodes de recherche heuristiques
  • 40. 40 Implémentation des méthodes heuristiques ™ Utiliser un critère pour réordonner tous les nœuds qui sont explorés (au lieu d’être mis dans une pile ou file) ™ Une certaine mesure doit être établie pour évaluer « la promesse » d’un nœud. ÆCette mesure est appelée fonction d’évaluation ou d’adéquation ou objective
  • 41. 41 Fonction d’évaluation ™ La recherche ordonnée revient à choisir à développer le meilleur nœud au sens d’un certain critère Î centrée sur le nœud ayant les meilleurs chances de mener au but ™ L’utilisation d’une heuristique est basée sur une fonction d’évaluation pour ordonner la recherche appelée fonction heuristique nommée h(u) ™ h est la fonction heuristique qui estime le coût du passage de l'état u à l'état final.
  • 42. 42 Méthode d’évaluation ™ Soit f une fonction d’évaluation, f(n) exprime la valeur de cette fonction pour le noeud n ™ f*(n) représente le coût idéal du chemin passant par un nœud n pour arriver au but I B n f*(n) g*(n) h*(n) f*(n) = g*(n) + h*(n) Etat initial Etat But Nœud n
  • 43. 43 ™Estimation de g* ™ g* peut être le coût du meilleur Chemin déjà rencontré de I à n ™ Soit g cette fonction du coût on a g(n) ≥ g* (n) ÆLe choix de g est très dépendant du domaine traité ÆExemple pour le jeu de taquin g(n) le nombre de jeton déplacé (la longueur de la chaîne entre la racine et n) I B n f*(n) g*(n) h*(n) f*(n) = g*(n) + h*(n) Etat initial Etat But Nœud n Méthode d’évaluation
  • 44. 44 ™ Estimation de h* ™ plus difficile car on connaît pas de chemin de n Æ But ™ Il faut se référer à des informations heuristiques sur le domaine ™ Æ l’algorithme se fondant sur f(n) pour ordonner les nœud est nommé l’Algorithme A I B n f*(n) g*(n) h*(n) f*(n) = g*(n) + h*(n) Etat initial Etat But Nœud n Méthode d’évaluation •L’algorithme A* est une stratégie du meilleur en premier dans le cadre des graphes OU et des problèmes de minimisation des coûts additifs. •L’algorithme A* est chargé de calculer le plus court chemin menant de l’état initial à l’état final.
  • 45. 45 Exercice 4: Recherche heuristique avec A* ™f(n)=g(n) +h(n) avec ™g : nombre de jetons déplacés ™h: nombre de jetons mal placés Configuration initiale Etat initial Configuration finale Etat final 1 3 2 6 5 8 4 7 1 3 2 4 8 6 5 7
  • 46. 46 Exercice 5: recherche avec algorithme A* Rappel Mouvements légaux: Déplace le <blanc> vers: - le haut - la droite - le bas - la gauche Contraintes: Les mouvements en diagonal sont interdits Configuration initiale Etat initial Configuration finale Etat final 2 3 8 6 5 1 4 7 1 3 2 4 8 6 5 7
  • 47. 47 Votre tour..! ™ Dans la vie réelle on utilise aussi l’heuristique: ™ Exemple: Au supermarché, on choisit la queue la moins longue ou alors on choisit la queue dans laquelle les clients on le plus petit nombre d’objets dans leur panier. ™ Avez-vous d’autres exemples?
  • 48. 48 Votre tour..! ™Allez: et jouer et commenter ™http://www.dc.fi.udc.es/lidia/mariano/de mos/8puzzle/EightPuzzle.htm
  • 49. 49 Résumé ™ Les algorithmes de recherche sont une technologie de base importante en Intelligence Artificielle. ™ Recherche d’arbres en profondeur d’abord: utilise peu de mémoire, mais peut rater la solution optimale. ™ Recherche d’arbres en largeur d’abord: gourmande en ™ mémoire, mais trouve toujours la solution optimale. ™ Recherche heuristique: A* peut trouver la solution optimale de manière efficace.