Vous êtes sur la page 1sur 11

Sommaire

3 Représentation et résolution des problèmes - Recherche non informée 2

2
3.1 Arbre de recherche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
3.2 Stratégie de recherche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
3.2.1 Fonctionnement d’une stratégie de recherche . . . . . . . . . . . . . . . . 3
3.2.2 Evaluation d’une stratégie de recherche . . . . . . . . . . . . . . . . . . . 3
3.3 Stratégies non informées(Aveugles) . . . . . . . . . . . . . . . . . . . . . . . . . 3
3.3.1 Recherche en largeur d’abord(Breadth-first search) . . . . . . . . . . . . 3
3.3.2 Reherche en coût uniforme - algorithme de Dijkstra . . . . . . . . . . . . 5
3.3.3 Recherche en profondeur d’abord . . . . . . . . . . . . . . . . . . . . . . 7
3.3.4 Recherche en profondeur limitée . . . . . . . . . . . . . . . . . . . . . . 10
3.3.5 Recherche en profondeur itérative . . . . . . . . . . . . . . . . . . . . . . 10
3.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

1
Chapitre 3

Représentation et résolution des


problèmes - Recherche non informée

3.1 Arbre de recherche


L’idée d’un algorithme de recherche de base est la recherche hors ligne, i.e. exploration de
l’espace d’états en générant des successeurs d’états déjà générés (développer des états), ce qui
conduit à la génération d’un arbre de recherche.
On arrête la génération lorsqu’on a choisi de développer un nœud qui est un état final.
L’implémentation d’un algorithme de recherche se base sur les nœuds.

Différence entre état et nœud Un état est une représentation d’une configuration physique
du monde, alors qu’un nœud est une structure de données qui est partie intégrante de l’arbre
de recherche et qui inclue :
• L’état
• Le parent
• L’enfant
• La profondeur
• Le coût du chemin (noté g(x))
Les algorithmes de recherche utilisent aussi au moins les deux fonctions suivantes :
• Expand crée de nouveaux nœuds
• Insert − F n insère de nouveaux nœuds dans la liste à traiter.

2
Par : Dr S. Mechiouri Représentation et résolution des problèmes Année 2023/2024

3.2 Stratégie de recherche


Dans le but d’effectuer une recherche de solution, les algorithmes de recherchent doivent
suivre une stratégie dans le choix des état à développer en gérant le retour sur ces choix tout
en évitant l’explosion combinatoire 1 . C’est ce qu’on appelle stratégie de recherche

3.2.1 Fonctionnement d’une stratégie de recherche


Les différents attributs des nœuds sont initialisés par la fonction Expand. La stratégie de
recherche consiste à définir l’ordre dans lequel les nœuds sont développés , i.e la fonction Insert-
Fn va différer d’une stratégie à une autre.

3.2.2 Evaluation d’une stratégie de recherche


Une stratégie s’évalue en fonction de 4 dimensions :
1. la complétude : est-ce que cette stratégie trouve toujours une solution si elle existe ?
2. la complexité en temps : le nombre de nœuds créés –nombre d’opérations nécessaires
à son exécution dans le pire des cas.
3. la complexité en mémoire : le nombre maximum de nœuds en mémoire
4. l’optimalité : est-ce que la stratégie trouve toujours la solution la moins coûteuse ?

La complexité en temps et en mémoire se mesure en termes de :


• b : le facteur maximum de branchement de l’arbre de recherche, i.e.,le nombre maxi-
mum de fils des nœuds de l’arbre de recherche
• d : la profondeur de la solution la moins coûteuse
• m : la profondeur maximale de l’arbre de recherche

Attention m peut être ∞

3.3 Stratégies non informées(Aveugles)


Les statégies de recherche non informées utilisent seulement les informations disponibles
dans le problème. elles réalisent une recherche exhaustive, sans utiliser aucune information
concernant la structure de l’espace d’états pour optimiser la recherche.

3.3.1 Recherche en largeur d’abord(Breadth-first search)


la stratégie de la recherche en largeur d’abord est d’explorer tous les fils d’un nœud d’abord.
Quand le système est dans un état donné, on engendre tous les états qui peuvent être
obtenus à partir de cet état avec les opérateurs dont on dispose.
• La fonction Insert-Fn ajoute les successeurs en fin de liste (FIFO).
• C’est un succès quand l’état engendré est l’état final recherché.
• Sinon on mémorise l’ensemble des états engendrés et on réitère pour chacun d’eux, tour
à tour, le même procédé.
1. Phénomène caractérisé par la croissance exponentielle du nombre de solutions possibles, proposées à la
suite d’un calcul dans un programme, et qui rend impossible l’obtention d’un résultat.

3 sur 11
Par : Dr S. Mechiouri Représentation et résolution des problèmes Année 2023/2024

L’algorithme de la recherche en largeur d’abord Les algorithmes de recherche utilisent


les deux listes suivantes :
• OPEN : représentant l’ensemble des états engendrés non encore traités.
• CLOSED/VISITED : sert à mémoriser l’ensemble des nœuds déjà traités.
L’algorithme suit le principe suivant :

Exemple d’exécution d’une recherche en largeur

4 sur 11
Par : Dr S. Mechiouri Représentation et résolution des problèmes Année 2023/2024

Propriétés de la recherche en largeur d’abord


• Complet, si b est fini ⇒ b : On suppose que chaque état a b successeurs
• Complexité en temps : 1 + b + b2 + b3 + ... + bd = O(bd ) ⇒ d : la profondeur de la
solution
• Complexité en espace : O(bd ) (garde tous les nœuds en mémoire)
• Optimale si coût = 1 pour chaque pas, mais non optimale dans le cas général
⇒ L’espace est le plus gros problème

3.3.2 Reherche en coût uniforme - algorithme de Dijkstra


Contrairement à la recherche en largeur, elle s’étend en vagues de chemins à coût uniforme.
La fonction Insert − F n ajoute les nœuds dans l’ordre du coût g(x) dans OPEN (Du plus
petit au plus grand ). Sachant que g(x) est le coût du chemin de l’état initial vers l’état x.

5 sur 11
Par : Dr S. Mechiouri Représentation et résolution des problèmes Année 2023/2024

Exemple d’exécution d’une recherche en coût uniforme

Open ={(S,0)}

Open ={(A,0),(C,5),(B,15)}
CLOSED= {S}

Open ={(C,5),(G,11),(B,15)}
CLOSED= {S,A}

Open ={(G,10),(G,11),(B,15)}
CLOSED= {S,A,C}

CLOSED= {S,A,G} But atteint.

6 sur 11
Par : Dr S. Mechiouri Représentation et résolution des problèmes Année 2023/2024

Propriétés de la recherche en coût uniforme


• Équivalent à la largeur d’abord si le coût est toujours le même.
• Complet si le coût de chaque pas est strictement supérieur à 0.
• Complexité en temps : O(b1+⌊C∗/£⌋ ) : nombre de nœuds pour lesquels g ≤ C∗ où C∗ est
le coût de la solution optimale.
• Complexité en espace : idem que la complexité en temps.
• Optimale car les nœuds sont développés en fonction de g.

3.3.3 Recherche en profondeur d’abord


Le système étant dans un état donné, Il faut engendrer tous les états pouvant en être issus.
La fonction Insert − F n ajoute les successeurs en début de liste OPEN (LIFO).

Exemple d’exécution d’une recherche en profondeur d’abord

7 sur 11
Par : Dr S. Mechiouri Représentation et résolution des problèmes Année 2023/2024

8 sur 11
Par : Dr S. Mechiouri Représentation et résolution des problèmes Année 2023/2024

9 sur 11
Par : Dr S. Mechiouri Représentation et résolution des problèmes Année 2023/2024

Propriétés de la recherche en profondeur


• Non complet dans les espaces d’états infinis ou avec boucle Il est possible d’ajouter un
test pour détecter les répétitions
• Complexité en temps : O(bm ) ⇒ m : la profondeur maximale de l’arbre de recherche.
• Très mauvais si m est beaucoup plus grand que b.
• Complexité en espace : O(bm) Linéaire !
• Non optimale

3.3.4 Recherche en profondeur limitée


Algorithme de recherche en profondeur d’abord, mais avec une limite l sur la profondeur.
Les nœuds de profondeur l n’ont pas de successeurs.

Propriétés
• Complet si L ≥ d d : la profondeur de la solution la moins coûteuse.
• Complexité en temps : O(bL)
• Complexité en espace : O(bL)
• Non optimale

3.3.5 Recherche en profondeur itérative


Profondeur limitée, mais en essayant toutes les profondeurs : 1, 2, 3, . . .
Évite le problème de trouver une limite pour la recherche profondeur limitée
Combine les avantages de largeur d’abord (complète et optimale), mais a la complexité en
espace de profondeur d’abord.

10 sur 11
Par : Dr S. Mechiouri Représentation et résolution des problèmes Année 2023/2024

Propriétés
Peut paraître du gaspillage car beaucoup de nœuds sont étendus de multiples fois Mais
la plupart des nouveaux nœuds étant au niveau le plus bas, ce n’est pas important d’étendre
plusieurs fois les nœuds des niveaux supérieurs.
• Complet
• Complexité en temps : (d + 1)b0 + db1 + (d − 1)b2 + ... + bd = O(bd ) -d : la profondeur
de la solution la moins coûteuse
• Complexité en espace : O(bd)
• Optimale : oui, si le coût de chaque action est de 1. Peut être modifiée pour une stratégie
de coût uniforme

3.4 Conclusion
Le tableau suivant est un tableau comparatif des différentes stratégies de recherches non
informées.

11 sur 11

Vous aimerez peut-être aussi