Algorithmes de recherche non informée et informée

Découvre comment un agent d’IA trouve un chemin vers son but lorsqu’il existe bien trop de possibilités pour toutes les essayer. Transforme un problème en espace d’états, puis compare la recherche en largeur d’abord, la recherche à coût uniforme, la recherche en profondeur d’abord et la recherche par approfondissement itératif selon leurs garanties et leurs coûts. Utilise des estimations heuristiques pour mieux orienter la recherche gloutonne et A*, conçois des heuristiques qui préservent l’optimalité de A* et résous d’immenses problèmes d’optimisation par recherche par escalade, recuit simulé et algorithmes génétiques. Des exemples détaillés suivent les principaux algorithmes sur de petites cartes, des taquins et des échiquiers du problème des n dames ; les autres méthodes sont expliquées par leurs procédures et leurs comparaisons.

IntermédiaireUnité 2 sur 10 de la formation Formation : Intelligence artificielle : agents, recherche et apprentissage

Ce que tu vas apprendre

  1. Transforme un problème en un espace d’états qu’un algorithme peut explorer, suis le développement d’un arbre par la procédure générale de recherche et compare les algorithmes selon leur complétude, leur optimalité en coût, leur temps et leur consommation de mémoire.
    • Décrire un problème de recherche et son espace d’états
      Nomme les composantes d’un problème de recherche, représente son espace d’états par un graphe, choisis un niveau d’abstraction utile et estime la taille de l’espace.
    • Développer un arbre de recherche avec l’algorithme général de recherche
      Utilise les nœuds, la frontière et l’ensemble des états atteints pour expliquer comment un algorithme développe un arbre de recherche, évite de répéter du travail et reconstitue le chemin solution.
    • Mesurer et comparer les performances des algorithmes de recherche
      Évalue tout algorithme de recherche selon sa complétude, son optimalité en coût, son temps et sa mémoire, exprime son coût avec les paramètres b, d, m, C* et ε, et comprends pourquoi la croissance exponentielle limite la recherche non informée.
  2. Exécute à la main les recherches en largeur d’abord, à coût uniforme, en profondeur d’abord et par approfondissement itératif, explique leurs garanties et leurs coûts, puis choisis la stratégie adaptée à un problème.
    • Exécuter une recherche en largeur d’abord
      Explore un espace d’états couche par couche avec une file FIFO, suis l’algorithme sur une petite carte et indique quand il est complet et optimal en coût.
    • Trouver le chemin de coût minimal par recherche à coût uniforme
      Développe les nœuds par ordre de coût de chemin à l’aide d’une file de priorité, suis le déroulement de l’algorithme et explique pourquoi il est optimal en coût et quel est son coût.
    • Économiser la mémoire avec la recherche en profondeur d’abord et l’approfondissement itératif
      Suis le déroulement d’une recherche en profondeur d’abord, utilise une profondeur limite et explique comment l’approfondissement itératif associe la consommation de mémoire de la recherche en profondeur aux garanties de la recherche en largeur.
    • Comparer les stratégies de recherche non informée et en choisir une
      Compare les stratégies de recherche non informée, ajoute la recherche bidirectionnelle et choisis une stratégie adaptée à un problème donné.
  3. Utilise une estimation heuristique pour orienter la recherche, suis le déroulement de la recherche gloutonne et de A*, démontre quand A* est optimal et utilise des variantes qui font un compromis entre optimalité, rapidité et mémoire.
    • Utiliser une heuristique dans une recherche gloutonne
      Définis une fonction heuristique, suis le déroulement d’une recherche gloutonne et explique pourquoi elle est rapide mais peut renvoyer une mauvaise solution.
    • Trouver des chemins optimaux avec la recherche A*
      Suis le déroulement de A* avec f = g + h, explique pourquoi une heuristique admissible rend cet algorithme optimal en coût et observe comment une meilleure heuristique élague la recherche.
    • Faire un compromis entre optimalité, rapidité et consommation de mémoire
      Utilise A* pondéré, la recherche en faisceau et des versions de A* à mémoire limitée comme IDA* lorsque A* classique est trop lent ou demande trop de mémoire, et indique à quoi chacune renonce.
  4. Vérifie l’admissibilité et la cohérence d’une heuristique, construis des heuristiques admissibles à partir de problèmes relaxés et de sous-problèmes, puis compare les heuristiques selon leur dominance et leur facteur de branchement effectif.
    • Vérifier l’admissibilité et la cohérence des heuristiques
      Vérifie qu’une heuristique ne surestime jamais et respecte l’inégalité triangulaire, puis explique pourquoi chaque propriété compte pour A*.
    • Construire des heuristiques admissibles à partir de problèmes relaxés
      Déduis des heuristiques en supprimant des restrictions d’un problème, calcule-les pour le taquin à 8 cases et construis-en de plus efficaces à partir de sous-problèmes et en combinant des heuristiques.
    • Comparer les heuristiques selon la dominance et le facteur de branchement effectif
      Détermine laquelle de deux heuristiques est meilleure à l’aide de la dominance, mesure une heuristique avec le facteur de branchement effectif et compare sa précision à son coût de calcul.
  5. Résous des problèmes d’optimisation en te déplaçant dans un paysage d’états complets, utilise la recherche par escalade et ses variantes, et échappe aux optima locaux grâce au recuit simulé et aux méthodes à population.
    • Décrire la recherche locale et le paysage de l’espace d’états
      Explique quand le chemin n’a pas d’importance, formule un problème à l’aide d’états complets et décris les caractéristiques du paysage qui rendent la recherche locale difficile.
    • Améliorer les états par recherche par escalade
      Exécute une recherche par escalade à plus forte pente, reconnais les situations où elle se bloque et améliore-la avec des déplacements latéraux, des choix aléatoires, des redémarrages aléatoires et la recherche locale en faisceau.
    • Échapper aux optima locaux avec le recuit simulé et les algorithmes génétiques
      Accepte certains déplacements vers des états moins bons avec une probabilité qui diminue lorsque la température baisse, conçois un schéma de refroidissement et utilise des populations avec croisement et mutation.

Algorithmes de recherche : cours

5 chapitres

1

Formuler des problèmes de recherche et évaluer les algorithmes de recherche

Un algorithme de recherche a besoin d’une description précise de ce qui peut se produire et de ce qui constitue une réussite. Une carte routière et un taquin semblent différents, mais tous deux peuvent être décrits à l’aide d’états, d’actions, de buts et de coûts. La recherche construit ensuite des chemins dans cet espace. Distinguer un état d’un nœud de recherche clarifie le traitement des doublons ; distinguer la complétude de l’optimalité en coût permet de comparer les algorithmes de façon pertinente.

1.1 Décrire un problème de recherche et son espace d’états

Un problème de recherche décrit des choix avant qu’un algorithme ne commence à les faire. Sa formulation détermine à la fois ce que signifie une solution et le nombre de possibilités que l’algorithme doit examiner.

Définir le problème

Il comporte six éléments :

  • Les états décrivent les situations possibles.
  • L’état initial est celui où la recherche commence.
  • Les actions sont les choix disponibles dans un état.
  • Le modèle de transition, REˊSULTAT(s,a), donne l’état après l’action a.
  • Le test de but reconnaît un état acceptable.
  • La fonction de coût d’action, c(s,a,s′), attribue un coût à chaque étape.

Tous les coûts d’action sont ici strictement positifs. Une solution à un problème de recherche de chemin est une séquence d’actions qui mène à un but. Additionne les coûts de ses actions pour obtenir son coût de chemin. Une solution optimale en coût minimise cette somme. Nommer simplement la destination n’indique pas à un agent comment l’atteindre.

Formuler le taquin à 8 cases

Une grille contient huit tuiles numérotées et une case vide. L’état indique les neuf positions. L’état initial est la configuration fournie ; le but est « 1 2 3 / 4 5 6 / 7 8 case vide ». Une action déplace la case vide à gauche, à droite, en haut ou en bas lorsque ce déplacement reste dans la grille. La transition échange la case vide avec la tuile voisine, et chaque déplacement coûte 1. Un coin permet deux actions ; le centre en permet quatre.

Une solution est une séquence comme « gauche, haut, droite », si ces déplacements sont autorisés et atteignent le but. Comme chaque déplacement a le même coût, minimiser le coût revient à minimiser le nombre de déplacements.

Choisir l’espace d’états

Représente les états par les sommets d’un graphe orienté et les actions par des arcs associés à leur coût. Une route à double sens donne deux arcs orientés. Pour une recherche d’itinéraire, un état peut être le lieu courant et le coût d’une étape peut être la distance routière en kilomètres.

L’abstraction laisse de côté les détails sans importance. La musique qui joue dans une voiture n’a pas besoin de faire partie d’un état pour un itinéraire. Une solution abstraite doit rester réalisable. Supprimer un détail qui change les actions autorisées modifierait le problème au lieu de simplement simplifier sa description.

La formulation peut économiser plus de travail qu’une file plus rapide. Placer huit dames sur n’importe quelles cases vides donne 64×63×⋯×57≈1,8×1014 séquences ordonnées de placement possibles. Placer chaque nouvelle dame dans la colonne vide la plus à gauche, sur une case non attaquée, laisse 2 057 états accessibles. Ce sont deux constructions différentes d’une même condition de but.

Générer les possibilités au besoin

Le taquin à 8 cases possède 9!/2=181 440 états accessibles depuis un départ fixé. Le taquin à 15 cases en possède 16!/2≈1,05×1013. Une représentation complète des 8 dames avec une dame par colonne comporte 88=16 777 216 états.

Ces espaces sont généralement fournis de façon implicite : la recherche reçoit un état initial et des procédures pour les actions et les transitions. Elle génère la partie pertinente au cours de son exécution. Pour un problème de chemin, conserve la séquence d’actions. Pour un problème d’optimisation comme le placement des dames, la disposition finale elle-même peut être la réponse.

Points clés

  • Un problème de recherche précise les états, un départ, les actions, les transitions, un test de but et les coûts des actions.
  • Une solution de chemin est une séquence d’actions ; son coût est la somme des coûts de ses étapes.
  • Une abstraction doit préserver la possibilité de réaliser ses solutions.
  • Un espace d’états implicite est généré au besoin à partir des actions et des transitions.
  • La formulation peut réduire considérablement le nombre d’états ou de chemins examinés.

1.2 Développer un arbre de recherche avec l’algorithme général de recherche

L’espace d’états décrit ce qui est possible. L’arbre de recherche représente les chemins que l’algorithme a essayés. Plusieurs nœuds peuvent décrire le même état parce qu’ils y sont arrivés par des chemins différents.

Stocker un chemin dans un nœud

Un nœud stocke un état, son nœud parent, l’action issue de ce parent et le coût de chemin g(n). La profondeur peut aussi être stockée. La racine n’a pas de parent et son coût de chemin est de 0. Développer un nœud consiste à appliquer toutes les actions autorisées à son état et à générer ses enfants.

Sur une carte à double sens, les chemins « S, A » et « S, B, C, A » aboutissent au même état mais donnent des nœuds différents. Même une carte finie peut générer un arbre de recherche infini : « S, A, S, A, … » produit sans cesse des chemins plus longs.

La frontière contient les nœuds générés qui attendent d’être développés. L’ensemble des états atteints enregistre les états générés et le meilleur nœud trouvé pour chacun. Il comprend aussi bien les états encore dans la frontière que ceux déjà développés. Un ensemble fermé ou exploré désigne généralement seulement les états développés.

Exécuter la procédure générale du meilleur d’abord
  1. Placer la racine dans la frontière et la table des états atteints.
  2. Si la frontière est vide, renvoyer un échec.
  3. Retirer le nœud dont la valeur d’évaluation f(n) est la plus faible.
  4. Si son état est un but, renvoyer ce nœud.
  5. Le développer. Ajouter chaque nouvel état ; pour un état déjà atteint, ne remplacer son nœud enregistré que si le nouveau chemin est moins coûteux.
  6. Recommencer à l’étape 2.

Un chemin moins coûteux vers un état déjà développé peut nécessiter sa réouverture. Les retours de coût égal n’apportent aucune amélioration. Avec un tas, une ancienne entrée peut rester physiquement présente ; elle doit être reconnue comme périmée et ignorée lors de son extraction.

La règle de gestion de la frontière détermine la stratégie. Une file FIFO sélectionne les nœuds de faible profondeur pour la recherche en largeur d’abord. Une pile LIFO sélectionne les nœuds profonds pour la recherche en profondeur d’abord. Des files de priorité ordonnées selon g, h et g+h donnent respectivement la recherche à coût uniforme, la recherche gloutonne et A*.

Suivre les nœuds sur la carte routière

Utilise ces routes à double sens, avec des distances en kilomètres : S–A 2, S–B 3, S–D 9, A–C 4, B–C 1, B–D 6, C–G 5 et D–G 2. Pars de S et cherche G. Départage les ex æquo par ordre alphabétique.

Le développement de S génère A de coût 2, B de coût 3 et D de coût 9. Chacun a S pour parent. La frontière contient A, B et D ; la table des états atteints contient aussi S. Plus tard, C peut être atteint par A pour un coût de 6 ou par B pour un coût de 4. Ce sont deux nœuds pour un seul état, et le moins coûteux doit représenter C.

Pour reconstituer une solution, suis à rebours les liens vers les parents depuis le nœud but renvoyé et inverse les actions. Mettre à jour le coût sans mettre à jour le parent laisserait un chemin qui ne correspondrait pas au coût indiqué.

Décider quoi mémoriser

La recherche dans un graphe mémorise les états atteints pour éviter de répéter du travail. La recherche en arbre ne possède pas de table globale des états atteints ; elle peut se limiter à rejeter les cycles sur le chemin courant. Elle économise de la mémoire mais peut générer le même état par de nombreux chemins.

La procédure générale teste les buts à l’extraction. La recherche en largeur d’abord peut les tester à la génération, car celle-ci suit l’ordre des profondeurs. Une recherche fondée sur le coût doit attendre l’extraction : le premier but généré peut avoir un chemin plus coûteux qu’un but trouvé plus tard.

Points clés

  • Un état est une situation ; un nœud représente un chemin vers un état.
  • La frontière contient les nœuds générés non développés ; la table des états atteints mémorise aussi les états développés.
  • Conserve le chemin moins coûteux vers un état, avec le lien correspondant vers son parent.
  • La recherche dans un graphe évite de répéter du travail ; la recherche en arbre économise de la mémoire.
  • La recherche à coût uniforme et A* testent un but lorsqu’il est retiré de la frontière.
  • Les liens vers les parents permettent de reconstituer la séquence d’actions à partir du nœud but renvoyé.

1.3 Mesurer et comparer les performances des algorithmes de recherche

Un algorithme peut être fiable tout en étant trop coûteux à exécuter. Évalue ses garanties séparément de sa consommation de ressources, puis vérifie si ces garanties correspondent au problème que tu dois réellement résoudre.

Poser quatre questions différentes

La complétude signifie trouver une solution dès qu’il en existe une. Dans un espace d’états accessibles fini, épuiser toutes les possibilités peut aussi prouver l’échec. Un espace infini sans solution peut être exploré indéfiniment, même par un algorithme complet.

L’optimalité en coût signifie renvoyer une solution dont le coût de chemin est le plus faible. Elle ne dit rien de la vitesse d’exécution de l’algorithme. Une méthode peut trouver une solution de façon fiable tout en renvoyant un itinéraire coûteux.

La complexité temporelle compte les nœuds générés ou développés. Précise quel décompte est utilisé lorsque tu compares des mesures. La complexité spatiale mesure le nombre maximal de nœuds conservés simultanément, y compris la frontière et les informations de recherche stockées.

Identifier les paramètres

Pour un espace de recherche implicite, utilise :

SymboleSignification
bFacteur de branchement maximal : nombre de successeurs par nœud
dProfondeur d’une solution de profondeur minimale
mProfondeur maximale d’un chemin, éventuellement infinie
C∗Coût d’une solution optimale
ϵMinorant strictement positif du coût d’action

Pour un graphe explicite déjà en mémoire, les nombres de sommets et d’arcs sont généralement plus utiles. Une borne de parcours en ∣V∣ et ∣E∣ répond à une question différente de celle d’une borne pour la génération d’un arbre encore inconnu.

Comprendre pourquoi la profondeur coûte cher

Un arbre complet jusqu’à la profondeur d contient

1+b+b2+⋯+bd=bd+1−1b−1

nœuds pour b≠1. Avec un facteur de branchement de 10 et une profondeur de 5, cela fait 111 111 nœuds, racine comprise. Augmenter la profondeur de un ajoute une couche qui comporte dix fois plus de nœuds que la précédente.

À raison d’un million de nœuds par seconde et de 1 kilooctet par nœud, les ordres de grandeur changent rapidement :

ProfondeurNombre approximatif de nœudsTempsMémoire
61,1 million1 seconde1,1 Go
8111 millions2 minutes111 Go
1011 milliards3 heures11 To
121,1 billion13 jours1,1 Po

Ce sont des unités de stockage décimales : 1 Go vaut 109 octets. La mémoire peut rendre une recherche impossible bien avant que son temps d’exécution ne semble déraisonnable.

Lire les garanties avec leurs conditions

La recherche en largeur d’abord atteint à terme toute profondeur finie lorsque le branchement est fini. La recherche en profondeur d’abord peut passer un temps infini sur une seule branche et ne jamais essayer un but proche. Cette différence explique leurs résultats en matière de complétude.

La recherche en largeur d’abord trouve un chemin avec le moins d’actions. Si un itinéraire de deux étapes coûte 11 km et un itinéraire de trois étapes coûte 9 km, l’itinéraire le moins profond n’est pas optimal en coût. Des coûts d’étape égaux font correspondre profondeur et coût ; des coûts différents peuvent les dissocier.

Une borne grand O dans le pire des cas ne prédit pas chaque exécution. Deux méthodes ayant la même borne peuvent différer par leurs constantes, leur traitement des doublons et le nombre de branches utiles. Une heuristique peut grandement améliorer une exécution habituelle sans supprimer le pire des cas exponentiel.

Points clés

  • La complétude concerne la découverte d’une solution ; l’optimalité en coût concerne le coût de la solution renvoyée.
  • Un espace infini sans solution ne conduit pas nécessairement à un signalement d’échec qui met fin à la recherche.
  • Le facteur de branchement et la profondeur expliquent la croissance exponentielle des arbres de recherche implicites.
  • Mesure le pic de mémoire ainsi que le nombre de nœuds ; le stockage est souvent la première limite.
2

Effectuer une recherche sans connaissances du domaine

Sans heuristique, une recherche doit choisir quoi explorer à partir de la profondeur ou du coût déjà engagé. Une file, une pile et une file de priorité ordonnée selon le coût peuvent donc produire des itinéraires très différents sur une même carte. Suis les modifications de leur frontière pour comprendre pourquoi leurs garanties diffèrent. L’approfondissement itératif économise de la mémoire en répétant le travail aux faibles profondeurs, tandis que la recherche bidirectionnelle peut réduire la profondeur lorsque le but et les actions inverses sont disponibles.

2.1 Exécuter une recherche en largeur d’abord

La recherche en largeur d’abord explore par couches. Le prochain nœud développé est celui de plus faible profondeur qui attend encore : ainsi, chaque chemin à une action est examiné avant qu’un chemin à deux actions soit développé.

Maintenir l’ordre de la file

La frontière fonctionne selon le principe premier entré, premier sorti : retirer en tête et ajouter les enfants en fin de file. Enregistre les états lorsqu’ils sont générés. Si l’état d’un enfant a déjà été atteint, ignore-le ; sinon, deux parents différents pourraient placer le même état dans la file.

Teste l’état initial avant la recherche. Pour les nœuds suivants, la recherche en largeur d’abord peut utiliser un test de but à la génération. Le premier but généré est de profondeur minimale, car l’algorithme génère les enfants couche par couche. L’ordre au sein d’une couche peut départager des solutions de même profondeur, mais ne peut pas faire apparaître en premier une solution plus profonde.

Suivre le déroulement sur la carte

Les routes à double sens sont S–A 2, S–B 3, S–D 9, A–C 4, B–C 1, B–D 6, C–G 5 et D–G 2 km. Pars de S, cherche G et génère les voisins par ordre alphabétique. Dans le tableau, le prochain nœud à retirer est à gauche.

Nœud développéÉtats nouvellement atteintsFile après développement
SA, B, DA, B, D
ACB, D, C
BAucunD, C
DG, qui satisfait le test de butLa recherche s’arrête

Lorsque B est développé, C et D sont déjà atteints. Ils ne changent pas de place dans la file. Lorsque D génère G, sa chaîne de parents est G–D–S. Inverse-la pour retrouver S–D–G, avec deux routes et une distance totale de 9+2=11 km.

C a déjà été généré, mais n’a pas été développé. Son itinéraire vers G comporterait trois routes. La recherche en largeur d’abord peut s’arrêter sans l’explorer, car trois routes ne peuvent pas améliorer le nombre d’actions d’une solution à deux routes.

Savoir ce que le résultat minimise

La recherche en largeur d’abord est complète pour un branchement fini, même si l’espace est infini : chaque couche finie est traitée avant la suivante. Elle est optimale en coût lorsque toutes les actions ont le même coût. Dans un taquin où chaque déplacement coûte 1, une solution de profondeur minimale est aussi une solution de coût minimal.

Sur cette carte routière, S–B–C–G coûte 3+1+5=9 km. La recherche en largeur d’abord renvoie l’itinéraire de 11 km parce que la distance n’est pas son critère d’ordonnancement. Il faut donc préciser l’unité de « plus court chemin » : le moins de routes et le moins de kilomètres sont des objectifs différents.

Tenir compte de la mémoire

Avec un test de but à la génération, la recherche en largeur d’abord a des complexités temporelle et spatiale en O(bd). Elle peut générer presque tous les nœuds jusqu’à la profondeur du but et conserver la frontière ainsi que les informations sur les états atteints. Si les buts ne sont testés qu’à l’extraction, le développement d’autres nœuds de profondeur d peut générer la profondeur d+1, ce qui donne la borne habituelle O(bd+1) pour cette version.

Avec un facteur de branchement de 10 et 1 kilooctet par nœud, stocker un arbre jusqu’à la profondeur 10 prend environ 11 To. La recherche en largeur d’abord est utile pour les problèmes de faible profondeur à coûts égaux lorsque la mémoire est suffisante, comme les chemins à nombre minimal de sauts dans un réseau ou les taquins à nombre minimal de déplacements. Une file FIFO n’utilise pas les coûts numériques des arcs, même lorsqu’ils sont inscrits sur le graphe.

Points clés

  • La recherche en largeur d’abord développe le nœud de plus faible profondeur à l’aide d’une file FIFO.
  • Enregistre les états atteints à la génération pour éviter les entrées en double dans la file.
  • Le premier but généré comporte le moins d’actions.
  • Des coûts d’action égaux rendent la recherche en largeur d’abord optimale en coût.
  • Avec le test de but à la génération, les complexités temporelle et spatiale sont en O(bd).

2.2 Trouver le chemin de coût minimal par recherche à coût uniforme

La recherche à coût uniforme ordonne les chemins selon le coût déjà engagé. Elle peut laisser de côté une destination proche mais coûteuse pendant qu’elle examine des itinéraires plus longs composés d’étapes peu coûteuses.

Retirer le chemin le moins coûteux

Pose f(n)=g(n) et utilise une file de priorité. Lorsqu’un développement trouve un chemin moins coûteux vers un état atteint, mets à jour son coût et son parent. Un chemin de coût égal n’améliore pas l’enregistrement. La recherche à coût uniforme est la forme de recherche de l’algorithme de Dijkstra ; elle s’arrête lorsqu’elle retire un but.

Le test de but à l’extraction est essentiel. Générer un but prouve qu’un itinéraire existe. Retirer ce but en tant que nœud le moins coûteux de la frontière prouve qu’aucun itinéraire inachevé moins coûteux ne peut le surpasser, puisque les coûts des actions sont strictement positifs.

Suivre le déroulement sur la carte

Utilise les routes à double sens S–A 2, S–B 3, S–D 9, A–C 4, B–C 1, B–D 6, C–G 5 et D–G 2 km. Départage les coûts égaux par ordre alphabétique. Les entrées de la frontière ci-dessous indiquent l’état et le coût du chemin.

Nœud retiréMise à jourFrontière après mise à jour
S, 0Atteindre A, B, DA 2 ; B 3 ; D 9
A, 2Atteindre C par AB 3 ; C 6 ; D 9
B, 3Améliorer C par BC 4 ; D 9
C, 4Atteindre GD 9 ; G 9
D, 9G par D coûte 11 ; garder 9G 9
G, 9Le test de but réussitRenvoyer

Le remplacement de C est décisif : 3+1=4 est meilleur que 2+4=6. Le parent de G est C, celui de C est B et celui de B est S. L’itinéraire renvoyé S–B–C–G coûte 9 km. D est retiré avant G uniquement parce que la règle de départage est alphabétique.

Si une route directe S–G de 12 km était ajoutée, S générerait immédiatement un but. Un test à la génération renverrait 12 km avant de découvrir l’itinéraire de 9 km. La file de priorité ne peut pas préserver l’optimalité si la règle d’arrêt la contourne.

Expliquer la garantie

Avec un branchement fini et un coût pour chaque action au moins égal à un certain ϵ>0, seul un nombre fini d’étapes d’un chemin peut tenir sous une borne de coût fixe. La recherche à coût uniforme finit donc par retirer un but dès qu’il en existe un. Les coûts strictement positifs garantissent que prolonger un chemin ne peut pas le rendre moins coûteux, ce qui étaye la preuve d’optimalité.

Les coûts nuls demandent de l’attention. La recherche en arbre peut parcourir indéfiniment un cycle de coût nul. La recherche dans un graphe rejette les retours de coût égal vers un même état, mais une chaîne infinie d’états distincts dont le coût cumulé est borné peut encore retarder indéfiniment un but. Des coûts d’étape négatifs invalident l’argument habituel d’optimalité de la recherche à coût uniforme.

Comprendre le coût

La borne habituelle des complexités temporelle et spatiale dans le pire des cas est O(b1+⌊C∗/ϵ⌋). Sur cette carte, C∗=9 et ϵ=1, ce qui donne O(b10). C’est une borne large, et non le nombre de nœuds réellement développés sur la carte à six états.

De nombreux chemins peu coûteux menant à des impasses peuvent obliger la recherche à coût uniforme à effectuer beaucoup de travail avant de prendre une action utile coûteuse. Lorsque tous les coûts d’étape sont égaux, son test de but à l’extraction donne la borne habituelle O(bd+1). A* avec h=0 effectue exactement les mêmes comparaisons de priorité que la recherche à coût uniforme.

Points clés

  • La recherche à coût uniforme ordonne la frontière selon le coût de chemin cumulé g.
  • Renvoie un but à l’extraction, lorsqu’il correspond au chemin en attente le moins coûteux.
  • Remplace un itinéraire plus coûteux vers un état atteint, y compris son parent.
  • Un branchement fini et un minorant strictement positif des coûts d’étape assurent la complétude.
  • La recherche à coût uniforme est optimale en coût dans le modèle à coûts strictement positifs.

2.3 Économiser la mémoire avec la recherche en profondeur d’abord et l’approfondissement itératif

La recherche en profondeur d’abord suit une branche avant d’essayer les autres. Ce choix peut réduire considérablement la mémoire nécessaire, mais une branche mal choisie peut retarder l’examen de toutes les autres possibilités.

Suivre une branche en profondeur

La recherche en profondeur d’abord utilise une pile dernier entré, premier sorti. Dans une version en arbre, rejette les états déjà présents sur le chemin courant pour éviter de former immédiatement un cycle. Stocke le chemin courant et les frères non développés de ses nœuds. Pour essayer les successeurs par ordre alphabétique avec une pile, empile-les dans l’ordre alphabétique inverse.

Sur la carte à double sens S–A 2, S–B 3, S–D 9, A–C 4, B–C 1, B–D 6, C–G 5 et D–G 2 km, pars de S et cherche G. En essayant les voisins par ordre alphabétique et en testant les buts à l’extraction, on obtient S, A, C, B, D, G. En C, B est le premier voisin qui ne figure pas déjà sur le chemin. L’itinéraire renvoyé S–A–C–B–D–G coûte 2+4+1+6+2=15 km.

La recherche en profondeur d’abord n’est pas optimale en coût. Elle est complète dans un espace fini avec détection des cycles sur le chemin, mais elle peut suivre une branche infinie indéfiniment. Sa complexité temporelle dans le pire des cas est en O(bm) et le stockage des chemins et des frères nécessite un espace en O(bm). Le retour arrière qui génère un enfant à la fois réduit le stockage à O(m). Avec un facteur de branchement de 10 et une profondeur maximale de 12, le stockage du chemin et des frères représente environ 120 nœuds, contre environ un billion pour la recherche en largeur d’abord jusqu’à la profondeur 12. Une table globale des états atteints utiliserait de la mémoire supplémentaire.

Limiter la profondeur

La recherche à profondeur limitée cesse de développer les nœuds à la profondeur ℓ. Un but à cette profondeur peut tout de même être reconnu. Elle distingue trois résultats :

  • Une solution a été trouvée.
  • Coupure : la profondeur limite a empêché une recherche complète.
  • Échec : les possibilités pertinentes ont été épuisées sans but ni coupure.

Une coupure ne prouve pas qu’il n’existe aucune solution. Si le but de profondeur minimale est à la profondeur 7, une limite de 5 ne permet pas de l’atteindre. Dans le pire des cas, les complexités temporelle et spatiale sont respectivement en O(bℓ) et O(bℓ).

Augmenter progressivement la limite

La recherche par approfondissement itératif exécute des recherches à profondeur limitée avec les limites 0, 1, 2 et ainsi de suite. Elle trouve une solution de profondeur minimale sans stocker une frontière de recherche en largeur. Avec un branchement fini, elle est complète ; avec des coûts d’action égaux, elle est optimale en coût. Sa complexité temporelle est en O(bd) et sa complexité spatiale en O(bd).

La plupart des nœuds d’un arbre large se trouvent dans la dernière couche ; répéter les couches supérieures est donc souvent peu coûteux. Pour b=10 et d=5, comptons les nœuds générés sous la racine :

5(10)+4(100)+3(1 000)+2(10 000)+100 000=123 450.

La recherche en largeur d’abord génère 111 110 nœuds de ce type jusqu’à la profondeur 5. L’approfondissement itératif effectue environ 11 % de générations en plus tout en ne stockant que les données d’une recherche en profondeur. Les visites répétées de la racine sont exclues de ces deux décomptes particuliers.

Pour des facteurs de branchement supérieurs à 1, le surcoût dans un arbre large tend vers le facteur b/(b−1). Cet avantage est moindre pour une chaîne étroite, où les préfixes répétés dominent. L’approfondissement itératif est un choix non informé utile lorsque la profondeur de la solution est inconnue et qu’une frontière complète ne tiendrait pas en mémoire. Dans les espaces comportant de nombreux chemins vers un même état, l’absence d’un ensemble global des états atteints peut entraîner de nombreuses régénérations.

Points clés

  • La recherche en profondeur d’abord stocke peu de chemins, mais peut manquer un but indéfiniment en suivant une branche infinie.
  • La détection des cycles sur le chemin empêche les retours aux ancêtres sans table globale des états atteints.
  • Une coupure en profondeur signifie que la limite a empêché la poursuite de la recherche, et non que le problème n’a pas de solution.
  • L’approfondissement itératif augmente la profondeur limite jusqu’à trouver une solution de profondeur minimale.
  • L’approfondissement itératif est complet pour un branchement fini et optimal en coût si les coûts d’étape sont égaux.
  • L’approfondissement itératif répète des générations en échange d’une complexité spatiale en O(bd).

2.4 Comparer les stratégies de recherche non informée et en choisir une

Une stratégie utile correspond au résultat recherché et aux ressources disponibles. La recherche non informée utilise la définition du problème sans estimation de la distance restante. Elle peut néanmoins être systématique et soigneusement ordonnée.

Comparer sur une base commune

Supposons un branchement fini et les conditions de coûts strictement positifs pour la recherche à coût uniforme. La ligne de la recherche en largeur d’abord utilise le test de but à la génération ; celle de la recherche en profondeur d’abord utilise la détection des cycles sur le chemin, sans table globale des états atteints.

StratégieComplète ?Optimale en coût ?TempsEspace
Largeur d’abordOuiSi les coûts d’étape sont égauxO(bd)O(bd)
Coût uniformeOui, si les coûts sont minorés par ϵ strictement positifOuiO(b1+⌊C∗/ϵ⌋)Comme le temps
Profondeur d’abordDans les espaces finisNonO(bm)O(bm)
Profondeur limitéeSi la limite atteint la profondeur d’un butNonO(bℓ)O(bℓ)
Approfondissement itératifOuiSi les coûts d’étape sont égauxO(bd)O(bd)

La recherche en largeur d’abord et l’approfondissement itératif minimisent aussi le coût lorsque celui-ci est une fonction non décroissante de la seule profondeur. Le mot « seule » compte : tous les chemins d’une profondeur donnée doivent avoir le même coût pour que cette condition plus générale soit satisfaite. Des arcs de coût strictement positif ne suffisent pas à rendre la recherche en largeur d’abord optimale en coût.

Chercher depuis les deux extrémités

La recherche bidirectionnelle progresse vers l’avant depuis le départ et à rebours depuis le but. Si les recherches se rencontrent près du milieu, chacune atteint environ la profondeur d/2. Le travail est alors d’environ 2bd/2 au lieu de bd. Avec un facteur de branchement de 10 et une solution de profondeur 6, la comparaison des couches principales donne environ 2 000 nœuds contre 1 000 000.

Elle nécessite un état but explicite et un moyen de générer les prédécesseurs. Des routes réversibles à double sens rendent le développement à rebours facile. Une propriété de but comme « aucune dame n’est attaquée » peut décrire trop d’états buts pour fournir un point de départ commode à la recherche inverse.

Avec des recherches en largeur d’abord ou fondées sur le coût, des règles de rencontre et d’arrêt adaptées peuvent préserver la complétude et l’optimalité. Sur une carte pondérée, ne t’arrête que lorsqu’aucune liaison moins coûteuse n’est encore possible. Le premier croisement entre les deux recherches n’est pas nécessairement la liaison la moins coûteuse.

Choisir selon le problème

Pour obtenir le moins de déplacements dans un petit taquin, des coûts de déplacement égaux rendent la recherche en largeur d’abord appropriée si la mémoire est suffisante. Pour un trajet de distance minimale avec des longueurs de route différentes et sans heuristique, choisis la recherche à coût uniforme. Pour un immense taquin à coûts égaux et de profondeur de solution inconnue, l’approfondissement itératif évite une immense frontière. Dans un espace fini comportant de nombreux buts profonds où toute solution convient, la recherche en profondeur d’abord peut être pratique. Un départ et un but connus avec des actions réversibles rendent la recherche bidirectionnelle intéressante à envisager.

La consommation de mémoire doit inclure ce que stocke la version choisie. Une recherche en profondeur d’abord avec une table globale des états atteints n’a plus le même profil de stockage que sa version en arbre. Il ne faut pas comparer un déroulement de recherche en largeur avec test de but à l’extraction à une borne de complexité avec test à la génération comme si les versions étaient identiques.

Même le meilleur choix non informé peut se heurter à une croissance exponentielle. Lorsque des connaissances utiles du domaine sont disponibles, une heuristique peut réduire l’exploration inutile. Lorsque seule une configuration finale compte, la recherche locale peut éviter de conserver un arbre de recherche.

Points clés

  • Choisis une stratégie selon l’objectif visé, la structure des coûts, la mémoire et la profondeur de la solution.
  • La recherche bidirectionnelle nécessite un but d’où partir et un moyen de générer les prédécesseurs.
  • Une rencontre précoce n’est pas une règle d’arrêt fiable pour une recherche pondérée.
  • Le chemin comportant le moins d’actions est aussi le moins coûteux lorsque les coûts d’action sont égaux.
3

Effectuer une recherche heuristique : recherche gloutonne et A*

Une heuristique estime le travail encore nécessaire pour atteindre un but. La recherche gloutonne suit directement cette estimation ; A* la combine avec le coût déjà engagé. Comparer leurs déroulements montre comment le guidage peut économiser des développements et pourquoi une estimation erronée peut masquer un itinéraire peu coûteux. Lorsque A* classique demande trop de temps ou de mémoire, ses variantes font différents compromis entre qualité de la solution, stockage et travail répété.

3.1 Utiliser une heuristique dans une recherche gloutonne

Une heuristique attribue à un état une estimation du coût restant minimal jusqu’à un but. On la note h(n) pour l’état du nœud n. Elle dépend de l’état, et non du chemin emprunté pour l’atteindre, et vaut zéro pour un but.

Estimer ce qui reste

La distance à vol d’oiseau estime la distance routière restante. Sur une grille avec des déplacements horizontaux et verticaux d’une case, la distance de Manhattan additionne les différences de coordonnées :

h=∣x1−x2∣+∣y1−y2∣.

De la case (1 ; 1) à la case (4 ; 5), cela donne 3+4=7 déplacements. La distance à vol d’oiseau entre les mêmes coordonnées est 32+42=5. Les estimations répondent à des questions différentes sur les déplacements dans des problèmes relaxés. Une heuristique doit utiliser les mêmes unités que le coût qu’elle estime ; des kilomètres n’estiment pas directement un temps de trajet sans modèle de conversion adapté.

La recherche informée utilise une estimation pour guider le développement. L’estimation n’a pas besoin d’indiquer à l’algorithme quelle action effectuer. Elle évalue les états produits par les actions autorisées, et la règle de gestion de la frontière détermine quel chemin en attente examiner ensuite.

Suivre la plus petite estimation

La recherche gloutonne pose f(n)=h(n). Sa file de priorité retire l’état qui semble le plus proche du but, sans tenir compte du coût déjà engagé.

Utilise les routes à double sens S–A 2, S–B 3, S–D 9, A–C 4, B–C 1, B–D 6, C–G 5 et D–G 2 km. Les estimations heuristiques jusqu’à G sont S 8, A 7, B 5, C 4, D 2 et G 0 km.

  1. Développer S. La frontière contient A avec une estimation de 7, B avec 5 et D avec 2.
  2. Retirer D car 2 est la plus petite valeur. Le développement de D génère G avec une estimation de 0. Le coût du chemin jusqu’à G est de 9+2=11 km.
  3. Retirer G et renvoyer S–D–G.

Seuls S et D ont été développés. L’itinéraire S–B–C–G de 9 km était disponible, mais l’estimation de 5 pour B semblait moins bonne que celle de 2 pour D. La recherche gloutonne n’a jamais inclus les 9 km déjà parcourus pour atteindre D dans sa comparaison.

Distinguer guidage et garanties

Même une heuristique qui ne surestime jamais ne rend pas la recherche gloutonne optimale en coût. Les estimations de l’exemple sont admissibles, mais l’itinéraire renvoyé est trop coûteux. La recherche gloutonne utilise uniquement l’estimation restante ; elle peut donc payer trop cher avant d’atteindre un état prometteur.

La recherche dans un graphe est complète sur un espace d’états fini lorsqu’elle traite correctement les doublons. La recherche gloutonne en arbre peut boucler sur des états répétés qui semblent prometteurs, et un espace infini peut continuer à proposer des estimations faibles mais trompeuses. Dans le pire des cas, les complexités temporelle et spatiale sont en O(bm), même si une estimation utile peut raccourcir une exécution réelle.

Un lieu peut être proche d’une destination à vol d’oiseau mais nécessiter un long détour autour d’une rivière. De faibles valeurs heuristiques ne garantissent pas de bons itinéraires au total. Le calcul de l’heuristique prend aussi du temps : réduire le nombre de développements n’aide que si l’évaluation de ces estimations n’absorbe pas le temps économisé.

Points clés

  • Une heuristique estime le coût restant et dépend de l’état.
  • La recherche gloutonne ordonne les nœuds selon h et ignore le coût cumulé.
  • Même une heuristique admissible ne rend pas la recherche gloutonne optimale en coût.
  • La recherche dans un graphe fini traite les doublons ; la recherche gloutonne en arbre peut boucler.

3.2 Trouver des chemins optimaux avec la recherche A*

A* évalue l’ensemble du parcours proposé : le coût déjà engagé plus une estimation de ce qui reste. Sa priorité est

f(n)=g(n)+h(n).

Utilise une file de priorité, remplace les chemins plus coûteux et teste un but lorsqu’il est retiré. Pour un but, h=0 : sa priorité est donc son coût de chemin réel.

Suivre la règle du coût plus l’estimation

Les routes à double sens sont S–A 2, S–B 3, S–D 9, A–C 4, B–C 1, B–D 6, C–G 5 et D–G 2 km. Les estimations heuristiques jusqu’à G sont S 8, A 7, B 5, C 4, D 2 et G 0. Départage les ex æquo par ordre alphabétique.

Nœud retiréModifications
S, f=8Ajouter B avec 3+5=8, A avec 2+7=9 et D avec 9+2=11
B, f=8Ajouter C avec 4+4=8 ; D par B n’est pas moins coûteux
C, f=8Ajouter G avec 9+0=9
A, f=9C par A coûte 6, soit plus que son coût enregistré de 4
G, f=9Renvoyer S–B–C–G, de coût 9 km

A est retiré avant G en raison de la règle de départage. A* développe quatre nœuds qui ne sont pas des buts et ne développe jamais D. La recherche à coût uniforme sur la même carte développe aussi D. Mettre toutes les estimations heuristiques à zéro supprimerait ce guidage et reproduirait la recherche à coût uniforme.

Expliquer pourquoi une estimation optimiste fonctionne

Une heuristique admissible ne dépasse jamais le coût restant réel h∗(n). Pour A* avec réouverture, l’admissibilité garantit l’optimalité en coût ; A* en arbre offre la même garantie dans les conditions de recherche à coûts strictement positifs.

Supposons qu’un but moins bon de coût C>C∗ soit sur le point d’être retiré. Un nœud d’un chemin optimal doit encore être en attente. Pour le préfixe de son chemin optimal,

f(n)=g(n)+h(n)≤g(n)+h∗(n)=C∗<C.

La file doit choisir ce nœud avant le but moins bon. Cela contredit le point d’arrêt supposé. La réouverture compte, car un préfixe moins coûteux découvert plus tard doit pouvoir continuer par un état déjà développé.

Une heuristique cohérente rend f non décroissante le long des chemins. Elle garantit que le premier développement d’un état utilise un chemin de coût minimal pour l’atteindre. A* peut alors fermer définitivement les états développés. Avec la seule admissibilité, un ensemble fermé permanent peut écarter une amélioration essentielle.

Comprendre l’élagage et ses limites

Avec la cohérence, A* développe chaque nœud pertinent dont f<C∗, peut développer des nœuds ex æquo à C∗ et n’en développe aucun au-dessus de cette valeur avant de renvoyer le résultat. La priorité 11 de D dépasse le coût de solution 9 : il reste donc non développé. Dans la classe des algorithmes qui construisent des chemins vers l’avant en utilisant les mêmes informations heuristiques, A* est optimalement efficace, hormis les cas d’ex æquo. C’est une comparaison des développements nécessaires, et non l’affirmation que son code s’exécute toujours le plus rapidement.

Une surestimation peut invalider l’argument. Remplace l’estimation de B par 9 alors que son coût restant réel est de 6. B a maintenant une priorité de 12. A*, en suivant S, A, C et D, renvoie S–A–C–G au coût de 11 tandis que B attend encore.

A* conserve un pire des cas exponentiel et stocke les informations de recherche générées.

Points clés

  • A* classe les chemins selon g+h et teste les buts à l’extraction.
  • L’admissibilité garantit l’optimalité en coût pour A* qui rouvre les états dont le chemin est amélioré.
  • La cohérence permet de fermer définitivement un état après son premier développement.
  • Une surestimation peut retarder l’itinéraire optimal jusqu’après le renvoi d’un but moins bon.
  • Les ex æquo au coût optimal peuvent modifier le nombre de développements.
  • A* avec une heuristique nulle est la recherche à coût uniforme ; A* classique peut nécessiter beaucoup de mémoire.

3.3 Faire un compromis entre optimalité, rapidité et consommation de mémoire

Lorsque la frontière ne tient plus en mémoire ou qu’une réponse arrive trop lentement, choisis la ressource ou la garantie sur laquelle faire un compromis. Les variantes axées sur la vitesse modifient les priorités ou écartent des candidats. Les variantes axées sur la mémoire régénèrent des chemins qu’elles n’ont pas pu conserver.

Donner plus de poids à l’estimation

A pondéré* utilise f=g+Wh avec W>1. Il favorise généralement davantage la progression vers un but. Avec une heuristique admissible, les mises à jour des meilleurs chemins et la réouverture de la procédure générale, le coût renvoyé est au plus WC∗. Cette borne permet une solution moins bonne, sans l’imposer.

Sur la carte routière de référence, utilise les estimations S 8, A 7, B 5, C 4, D 2 et G 0, et un poids de 2. Depuis S, les priorités sont B 13, D 13 et A 16. L’ordre alphabétique départage les ex æquo en faveur de B. Son enfant C a 4+2(4)=12 ; C génère ensuite G avec une priorité de 9. L’itinéraire de coût 9 est renvoyé après trois développements de nœuds qui ne sont pas des buts. La garantie autorise jusqu’à 18 km, même si cette exécution trouve l’optimum.

Dans la même formule, un poids de 0 donne la recherche à coût uniforme et un poids de 1 donne A*. Lorsque le poids devient grand, l’estimation domine de plus en plus les comparaisons et le comportement se rapproche de la recherche gloutonne.

La recherche en faisceau ne conserve que les k meilleurs nœuds en attente et écarte les autres. La frontière conservée est bornée, mais un candidat écarté peut contenir la seule solution. Elle ne garantit donc ni la complétude ni l’optimalité.

Approfondir selon un seuil de coût estimé

IDA* effectue une recherche en profondeur d’abord avec une coupure sur f=g+h. Le premier seuil de coupure est la valeur de la racine. Élague tout nœud au-dessus de ce seuil en enregistrant la plus petite valeur qui le dépasse. Cette valeur devient le seuil suivant ; elle n’est pas nécessairement égale à l’ancien seuil plus 1. Utilise la détection des cycles sur le chemin.

Pour la carte de référence, le premier seuil est 8. A à 9 et D à 11 sont élagués ; B et C à 8 sont explorés, mais G à 9 est élagué. Le seuil suivant est 9. Dans cette itération, le chemin par A produit C à 10, qui est élagué. Le chemin S–B–C–G reste dans la limite de 9 et réussit.

Avec l’admissibilité, IDA* préserve l’optimalité en coût et ne nécessite que le stockage d’un chemin en profondeur. Ses passages répétés peuvent être coûteux lorsque les coûts produisent de nombreux seuils distincts. De petits coûts entiers rendent souvent le nombre de seuils plus facile à gérer.

Utiliser la mémoire limitée de façon plus sélective

La recherche récursive du meilleur d’abord (RBFS) stocke la meilleure priorité possible pour une autre branche à chaque niveau. Elle suit la branche la plus prometteuse jusqu’à ce que cette autre possibilité devienne meilleure, puis revient en arrière. Elle utilise une mémoire linéaire mais peut régénérer des branches oubliées.

SMA* utilise la mémoire disponible, supprime la pire feuille de la frontière lorsqu’elle est pleine et reporte sa valeur dans son parent. Cet enregistrement permet une régénération ultérieure. Avec une heuristique admissible, il est optimal en coût si un chemin solution optimal tient en mémoire. Sinon, il peut renvoyer une solution moins bonne ou échouer si aucun chemin solution ne tient en mémoire.

Choisis A* pour une réponse optimale lorsque le stockage suffit. Choisis IDA* ou une variante adaptée à mémoire limitée lorsque l’optimalité compte mais que la frontière ne tient pas en mémoire. A* pondéré offre une borne numérique sur la qualité ; la recherche en faisceau offre un élagage poussé sans cette borne.

Points clés

  • A* pondéré utilise g+Wh et peut renvoyer une solution coûtant jusqu’à WC∗ dans le cadre de sa garantie avec une heuristique admissible.
  • La recherche en faisceau écarte des candidats et peut perdre la seule solution.
  • IDA* porte son seuil de coupure à la plus petite valeur de f qui l’a dépassé.
  • La recherche récursive du meilleur d’abord et SMA* peuvent régénérer du travail oublié pour limiter la mémoire.
  • SMA* a besoin d’assez de mémoire pour un chemin solution optimal afin de garantir l’optimalité.
4

Concevoir et évaluer des heuristiques

Une heuristique utile doit correspondre à la fois au problème et à la garantie recherchée. L’admissibilité compare son estimation au coût restant réel ; la cohérence compare les estimations voisines pour chaque action. Relâcher des restrictions fournit un moyen pratique de démontrer ces propriétés sans résoudre le problème initial. La dominance et le facteur de branchement effectif aident ensuite à comparer le guidage, tandis que la mesure du temps révèle son coût de calcul.

4.1 Vérifier l’admissibilité et la cohérence des heuristiques

Une heuristique peut être globalement optimiste tout en changeant trop brusquement entre des états voisins. L’admissibilité et la cohérence correspondent à ces vérifications distinctes, et chacune permet de justifier une version différente de A*.

Comparer les estimations aux coûts réels

Une heuristique admissible satisfait 0≤h(n)≤h∗(n) dans chaque état. Pour un but, le coût restant réel est nul ; son estimation doit donc aussi être nulle. Admissible ne signifie pas précis : une valeur nulle partout est fiable mais ne fournit aucune direction.

Sur la carte routière de référence, les estimations et les distances restantes minimales exactes jusqu’à G sont :

ÉtatEstimationCoût restant réel
S89
A79
B56
C45
D22
G00

Chaque estimation est au plus égale à son coût réel. Dans un grand problème, calculer ces coûts exacts peut être aussi difficile que la recherche initiale. Une preuve fondée sur la structure du problème est alors plus utile qu’un tableau exhaustif.

Vérifier chaque action

La cohérence, aussi appelée monotonie, exige h(n)≤c(n,a,n′)+h(n′) pour chaque action, ainsi qu’une valeur nulle pour les buts. L’estimation courante ne peut pas dépasser le coût d’une étape plus l’estimation du successeur.

Sur la carte routière, A→C donne 7≤4+4, C→B donne 4≤1+5 et D→G donne 2≤2+0. Les routes à double sens exigent de vérifier les deux directions. Les 16 vérifications orientées sont satisfaites pour ces estimations.

Additionner les inégalités le long d’un chemin vers un but annule les estimations intermédiaires. Sur un chemin optimal, on obtient h(n)≤h∗(n) : la cohérence implique donc l’admissibilité. On obtient aussi

f(n′)=g(n)+c(n,a,n′)+h(n′)≥g(n)+h(n)=f(n).

Les priorités ne peuvent pas diminuer le long d’un chemin. Le premier développement d’un état se fait donc sur un chemin de coût minimal, même si sa première génération était plus coûteuse.

Comprendre pourquoi l’admissibilité seule nécessite la réouverture

Considère les routes à double sens S–A 1, A–C 1, S–B 1, B–C 2 et C–G 3. Soient les estimations S 0, A 4, B 1, C 1 et G 0. Elles ne dépassent pas les coûts réels S 5, A 4, B 5, C 3 et G 0 ; elles sont donc admissibles. Mais A→C ne respecte pas la cohérence : 4>1+1.

A* développe S, puis B avec une priorité de 2, puis C atteint pour un coût de 3 avec une priorité de 4. Il développe ensuite A avec une priorité de 5 et découvre un chemin moins coûteux vers C, de coût 2. Rejeter définitivement C parce qu’il est fermé laisse un but de coût 6. Rouvrir C propage l’amélioration et produit l’optimum, de coût 5.

Adapter l’heuristique au modèle de déplacement

La distance de Manhattan est admissible et cohérente pour des déplacements horizontaux et verticaux d’une case. Si les déplacements en diagonale coûtent aussi 1, aller de (0 ; 0) à (3 ; 3) ne prend que trois déplacements, tandis que la distance de Manhattan donne 6. Pour ce modèle de déplacement, max⁡(∣Δx∣,∣Δy∣) donne la distance sans obstacle. La garantie d’une heuristique est liée à un modèle d’action particulier.

Points clés

  • L’admissibilité borne une estimation par le coût restant réel.
  • La cohérence vérifie chaque action orientée et exige une valeur nulle pour les buts.
  • La cohérence implique l’admissibilité ; l’admissibilité n’implique pas la cohérence.
  • Les heuristiques cohérentes rendent f non décroissante le long d’un chemin.
  • Les heuristiques admissibles mais non cohérentes nécessitent la réouverture pour la garantie générale de A*.
  • Modifier les déplacements autorisés peut invalider une heuristique.

4.2 Construire des heuristiques admissibles à partir de problèmes relaxés

Pour concevoir une estimation fiable, résous une version plus facile du problème. Un problème relaxé supprime des restrictions sur les actions : toutes les solutions initiales restent donc disponibles. Son coût minimal ne peut pas dépasser celui du problème initial.

Supprimer les restrictions de façon réfléchie

Un coût exact de problème relaxé est une heuristique admissible. Il est aussi cohérent lorsque les actions initiales restent disponibles avec leurs coûts : effectuer une étape initiale puis suivre un itinéraire optimal dans le problème relaxé est un itinéraire possible dans ce problème ; l’optimum relaxé ne peut donc pas coûter plus cher.

Dans le taquin à 8 cases, une tuile ne peut se déplacer vers une case voisine que si cette case est vide. Supprime l’exigence de case vide et les tuiles peuvent traverser les cases occupées. Chaque tuile numérotée doit alors parcourir au moins la somme de ses distances horizontale et verticale jusqu’à sa cible. Leur somme donne la distance de Manhattan, h2.

Supprime aussi l’exigence de voisinage et chaque tuile mal placée peut sauter directement vers sa cible en un déplacement. Le coût obtenu est le nombre de tuiles mal placées, h1. Les deux sont faciles à calculer sans explorer le taquin initial.

Calculer les deux estimations

Pour le but « 1 2 3 / 4 5 6 / 7 8 case vide », considère « 5 1 3 / 4 case vide 2 / 7 8 6 ». Numérote les lignes et les colonnes à partir de 1.

TuilePosition actuellePosition cibleDistance
5(1 ; 1)(2 ; 2)2
1(1 ; 2)(1 ; 1)1
2(2 ; 3)(1 ; 2)2
6(3 ; 3)(2 ; 3)1

Les autres tuiles numérotées sont déjà à la bonne place. Quatre sont mal placées, donc h1=4. Leurs distances totalisent 2+1+2+1=6, donc h2=6. La solution optimale prend 12 déplacements ; les relaxations ignorent les interactions qui créent du travail supplémentaire.

Ne compte pas la case vide. À un déplacement du but, une tuile numérotée et la case vide sont toutes deux déplacées. Compter les deux donnerait 2 alors que le coût réel est de 1. La case vide permet les déplacements ; ce n’est pas une tuile supplémentaire à comptabiliser.

Stocker les sous-problèmes résolus

Une base de données de motifs enregistre les coûts exacts d’un sous-problème choisi, par exemple placer correctement les tuiles 1 à 4 en considérant les autres comme interchangeables. Construis la table une fois par une recherche à rebours depuis le but. Pendant une nouvelle recherche, consulte la table au lieu de résoudre à nouveau le sous-problème.

Le sous-problème ne demande pas plus de travail que le problème complet, ce qui fournit une borne inférieure. Cependant, additionner deux coûts de motifs ordinaires peut compter deux fois un même déplacement réel. L’addition est fiable pour des motifs disjoints lorsque chaque base ne compte que les déplacements de ses propres tuiles. Des noms de tuiles disjoints ne suffisent pas à établir cette règle de comptabilisation des coûts.

Combiner des estimations fiables

Le maximum d’estimations admissibles est admissible :

h(n)=max⁡{h1(n),…,hk(n)}.

Chaque estimation candidate reste inférieure ou égale au coût restant réel, donc leur maximum aussi. Il est au moins aussi informatif que chacune des estimations prises séparément. Une simple somme n’offre pas cette garantie.

Une heuristique apprise à partir d’exemples résolus peut bien prédire le coût restant en moyenne. La précision moyenne n’établit pas une borne inférieure pour chaque état. Elle ne conserve la garantie de A* associée à une heuristique admissible que si l’on démontre que ses estimations ne surestiment jamais le coût.

Points clés

  • Le coût exact d’un problème relaxé est une borne inférieure du coût initial.
  • Le nombre de tuiles mal placées et la distance de Manhattan proviennent de relaxations différentes du taquin à 8 cases.
  • Exclus la case vide du calcul des deux heuristiques du taquin.
  • Les bases de données de motifs échangent du précalcul et du stockage en table contre des consultations rapides.
  • N’additionne les coûts des motifs qu’avec une comptabilisation qui évite de compter deux fois les déplacements.
  • Le maximum d’heuristiques admissibles est admissible.
  • Apprendre une heuristique ne prouve pas en soi son admissibilité.

4.3 Comparer les heuristiques selon la dominance et le facteur de branchement effectif

Une estimation plus proche du coût réel peut réduire l’exploration, mais une estimation coûteuse peut malgré tout ralentir la recherche. Compare à la fois les informations fournies et le calcul total nécessaire.

Établir la dominance sur chaque état

Une heuristique admissible h2 domine une heuristique admissible h1 si h2(n)≥h1(n) partout. Une grille favorable ne suffit pas à démontrer cette relation.

La distance de Manhattan domine le nombre de tuiles mal placées dans le taquin à 8 cases. Chaque tuile mal placée doit parcourir au moins une case ; sa contribution à la distance de Manhattan est donc au moins égale à 1, la valeur comptée par l’heuristique moins forte. Une tuile correctement placée contribue pour zéro aux deux.

Avec des estimations cohérentes, A* doit développer les chemins tels que g+h<C∗. Augmenter une estimation admissible retire certains chemins de cette région où le développement est obligatoire. Une heuristique cohérente dominante ne développe pas plus de nœuds, hormis les différences dues aux ex æquo. Une estimation non admissible peut être encore plus grande, mais elle fait perdre la garantie d’optimalité et ne remplit pas les conditions de cette comparaison par dominance.

Résumer l’effort de recherche

Le facteur de branchement effectif, b∗, décrit la largeur d’un arbre uniforme équivalent. Compte N nœuds générés sous la racine et note d la profondeur de la solution. Résous

N+1=1+b∗+(b∗)2+⋯+(b∗)d.

Le 1 supplémentaire correspond à la racine. Il faut compter de manière cohérente : si une mesure inclut déjà la racine, ne l’ajoute pas deux fois.

Pour 52 nœuds générés sous la racine et une solution de profondeur 5, le total est de 53 et b∗≈1,92. Pour 1 000 nœuds générés et une profondeur de 8, b∗≈2,20. Détermine ces valeurs numériquement en augmentant ou en diminuant une valeur d’essai jusqu’à ce que sa somme géométrique corresponde au nombre total de nœuds.

Une valeur proche de 1 indique une recherche étroite. Compare les résultats sur des instances représentatives, avec la même règle de décompte et des profondeurs de solution comparables. Le facteur de branchement effectif peut aider à estimer le passage à l’échelle, mais une instance exceptionnellement facile ne permet pas de prévoir de façon fiable le comportement sur toute une famille de problèmes.

Chronométrer l’ensemble du calcul

Supposons qu’un nœud prenne 10 microsecondes, dont 1 microseconde pour évaluer l’ancienne heuristique. Une heuristique de remplacement divise le nombre de nœuds par deux mais prend 100 microsecondes par évaluation. Le travail hors heuristique coûte toujours 9 microsecondes, donc le nouveau total par nœud est de 109. Le rapport des temps totaux est

0,5×10910=5,45.

La recherche est environ 5,5 fois plus lente malgré la visite d’un nombre inférieur de nœuds. Si la nouvelle évaluation ne prend que 2 microsecondes, le total par nœud passe à 11 et le rapport des temps est de 0,5×11/10=0,55. La recherche est alors environ 1,8 fois plus rapide.

Une base de données de motifs a aussi un coût de construction. De nombreuses recherches ayant le même but peuvent partager cet investissement ; une seule petite recherche peut ne pas le rentabiliser. Mesure séparément le prétraitement, le temps de consultation, le nombre de nœuds générés et la mémoire pour ne pas confondre une réduction des développements avec une amélioration automatique de la vitesse.

Points clés

  • La dominance exige deux heuristiques admissibles et une inégalité vérifiée dans chaque état.
  • Une heuristique cohérente dominante réduit les développements nécessaires de A*, hormis les cas d’ex æquo.
  • Le facteur de branchement effectif ajuste un arbre uniforme au nombre de nœuds et à la profondeur de la solution.
  • Compte la racine une seule fois dans l’équation de la somme géométrique.
  • Le temps d’exécution total comprend l’évaluation de l’heuristique et tout précalcul.
5

Utiliser la recherche locale dans de très grands espaces d’états

Certains problèmes demandent une bonne disposition, et non un chemin pour y parvenir. La recherche locale travaille directement sur des candidats complets et stocke très peu d’historique de recherche. La difficulté passe de la gestion d’une frontière au déplacement dans un paysage comportant des optima locaux, des zones plates et des crêtes. La recherche par escalade, les redémarrages, le recuit simulé et les méthodes à population diffèrent par leur façon de continuer à progresser lorsqu’aucune amélioration immédiate n’est disponible.

5.1 Décrire la recherche locale et le paysage de l’espace d’états

La recherche locale modifie à plusieurs reprises une réponse candidate complète. Elle convient aux tâches où la configuration finale compte et où la séquence utilisée pour la trouver peut être abandonnée.

Représenter un candidat complet

Pour les 8 dames, place une dame dans chaque colonne. Représente l’état par les huit numéros de ligne, en lisant les colonnes de gauche à droite. Chaque état comporte les huit dames, y compris les états avec des conflits. Un voisin déplace une dame vers une autre ligne de sa propre colonne.

Il existe 88=16 777 216 états et 8×7=56 voisins par état. Un nombre fixe d’états courants remplace la grande frontière et les enregistrements des parents de la recherche de chemin. Le stockage dépend toujours de la taille d’un état ; conserver un tuple de huit éléments prend moins de place que conserver un immense emploi du temps.

L’établissement d’emplois du temps, la disposition des composants d’une puce et le choix d’une tournée complète entre des villes suivent le même schéma général : chaque état est une proposition complète. Une tournée est elle-même une disposition candidate, même si son contenu décrit un trajet. La recherche locale n’a pas besoin de conserver la séquence de modifications utilisée pour améliorer cette tournée.

Définir ce que signifie « meilleur »

Une fonction objectif donne à chaque état un score à maximiser. On peut aussi définir un coût à minimiser. Pour les n dames, soit h le nombre de paires de dames qui s’attaquent. Compte chaque paire une fois, y compris les attaques sur les lignes ou les diagonales même lorsqu’une autre dame se trouve entre elles. Une solution a h=0.

Pour quatre colonnes, le tuple (1 ; 2 ; 3 ; 4) place toutes les dames sur une diagonale. Ses (42)=6 paires s’attaquent toutes. Le tuple (2 ; 1 ; 3 ; 4) comporte deux paires qui s’attaquent, tandis que (2 ; 4 ; 1 ; 3) n’en comporte aucune. Ici, les valeurs plus faibles sont meilleures ; la lettre h désigne un coût à minimiser, et non une estimation du coût de chemin restant utilisée par A*.

Lire le paysage

Imagine que la qualité d’un état soit représentée par une hauteur. Pour une maximisation :

  • Un maximum global a la meilleure valeur de tout l’espace.
  • Un maximum local est meilleur que ses voisins mais peut être moins bon qu’un état éloigné.
  • Un plateau est une région plane connexe. Il peut s’agir d’un maximum local plat sans sortie ascendante ou d’un épaulement depuis lequel des déplacements latéraux permettent d’atteindre une sortie ascendante.
  • Une crête peut monter dans une direction que les déplacements uniques disponibles ne peuvent pas suivre. Chaque choix immédiat peut sembler moins bon.

Pour minimiser un coût, inverse la hauteur : la recherche vise les minima et les vallées. Un minimum local ne prouve pas qu’il n’existe pas ailleurs un état de coût inférieur. Le voisinage détermine les états qui peuvent être comparés en une étape ; modifier la transformation autorisée peut donc changer les endroits où la recherche se bloque.

Vérifier que le chemin peut être ignoré

Un agent qui recherche un itinéraire doit renvoyer des actions autorisées depuis son départ réel. Une bonne destination ne suffit pas à elle seule. La recherche locale ne renvoie généralement que l’état candidat, sans chaîne de parents retraçant toutes les modifications précédentes.

Une méthode complète de recherche locale trouverait un but dès qu’il en existe un ; une méthode optimale trouverait le meilleur état global. Les méthodes locales de base ne donnent aucune de ces deux garanties générales. Leur intérêt est de pouvoir atteindre rapidement de bons candidats lorsque le stockage d’un arbre de recherche systématique est irréalisable.

Points clés

  • La recherche locale modifie des états candidats complets et abandonne généralement le chemin des modifications.
  • Une fonction objectif définit quels états voisins sont meilleurs.
  • Un optimum local peut être moins bon qu’un optimum global éloigné.
  • Un épaulement possède une sortie ascendante accessible par des déplacements de même valeur.
  • Le voisinage influe à la fois sur le paysage de recherche et sur les points où la progression s’arrête.

5.2 Améliorer les états par recherche par escalade

La recherche par escalade effectue la meilleure amélioration immédiate qu’elle peut trouver. Pour un score à maximiser, l’escalade à plus forte pente choisit le voisin au score le plus élevé. Pour un coût à minimiser, elle choisit le voisin au coût le plus faible. Elle s’arrête lorsqu’aucune amélioration stricte n’existe.

Suivre une exécution pour quatre dames

Soit un état qui indique la ligne de la dame dans chaque colonne et soit h le nombre de paires qui s’attaquent. Pars de (1 ; 2 ; 3 ; 4), dont le coût est de 6.

  1. Évaluer les déplacements d’une dame. Un meilleur voisin est (2 ; 2 ; 3 ; 4), de coût 4.
  2. De là, un meilleur voisin est (2 ; 1 ; 3 ; 4), de coût 2.
  3. Aucun voisin obtenu en déplaçant une dame n’a un coût inférieur à 2. La recherche par escalade stricte s’arrête.

La disposition de coût nul (2 ; 4 ; 1 ; 3) existe, mais elle ne peut pas être atteinte depuis l’état d’arrêt par un déplacement qui améliore immédiatement le résultat. C’est une conséquence de la règle locale, et non la preuve que le programme a mal compté les conflits.

Autoriser des déplacements latéraux utiles

Un déplacement latéral conserve le même score. Il peut traverser un épaulement jusqu’à une sortie qui améliore le résultat, mais il peut aussi errer sur un optimum local plat. Limite les déplacements latéraux consécutifs pour éviter de tourner indéfiniment en rond.

Dans l’expérience sur les 8 dames rapportée par Russell et Norvig, l’escalade à plus forte pente à partir de départs aléatoires réussit environ 14 % du temps, en environ 4 étapes en cas de réussite et 3 lorsqu’elle se bloque. Autoriser jusqu’à 100 déplacements latéraux consécutifs porte le taux de réussite rapporté à environ 94 %, avec environ 21 étapes par réussite et 64 par échec. Ce sont les résultats de cette expérience, et non des taux de réussite universels pour la recherche par escalade.

Changer la façon de choisir un voisin

L’escalade stochastique sélectionne au hasard un voisin qui améliore le résultat, en favorisant éventuellement les améliorations les plus importantes. L’escalade au premier choix échantillonne les voisins un par un et prend la première amélioration. Elle évite d’évaluer un immense voisinage avant chaque déplacement. Les deux refusent toujours les déplacements vers des états moins bons.

La recherche par escalade avec redémarrages aléatoires commence une nouvelle exécution à partir d’un état nouvellement échantillonné après un échec. Pour des exécutions indépendantes de probabilité de réussite p, le nombre moyen d’exécutions jusqu’à la première réussite est de 1/p. Pour p=0,14, cela représente environ 7 exécutions. Avec les nombres d’étapes rapportés, le nombre moyen total d’étapes est

4+0,860,14×3≈22.

Les exécutions échouées contribuent elles aussi au travail. Avec une probabilité de réussite strictement positive et des redémarrages indépendants, la probabilité de finir par réussir tend vers 1 lorsque le nombre d’exécutions augmente.

Faire partager les découvertes à plusieurs candidats

La recherche locale en faisceau conserve k états, génère leurs voisins ensemble et retient les k meilleurs de cet ensemble commun. Un parent prometteur peut fournir plusieurs états conservés alors qu’un autre n’en fournit aucun. Ce partage la distingue des redémarrages indépendants.

La mise en commun peut aussi regrouper tous les candidats dans une seule région. La recherche stochastique en faisceau échantillonne les états conservés avec une probabilité qui augmente avec leur qualité afin de préserver davantage de diversité. Le choix entre déplacements latéraux, redémarrages et diversité de la population dépend de la raison pour laquelle la progression échoue : un passage proche à valeur égale, une mauvaise région de départ ou trop de candidats explorant la même zone.

Points clés

  • La recherche par escalade à plus forte pente accepte la meilleure amélioration stricte et s’arrête sinon.
  • Les déplacements latéraux peuvent traverser les épaulements, mais doivent être limités dans les régions plates.
  • L’escalade au premier choix échantillonne les voisins jusqu’à trouver une amélioration.
  • Des redémarrages indépendants de probabilité de réussite p nécessitent en moyenne 1/p exécutions.
  • La recherche locale en faisceau sélectionne les voisins dans un ensemble commun, ce qui permet aux candidats de partager leurs progrès.
  • Le regroupement de la population peut réduire l’exploration même lorsque plusieurs états sont conservés.

5.3 Échapper aux optima locaux avec le recuit simulé et les algorithmes génétiques

Dans certains paysages, une perte temporaire est nécessaire pour rendre accessible un meilleur état. Le recuit simulé autorise de tels déplacements avec une probabilité contrôlée. Les algorithmes génétiques explorent plutôt l’espace en sélectionnant et en combinant des candidats complets.

Accepter parfois un déplacement vers un état moins bon

Le recuit simulé échantillonne un voisin au hasard. Accepte un déplacement qui améliore le résultat. Pour une fonction objectif à maximiser, note sa variation ΔE. Si ΔE<0, accepte le déplacement vers un état moins bon avec la probabilité

P=eΔE/T,T>0.

Pour minimiser un coût, soit Δ l’augmentation du coût. Un déplacement vers un état moins bon vérifie alors Δ>0 et sa probabilité d’acceptation est e−Δ/T. Les déplacements vers un état de même valeur ont une probabilité de 1 selon les deux formules. La température et les variations de la fonction objectif doivent utiliser des échelles numériques compatibles.

Une baisse de score de 2 est acceptée avec une probabilité d’environ 0,819 à une température de 10, de 0,135 à une température de 1 et de 0,018 à une température de 0,5. À une température de 10, une baisse plus importante de 5 a une probabilité d’environ 0,607. La température contrôle donc la tolérance, tandis que l’ampleur de la perte compte toujours à température égale.

Abaisser la température

Un schéma de refroidissement fixe la température au cours du temps. Le refroidissement géométrique utilise Tk+1=αTk avec un facteur proche de 1, par exemple 0,95. À haute température, de nombreux déplacements vers des états moins bons sont acceptés et l’exploration ressemble à une marche aléatoire. Près de zéro, ces déplacements deviennent rares et le comportement ressemble à celui de la recherche par escalade.

Un refroidissement trop rapide peut piéger la recherche avant qu’elle ne s’échappe d’une mauvaise région. Un refroidissement très lent augmente le calcul nécessaire. Le résultat asymptotique sur l’optimum global exige un refroidissement suffisamment lent et la possibilité habituelle d’atteindre les états par le voisinage ; une exécution géométrique finie ordinaire ne garantit pas de trouver l’optimum global. Utilisée depuis les années 1980 pour la disposition des composants de puces et l’ordonnancement, la méthode tire son nom du chauffage puis du refroidissement lent du métal, qui lui permet d’adopter une structure de plus faible énergie.

Construire une nouvelle population

Un algorithme génétique représente les candidats par des chaînes. À chaque génération, il évalue leur adaptation, sélectionne les parents en privilégiant les mieux adaptés, crée des enfants par croisement et applique des mutations occasionnelles.

Pour les 8 dames, huit chiffres indiquant les lignes décrivent une dame par colonne. L’adaptation peut compter les paires qui ne s’attaquent pas, avec un maximum de 28. Coupe les chaînes des parents « 64751517 » et « 64278273 » après le quatrième chiffre. La combinaison des moitiés opposées donne « 64758273 » et « 64271517 ».

Les parents ont une adaptation de 23 et 24 ; les enfants ont une adaptation de 27 et 21. Un enfant est meilleur que les deux parents tandis que l’autre est moins bon. Le croisement offre de nouvelles combinaisons, sans garantir une amélioration. Il est utile lorsque de bons blocs tendent à conserver leur valeur lorsqu’ils sont combinés. La mutation modifie occasionnellement une position et contribue à introduire de la diversité au-delà de ces combinaisons.

La sélection, le croisement et la mutation jouent des rôles différents : la sélection favorise les candidats utiles, le croisement les recombine et la mutation modifie des positions individuelles. Comme la recherche stochastique en faisceau, la méthode conserve une population, mais les nouveaux candidats peuvent reprendre des éléments de deux parents. Ni un parent très adapté ni une température finale basse ne prouve à lui seul que l’optimum global a été trouvé.

Points clés

  • Le recuit simulé échantillonne un voisin et accepte les déplacements vers des états moins bons avec une probabilité dépendant de la température.
  • Pour une augmentation de coût Δ>0, la probabilité d’acceptation est e−Δ/T.
  • Le refroidissement réduit l’exploration ; un refroidissement trop rapide peut laisser la recherche dans un optimum local.
  • Les algorithmes génétiques combinent sélection selon l’adaptation, croisement et mutation.
  • Le croisement peut produire des enfants meilleurs ou moins bons.

Algorithmes de recherche : exemples

5 Leçons Interactives

1

Transformer un problème en recherche

13 étapes
Formule un taquin, distingue les états des chemins et mesure la taille d’une recherche.
  1. 1
    IntroductionDes choix à une solution

    Un algorithme de recherche ne reçoit pas une instruction comme « résous ceci d’une manière ou d’une autre ». Il reçoit un modèle des situations possibles (états) et des actions autorisées.

    Utilise un taquin pour construire ce modèle, puis suis les enregistrements produits par la recherche, appelés nœuds. Le modèle décrit le monde ; les enregistrements décrivent les chemins examinés. Cette distinction expliquera pourquoi deux nœuds peuvent aboutir à un même état et pourquoi stocker tous les chemins possibles peut devenir coûteux.

  2. 2
    ExemplePréciser le taquin

    Pour le taquin à 8 cases, un état indique les positions des huit tuiles numérotées et de la case vide. L’état initial est la grille fournie.

    La configuration cible est « 1 2 3 / 4 5 6 / 7 8 case vide ». Les actions autorisées déplacent la case vide à gauche, à droite, en haut ou en bas sans sortir de la grille. La transition l’échange avec une tuile voisine. Chaque action coûte 1. Ces choix définissent le problème avant le début de toute recherche.

  3. 3
    ExplicationRenvoyer des actions, et pas seulement une destination

    Le test de but reconnaît une grille qui répond à l’objectif. Une solution de chemin doit aussi fournir les déplacements autorisés qui permettent de l’atteindre depuis la grille initiale.

    Si chaque déplacement coûte 1, un chemin de six déplacements coûte 6. Avec des coûts routiers différents, additionne les coûts des arcs au lieu de compter les actions. Un état but indique où tu veux arriver ; la solution indique comment y parvenir, et le coût du chemin indique le coût de ce parcours.

  4. 4
    DéfiConserver le détail qui modifie les actions

    Un planificateur d’itinéraire modélise un robot par la pièce où il se trouve. Certaines portes exigent une clé que le robot peut porter. Le planificateur peut-il omettre sans risque si le robot possède la clé ?

    ---reveal---

    Non. La possession de la clé modifie les actions autorisées depuis une même pièce. L’état doit l’enregistrer, sinon un itinéraire abstrait peut inclure le passage d’une porte que le robot ne peut pas franchir. La couleur de la peinture du robot peut être omise si elle ne modifie ni les actions ni les coûts.

  5. 5
    Point cléGénérer un grand espace au besoin

    Un espace implicite est une méthode pour générer les successeurs, et non une liste stockée de tous les états. C’est important même pour des taquins qui semblent petits : le taquin à 8 cases possède 181 440 états accessibles, tandis que celui à 15 cases en possède environ 1,05×1013.

    La recherche génère la partie dont elle a besoin. Choisir une meilleure représentation peut aussi réduire cette partie : placer chaque dame uniquement dans la prochaine colonne vide supprime de nombreux ordres de placement redondants.

  6. 6
    ExplicationStocker un chemin dans chaque nœud

    Un état est une situation. Un nœud est un enregistrement de chemin qui contient cet état, son parent, l’action qui y mène et le coût cumulé g.

    Les itinéraires « S, A, C » et « S, B, C » produisent des nœuds différents qui aboutissent à C. La carte contient un seul C, mais l’arbre de recherche peut contenir les deux arrivées. Suivre les liens vers les parents depuis un but renvoyé et inverser les actions permet de reconstituer son itinéraire particulier.

  7. 7
    ExempleDistinguer les enregistrements en attente et les états atteints

    Sur la carte à double sens, S possède des routes vers A de 2 km, B de 3 km et D de 9 km. Développer S génère trois nœuds dont le parent est S.

    La frontière contient maintenant A, B et D, qui attendent d’être sélectionnés. La table des états atteints contient S ainsi que ces trois états. Elle mémorise les états générés, et pas seulement ceux qui ont été développés, afin qu’un autre itinéraire ne puisse pas ajouter sans être détecté un doublon inutile d’un état en attente.

  8. 8
    ExplicationPropager une amélioration

    Supposons que C soit d’abord atteint par A au coût de 6. Plus tard, B propose un itinéraire vers C coûtant 4. Remplace le meilleur enregistrement de C, y compris son parent, afin que les itinéraires ultérieurs héritent du préfixe moins coûteux.

    Si C a déjà été développé, certains algorithmes doivent le rouvrir pour transmettre l’amélioration. Si un tas contient encore l’ancienne entrée de coût 6, ignore cette entrée périmée lorsqu’elle est retirée ; elle ne représente plus le meilleur chemin vers C.

  9. 9
    DéfiReconstituer le bon itinéraire

    Un nœud but Z a pour parent M. Le meilleur nœud de M a pour parent K, et le parent de K est la racine R. Un ancien nœud de M avait pour parent P. Quel itinéraire faut-il renvoyer ?

    ---reveal---

    Renvoie R–K–M–Z en suivant à rebours la chaîne réelle des parents du nœud renvoyé, puis en l’inversant. L’ancien nœud de M décrit un chemin différent. Mélanger son parent avec le coût amélioré ferait que l’itinéraire indiqué ne correspondrait pas à son propre enregistrement de recherche.

  10. 10
    ExplicationPoser quatre questions distinctes

    Être complet signifie trouver une solution dès qu’il en existe une. Être optimal en coût signifie renvoyer la solution la moins coûteuse. Un espace infini sans solution ne conduit pas nécessairement à un signalement d’échec qui met fin à la recherche.

    Le temps mesure les nœuds générés ou développés ; l’espace mesure le pic d’information conservée. Une méthode peut être complète tout en renvoyant un itinéraire coûteux, ou renvoyer l’itinéraire le moins coûteux tout en utilisant trop de mémoire pour être pratique sur une instance plus grande.

  11. 11
    ExempleObserver la croissance des couches

    Pour un facteur de branchement de 10, les couches jusqu’à la profondeur 5 contiennent 1, 10, 100, 1 000, 10 000 et 100 000 nœuds. Ensemble, elles contiennent 111 111 nœuds.

    La plupart se trouvent dans la dernière couche. C’est pourquoi un niveau de profondeur supplémentaire compte autant : il ajoute encore 1 000 000 de chemins avant la détection des doublons. À 1 kilooctet par nœud, une exploration large peut atteindre une limite de stockage même lorsque la génération des nœuds est rapide.

  12. 12
    DéfiNe pas confondre chemin court et chemin peu coûteux

    Un algorithme complet renvoie toujours un itinéraire de deux actions coûtant 17 unités, alors qu’un itinéraire de quatre actions coûte 10. Est-il optimal en coût, et sa complétude permet-elle de trancher cette question ?

    ---reveal---

    Il n’est pas optimal en coût, car une solution moins coûteuse existe. La complétude établit qu’il trouve une solution, et non laquelle il choisit. Les actions supplémentaires ne rendent pas l’itinéraire de quatre actions moins bon lorsque l’objectif est le coût total.

  13. 13
    RécapitulatifLire un déroulement de recherche avec un objectif

    Distingue trois niveaux : les états et les actions du problème, les chemins stockés sous forme de nœuds et la règle qui sélectionne le prochain nœud de la frontière. Demande-toi ensuite si le chemin renvoyé répond à l’objectif recherché.

    Pour comparer les ressources, identifie le facteur de branchement, la profondeur de la solution et la profondeur maximale. Vérifie ce qui est stocké ainsi que ce qui est développé ; deux stratégies peuvent rechercher le même but avec des besoins en mémoire très différents.

2

Suivre une recherche non informée sur une carte

16 étapes
Compare l’ordre d’une file, celui des coûts et celui d’une pile, puis choisis une stratégie selon les limites de mémoire et la réversibilité.

Enregistre cette unité pour suivre chaque Leçon Interactive pas à pas.

  1. 1
    IntroductionUne carte, plusieurs ordres de recherche
  2. 2
    ExempleCommencer la file de recherche en largeur
  3. 3
    ExempleFaire apparaître le premier but
  4. 4
    DéfiInterpréter le résultat de la recherche en largeur
  5. 5
    ConseilUtiliser la borne correspondant à la recherche en largeur
  6. 6
    ExempleOrdonner selon le coût déjà engagé
  7. 7
    ExempleRetirer le but au coût minimal
  8. 8
    DéfiAttendre l’itinéraire inachevé moins coûteux
  9. 9
    Point cléBorner le coût d’une profondeur sans fin
  10. 10
    ExempleSuivre la branche en profondeur
  11. 11
    ExplicationDistinguer une limite d’un échec
  12. 12
    ExemplePayer un faible coût pour utiliser moins de mémoire
  13. 13
    DéfiChoisir une stratégie selon la profondeur
  14. 14
    ExplicationRencontrer une recherche partie du but
  15. 15
    DéfiChoisir selon les coûts et l’accès à rebours
  16. 16
    RécapitulatifAdapter la garantie à la tâche
3

Guider une recherche à l’aide d’estimations

15 étapes
Suis le déroulement de la recherche gloutonne et de A*, puis examine les compromis de vitesse et de mémoire des variantes courantes.

Enregistre cette unité pour suivre chaque Leçon Interactive pas à pas.

  1. 1
    IntroductionEstimer le trajet restant
  2. 2
    ExplicationDonner un sens à l’estimation
  3. 3
    ExempleLaisser la proximité apparente guider le choix
  4. 4
    DéfiChoisir entre un préfixe peu coûteux et une petite estimation
  5. 5
    ExempleAdditionner les deux coûts
  6. 6
    ExempleDépartager les derniers ex æquo
  7. 7
    Point cléGarder un itinéraire optimal compétitif
  8. 8
    ExplicationSavoir quand un état fermé peut le rester
  9. 9
    DéfiDiagnostiquer une amélioration ignorée
  10. 10
    ExempleFavoriser la progression vers le but
  11. 11
    ExplicationAugmenter une courbe de niveau du coût au lieu de conserver une frontière
  12. 12
    ExemplePasser le seuil de coupure de huit à neuf
  13. 13
    ConseilDéterminer si les chemins oubliés peuvent revenir
  14. 14
    DéfiChoisir une garantie avec une mémoire limitée
  15. 15
    RécapitulatifDistinguer ordre, arrêt et mémoire
4

Construire et vérifier une heuristique admissible

15 étapes
Vérifie les bornes sur les états et les arcs, déduis des estimations pour un taquin et compare leur intérêt au regard du calcul nécessaire.

Enregistre cette unité pour suivre chaque Leçon Interactive pas à pas.

  1. 1
    IntroductionDémontrer que l’estimation est admissible
  2. 2
    ExplicationVérifier la borne sur le coût réel
  3. 3
    ExempleVérifier une étape orientée
  4. 4
    DéfiDistinguer une estimation optimiste d’une estimation régulière
  5. 5
    LienLaisser les déplacements déterminer la distance
  6. 6
    ExplicationConstruire délibérément un problème plus facile
  7. 7
    ExempleRelâcher deux restrictions du taquin
  8. 8
    ExempleCompter les tuiles numérotées déplacées
  9. 9
    DéfiÉviter de compter deux fois un déplacement
  10. 10
    ExplicationPrécalculer et combiner des bornes inférieures
  11. 11
    ExplicationComparer les estimations partout
  12. 12
    ExempleAjuster un arbre équivalent
  13. 13
    ExempleTenir compte du calcul de l’heuristique
  14. 14
    DéfiUtiliser deux estimations sans affirmer une dominance
  15. 15
    RécapitulatifÉvaluer séparément l’admissibilité et l’utilité
5

Améliorer des candidats complets

16 étapes
Suis une recherche par escalade pour placer des dames, puis utilise les redémarrages, le recuit et le croisement pour explorer au-delà d’une amélioration immédiate.

Enregistre cette unité pour suivre chaque Leçon Interactive pas à pas.

  1. 1
    IntroductionRechercher une disposition
  2. 2
    ExemplePlacer toutes les dames dans l’état
  3. 3
    ExempleCompter les paires qui s’attaquent
  4. 4
    ExplicationVisualiser les pièges
  5. 5
    DéfiDéterminer si l’historique des modifications compte
  6. 6
    ExempleSuivre les meilleures améliorations immédiates
  7. 7
    ExplicationEssayer un déplacement latéral ou un nouveau départ
  8. 8
    DéfiInclure l’exécution réussie
  9. 9
    LienPartager les progrès sans perdre toutes les autres possibilités
  10. 10
    ExplicationAccepter une perte temporaire
  11. 11
    ExempleGarder la perte fixe et abaisser la température
  12. 12
    DéfiGarder des signes cohérents
  13. 13
    ConseilRefroidir à un rythme adapté
  14. 14
    ExempleCombiner deux chaînes parentales
  15. 15
    DéfiDiagnostiquer une population qui stagne
  16. 16
    RécapitulatifChoisir comment franchir l’obstacle

Algorithmes de recherche : QCM

50 Questions Pratiques en 5 séries

Série 1 : Heuristiques, A* et limites de mémoire10 Questions Pratiques

Question 1 sur 10

La recherche gloutonne a dans sa frontière les nœuds L de coût cumulé 2 et d’estimation 8, M de coût 9 et d’estimation 1, et N de coût 4 et d’estimation 3. Quel nœud retire-t-elle ensuite ?
  1. L
  2. N
  3. M
  4. L et N ensemble
Afficher la réponseMasquer la réponse
Réponse : C
La recherche gloutonne ne compare que l’estimation du coût restant : la valeur 1 de M l’emporte donc. L a le coût cumulé le plus faible, mais c’est le critère d’ordonnancement de la recherche à coût uniforme. Inclure le coût déjà engagé transformerait la comparaison en celle de A* et n’expliquerait pas cette décision gloutonne.

Question 2 sur 10

A* a dans sa frontière les nœuds J de coût cumulé 4 et d’estimation 6, K de coût 7 et d’estimation 2, et L de coût 2 et d’estimation 8. Quel nœud a la plus faible valeur de priorité ?
  1. K
  2. J
  3. L
  4. J et L ensemble
Afficher la réponseMasquer la réponse
Réponse : A
A* additionne le coût cumulé et le coût restant estimé. J et L ont chacun une priorité de 10, tandis que K a une priorité de 9 et est retiré en premier. Choisir L uniquement parce que son coût est de 2 ignorerait son estimation restante plus élevée et appliquerait plutôt la comparaison de la recherche à coût uniforme.

Question 3 sur 10

Une recherche gloutonne utilise une heuristique admissible et renvoie un itinéraire de coût 18, alors qu’un itinéraire de coût 13 existe. Pourquoi ce résultat est-il compatible avec sa règle ?
  1. Une estimation admissible doit égaler le coût restant dans chaque état.
  2. Elle ordonne selon les coûts cumulés sans utiliser les estimations restantes.
  3. Une estimation admissible permet une estimation positive pour chaque but.
  4. Elle ordonne selon les estimations restantes sans compter le chemin déjà parcouru.
Afficher la réponseMasquer la réponse
Réponse : D
L’admissibilité borne l’estimation restante, mais la recherche gloutonne ignore toujours le coût cumulé. Un état peut sembler proche après que l’algorithme a déjà payé le prix d’un long détour. L’admissibilité permet de garantir l’optimalité de A* avec un traitement adapté des doublons ; elle ne transmet pas cette garantie à un ordonnancement fondé uniquement sur l’estimation.

Question 4 sur 10

Une carte orientée comporte R→T 3, R→U 6, T→Z 9 et U→Z 2. Les estimations sont R 5, T 4, U 2 et Z 0. Quel coût de but A* renvoie-t-il ?
  1. 12
  2. 8
  3. 7
  4. 11
Afficher la réponseMasquer la réponse
Réponse : B
T est développé en premier avec une priorité de 7 et génère un but de coût 12. U a encore une priorité de 8 : il est donc développé avant ce but et améliore le coût de Z à 8. S’arrêter lorsque T génère Z pour la première fois renverrait 12 ; le test de but à l’extraction permet à un itinéraire en attente moins coûteux d’aboutir d’abord.

Question 5 sur 10

A* pondéré utilise une heuristique admissible, la réouverture et un poids de 1,5. Le coût optimal est de 20. Quelle borne supérieure sa garantie fixe-t-elle pour le coût renvoyé ?
  1. 20
  2. 30
  3. 21,5
  4. 40
Afficher la réponseMasquer la réponse
Réponse : B
La garantie de la version pondérée multiplie le coût optimal par le poids, ce qui donne 30. Elle autorise une solution allant de l’optimum jusqu’à cette borne ; elle ne promet donc pas un coût de 30 exactement. Conserver une borne de 20 reviendrait à attribuer à tort la garantie d’optimalité de A* ordinaire à la version pondérée.

Question 6 sur 10

Une itération de IDA* utilise un seuil de coupure de 14. Les valeurs élaguées au-dessus du seuil sont 17, 19, 17 et 24. Quel seuil est utilisé ensuite ?
  1. 17
  2. 15
  3. 19
  4. 24
Afficher la réponseMasquer la réponse
Réponse : A
IDA* porte le seuil à la plus petite valeur qui dépassait le seuil courant, soit 17. L’augmenter de 1 répéterait une recherche qui n’admet aucun nouveau niveau de priorité accessible. Choisir 19 sauterait la première courbe de niveau exclue et pourrait passer à côté d’une solution moins coûteuse.

Question 7 sur 10

A* possède dans sa frontière un but de coût 16 et un nœud qui n’est pas un but de priorité 14. Que doit-il faire ensuite si toutes les autres priorités sont plus élevées ?
  1. Renvoyer le nœud but qui a déjà été généré.
  2. Retirer le but et déclarer son chemin optimal.
  3. Écarter le nœud non but dont la priorité est plus faible.
  4. Retirer le nœud non but et poursuivre la recherche.
Afficher la réponseMasquer la réponse
Réponse : D
Le nœud qui n’est pas un but a la priorité minimale de la frontière : A* doit donc l’examiner avant de renvoyer le but. Avec une estimation admissible, ce chemin peut encore mener à une solution moins coûteuse. Trouver un but prouve qu’une solution existe ; cela ne remplace pas l’ordre fondé sur le coût plus l’estimation et n’établit pas l’optimalité à la génération.

Question 8 sur 10

Une recherche finie nécessite un chemin optimal. Son heuristique est admissible, les coûts ne prennent que quelques valeurs entières et A* ordinaire épuise la mémoire disponible pour la frontière. Un chemin solution tient facilement en mémoire. Quelle méthode préserve l’optimalité à l’aide de passages en profondeur ?
  1. Recherche en faisceau
  2. A* pondéré avec un poids de 2
  3. IDA*
  4. Recherche gloutonne
Afficher la réponseMasquer la réponse
Réponse : C
IDA* utilise des passages en profondeur d’abord avec des seuils de coupure croissants sur le coût estimé ; il conserve l’optimalité avec une heuristique admissible sans stocker la large frontière de A*. Un petit nombre de niveaux de coût distincts aide à limiter les passages répétés. La recherche en faisceau réduit aussi le stockage de la frontière, mais les chemins écartés peuvent inclure l’optimum : elle ne peut donc pas satisfaire la garantie demandée.

Question 9 sur 10

Une carte orientée comporte S→A 2, S→B 1, B→A 2 et A→G 4. Les estimations sont S 0, A 0, B 7 et G 0. A* teste les buts à l’extraction. Quel coût renvoie-t-il et quel défaut de l’heuristique explique le résultat ?
  1. 6 ; B surestime, mais l’itinéraire renvoyé reste optimal.
  2. 7 ; B surestime et masque l’itinéraire moins coûteux par A.
  3. 6 ; toutes les estimations sont admissibles, donc l’optimalité est garantie.
  4. 7 ; A n’est pas cohérent car son estimation est nulle.
Afficher la réponseMasquer la réponse
Réponse : A
A a une priorité de 2 et génère G au coût 6, qui est retiré avant B de priorité 8. L’autre itinéraire par B coûte 7, donc l’itinéraire renvoyé est optimal. B surestime néanmoins son coût restant réel de 6 ; perdre une garantie générale permet un échec sur certains problèmes, mais n’impose pas un échec à chaque exécution.

Question 10 sur 10

SMA* possède une heuristique admissible. Sa mémoire peut contenir un chemin solution complet de coût 25, mais chaque chemin optimal de coût 19 nécessite plus de mémoire que celle disponible. Quelle garantie reste-t-il sur le coût renvoyé ?
  1. Il doit tout de même renvoyer le coût optimal de 19.
  2. Il doit signaler un échec et ne renvoyer aucun chemin.
  3. Il doit renvoyer un coût d’au plus 1,5 fois 19.
  4. Il peut renvoyer 25 ; le coût 19 n’est pas garanti.
Afficher la réponseMasquer la réponse
Réponse : D
La condition d’optimalité de SMA* exige assez de mémoire pour contenir un chemin solution optimal. Cette condition n’est pas remplie, alors qu’un chemin complet plus coûteux peut encore tenir en mémoire : un résultat non optimal est donc possible. Un échec n’est pas imposé simplement parce que les chemins optimaux sont trop longs ; le chemin de coût 25 fournit une autre possibilité réalisable.
Série 2 : États, frontières et recherche non informée10 Questions Pratiques

Enregistre cette unité pour voir chaque réponse et t'entraîner sur chaque série.

Question 1 sur 10

Un planificateur d’itinéraire ne renvoie que le nom de la destination. Que doit-il renvoyer pour fournir une solution de chemin ?
  1. L’estimation de la distance restante à la destination.
  2. Les actions qui mènent du départ à la destination.
  3. La liste de tous les lieux générés pendant la recherche.
  4. L’action de coût minimal sur l’ensemble de la carte.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 2 sur 10

Un nœud a été généré et placé dans la frontière, mais n’a pas été développé. Où son état est-il enregistré dans une recherche dans un graphe ?
  1. Seulement dans l’ensemble fermé, avant le développement.
  2. Dans la table des états atteints, seulement après le développement.
  3. Seulement dans son parent, jusqu’au développement.
  4. Dans la table des états atteints, même avant le développement.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 3 sur 10

Un arbre de recherche complet a un facteur de branchement de 3 et s’étend jusqu’à la profondeur 4. Combien de nœuds contient-il, racine comprise ?
  1. 121 nœuds
  2. 81 nœuds
  3. 120 nœuds
  4. 364 nœuds
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 4 sur 10

Les arcs orientés sont R→K, R→M, K→N, M→Z et N→Z. Une recherche en largeur d’abord part de R et cherche Z en générant les voisins par ordre alphabétique. Quel chemin renvoie-t-elle ?
  1. R–K–N–Z
  2. R–K–M–Z
  3. R–M–Z
  4. R–M–N–Z
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 5 sur 10

Une carte orientée comporte P→Q 5 km, P→R 2 km, R→Q 1 km et Q→Z 4 km. Quels itinéraire et coût la recherche à coût uniforme renvoie-t-elle de P à Z ?
  1. P–Q–Z, 9 km
  2. P–R–Q–Z, 6 km
  3. P–Q–Z, 7 km
  4. P–R–Q–Z, 7 km
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 6 sur 10

Une recherche à profondeur limitée se termine par une coupure à la limite 6. Qu’établit ce résultat ?
  1. La limite a empêché la recherche d’être menée jusqu’au bout.
  2. L’espace d’états accessibles ne contient aucun but, à aucune profondeur.
  3. Le but le moins profond doit se trouver exactement à sept actions.
  4. L’espace d’états accessibles a une profondeur maximale de six.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 7 sur 10

Un taquin a un branchement fini, des coûts de déplacement égaux, une profondeur de but inconnue et trop peu de mémoire pour une large frontière. Quelle méthode non informée trouve une solution de profondeur minimale avec le stockage d’une recherche en profondeur ?
  1. Recherche à coût uniforme
  2. Recherche par approfondissement itératif
  3. Recherche gloutonne
  4. Recherche en profondeur d’abord
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 8 sur 10

Un système peut énumérer les successeurs mais pas les prédécesseurs. Il possède un but explicite. Qu’est-ce qui empêche la recherche bidirectionnelle habituelle ?
  1. La recherche vers l’avant ne peut pas reconnaître l’état but.
  2. Les deux directions doivent avoir des coûts d’arc différents.
  3. La recherche à rebours ne peut pas générer ses états suivants.
  4. Le but doit décrire plusieurs états acceptables.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 9 sur 10

Une recherche peut choisir parmi un nombre fini d’actions dans chaque état. Une branche est infinie et une autre atteint un but en quatre actions. Que peut-on conclure sur la recherche en largeur d’abord et la recherche en profondeur d’abord en arbre avec détection des cycles sur le chemin ?
  1. La recherche en largeur trouve un but ; celle en profondeur peut rester sur la branche infinie.
  2. Les deux trouvent un but car chaque état possède un nombre fini d’actions.
  3. La recherche en profondeur trouve un but ; celle en largeur peut rester dans une couche infinie peu profonde.
  4. Aucune ne trouve de but car l’espace d’états est infini.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 10 sur 10

Une recherche à coût uniforme explore un graphe infini à branchement fini. Chaque étape coûte plus que zéro, mais le coût d’étape n’a pas de minorant strictement positif. Les coûts cumulés d’une chaîne infinie tendent vers 2, tandis qu’un but directement accessible coûte 3. Que peut-il se passer ?
  1. La recherche doit renvoyer le but car chaque étape a un coût positif.
  2. La recherche peut développer la chaîne indéfiniment avant de retirer le but.
  3. La recherche doit signaler un échec après que le coût de la chaîne atteint 2.
  4. La recherche renvoie un but moins coûteux quelque part sur la chaîne.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Série 3 : Vérifier, construire et comparer des heuristiques10 Questions Pratiques

Enregistre cette unité pour voir chaque réponse et t'entraîner sur chaque série.

Question 1 sur 10

Dans un état dont le coût restant minimal réel est de 11, une heuristique donne 13. Quelle propriété n’est pas respectée dans cet état ?
  1. Complétude
  2. Positivité du coût
  3. Finitude de la profondeur
  4. Admissibilité
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 2 sur 10

Deux estimations admissibles dans un état valent 7 et 10. Quelle valeur utilise leur combinaison par maximum ?
  1. 7
  2. 17
  3. 10
  4. 3
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 3 sur 10

Un arc orienté X→Y coûte 3. Les estimations sont de 8 en X et de 4 en Y. Qu’établit cet arc au sujet de la cohérence ?
  1. Elle n’est pas respectée car 8 dépasse 3 + 4.
  2. Elle est respectée car les deux valeurs sont positives.
  3. Elle est respectée car les estimations diminuent de 4.
  4. Elle n’est pas respectée car 4 est inférieur à 3 + 8.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 4 sur 10

Le but du taquin à 8 cases est « 1 2 3 / 4 5 6 / 7 8 case vide ». Pour « 1 2 3 / 4 5 6 / case vide 7 8 », quelles sont les estimations du nombre de tuiles mal placées et de la somme des distances de Manhattan ?
  1. 3 et 4
  2. 2 et 2
  3. 2 et 4
  4. 3 et 2
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 5 sur 10

Une recherche génère 30 nœuds sous sa racine et trouve une solution à la profondeur 4. Quel facteur de branchement effectif correspond exactement à ce nombre de nœuds ?
  1. 2
  2. 3
  3. 4
  4. 1,5
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 6 sur 10

Un concepteur supprime une restriction sur les actions mais conserve chaque action initiale disponible à son coût initial. Pourquoi le coût exact du problème relaxé est-il une borne inférieure fiable ?
  1. Chaque solution relaxée doit rester autorisée dans le problème initial.
  2. Chaque solution relaxée doit utiliser moins d’actions que toute solution initiale.
  3. Chaque solution initiale reste disponible dans le problème relaxé.
  4. Chaque action initiale doit maintenant avoir un coût numérique strictement inférieur.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 7 sur 10

Une carte orientée comporte R→X 2, R→Y 1, Y→X 2 et X→Z 5. Les estimations sont R 0, X 0, Y 6 et Z 0. L’heuristique est-elle admissible et cohérente ?
  1. Cohérente, mais non admissible.
  2. À la fois admissible et cohérente.
  3. Ni admissible ni cohérente.
  4. Admissible, mais non cohérente.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 8 sur 10

Deux bases de données de motifs utilisent des ensembles de tuiles disjoints, mais chaque table compte une unité pour chaque déplacement du taquin, y compris ceux des autres tuiles. Un seul déplacement peut faire progresser les deux sous-problèmes. Quelle combinaison est garantie admissible ?
  1. La somme, car les ensembles de tuiles sont disjoints.
  2. Le maximum des deux valeurs des tables.
  3. Le double de la plus grande valeur des deux tables.
  4. La somme moins un, pour chaque état du taquin.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 9 sur 10

Une ancienne recherche évalue 80 000 nœuds à 12 microsecondes chacun, dont 2 pour son heuristique. Une nouvelle heuristique prend 8 microsecondes et réduit le nombre de nœuds à 48 000 ; le reste du travail par nœud est inchangé. Que représente le nouveau temps total par rapport à l’ancien ?
  1. 60 % du temps initial
  2. 120 % du temps initial
  3. 90 % du temps initial
  4. 150 % du temps initial
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 10 sur 10

Les heuristiques admissibles H et J donnent les valeurs 4 et 7 dans l’état X, puis 9 et 6 dans l’état Y. Que peut-on conclure sur la dominance et leur maximum ?
  1. Aucune ne domine ; leur maximum est admissible.
  2. J domine H ; leur maximum est admissible.
  3. H domine J ; leur maximum peut surestimer.
  4. Aucune ne domine ; leur somme est toujours admissible.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Série 4 : Paysages, redémarrages et recherche à population10 Questions Pratiques

Enregistre cette unité pour voir chaque réponse et t'entraîner sur chaque série.

Question 1 sur 10

Un outil d’optimisation des emplois du temps renvoie un emploi du temps complet et abandonne la séquence d’échanges utilisée pour le trouver. Qu’est-ce qui rend la recherche locale adaptée à cette tâche ?
  1. La disposition finale est la réponse demandée.
  2. Les échanges doivent former le chemin le moins coûteux possible.
  3. Chaque emploi du temps candidat doit avoir une qualité égale.
  4. L’ensemble complet des emplois du temps doit tenir en mémoire.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 2 sur 10

Un état de recherche locale pour les 6 dames comporte une dame par colonne. Un déplacement place une dame sur une autre ligne de sa colonne. Combien de voisins chaque état possède-t-il ?
  1. 36
  2. 25
  3. 30
  4. 12
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 3 sur 10

Une recherche par escalade stricte qui minimise un coût se trouve au coût 7. Les coûts des voisins sont 9, 7, 8 et 10. Que fait-elle ?
  1. Elle se déplace latéralement.
  2. Elle passe au coût 8.
  3. Elle redémarre aléatoirement.
  4. Elle s’arrête au coût 7.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 4 sur 10

Des exécutions indépendantes de recherche par escalade réussissent avec une probabilité de 0,25. Quel est le nombre moyen d’exécutions jusqu’à la première réussite ?
  1. 3 exécutions
  2. 4 exécutions
  3. 5 exécutions
  4. 0,25 exécution
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 5 sur 10

Un déplacement de recuit simulé augmente de 3 un coût à minimiser, à une température de 6. Quelle est approximativement sa probabilité d’acceptation ?
  1. 0,223
  2. 0,607
  3. 0,500
  4. 1,000
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 6 sur 10

Les parents d’un algorithme génétique sont « 253142 » et « 461325 ». Un croisement coupe après le troisième chiffre et échange les suffixes. Quels sont les enfants ?
  1. « 253142 » et « 461325 »
  2. « 251325 » et « 463142 »
  3. « 253461 » et « 142325 »
  4. « 253325 » et « 461142 »
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 7 sur 10

Une recherche locale qui maximise un score part de P, de score 10. Les modifications autorisées sont P→Q (10), P→R (9), Q→V (10), Q→W (8), V→U (13) et V→Q (10). Un but exige un score de 13. Quelle est la plus petite limite de déplacements latéraux consécutifs permettant d’atteindre un but sans accepter de perte, et quelle caractéristique du paysage forment P, Q et V ?
  1. 2 ; un épaulement
  2. 1 ; un épaulement
  3. 2 ; un maximum local plat
  4. 3 ; un maximum local strict
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 8 sur 10

Chaque redémarrage indépendant réussit avec une probabilité de 0,2. Une exécution échouée prend 6 déplacements et une exécution réussie en prend 10. Quel est le nombre moyen total de déplacements jusqu’à la première réussite ?
  1. 30 déplacements
  2. 40 déplacements
  3. 34 déplacements
  4. 50 déplacements
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 9 sur 10

Deux exécutions de recuit font face à des augmentations de coût proposées. L’exécution X a une augmentation de 4 à une température de 8 ; l’exécution Y a une augmentation de 2 à une température de 2. Comment leurs probabilités d’acceptation se comparent-elles ?
  1. X vaut environ 0,368 ; Y vaut environ 0,607.
  2. Les deux valent environ 0,607 car les deux déplacements augmentent le coût.
  3. Les deux valent environ 0,368 car les deux températures sont positives.
  4. X vaut environ 0,607 ; Y vaut environ 0,368.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 10 sur 10

Une recherche locale en faisceau conserve trois états. Depuis A, les scores des successeurs sont A1 11 et A2 7 ; depuis B, B1 10 et B2 9 ; depuis C, C1 8 et C2 6. Au tour suivant, A1 produit les scores 13 et 5 ; B1 produit 12 et 11 ; B2 produit 10 et 9. Après deux tours de sélection des trois meilleurs, combien d’états conservés descendent respectivement des états initiaux A, B et C ?
  1. 2, 1 et 0
  2. 1, 2 et 0
  3. 1, 1 et 1
  4. 0, 3 et 0
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Série 5 : Choisir et diagnostiquer des méthodes de recherche10 Questions Pratiques

Enregistre cette unité pour voir chaque réponse et t'entraîner sur chaque série.

Question 1 sur 10

Chaque déplacement dans un taquin fini coûte 4 unités. Que minimise une solution de profondeur minimale ?
  1. Le temps d’exécution de l’heuristique et le nombre de déplacements.
  2. Le nombre d’états accessibles et le nombre de déplacements.
  3. Le facteur de branchement maximal et le nombre de déplacements.
  4. Le coût total du chemin et le nombre de déplacements.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 2 sur 10

Un casse-tête à panneaux n’autorise une rotation spéciale qu’avant l’actionnement d’un loquet à usage unique. Son état n’enregistre actuellement que les positions des panneaux. Quelle information supplémentaire doit figurer dans l’état ?
  1. Le nombre de nœuds actuellement dans la frontière de recherche.
  2. Le fait que le loquet à usage unique ait déjà été actionné ou non.
  3. L’ordre alphabétique utilisé pour départager les ex æquo de la recherche.
  4. Le nombre d’itinéraires déjà essayés par le planificateur.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 3 sur 10

Deux itinéraires atteignent un but : l’un comporte 2 actions coûtant 14 au total ; l’autre comporte 4 actions coûtant 8. Aucune heuristique n’est disponible. Quelle stratégie garantit le coût minimal dans le modèle à coûts strictement positifs ?
  1. Recherche à coût uniforme
  2. Recherche en largeur d’abord
  3. Recherche en profondeur d’abord
  4. Recherche à profondeur limitée avec une limite de 2
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 4 sur 10

Dans un recuit simulé qui minimise un coût, une proposition diminue le coût de 5 alors que la température est de 0,1. Comment cette proposition est-elle traitée ?
  1. Elle est acceptée avec une probabilité de 0,007.
  2. Elle est rejetée car la température est basse.
  3. Elle est acceptée avec une probabilité de 1.
  4. Elle est acceptée seulement après un redémarrage.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 5 sur 10

Un robot se déplace horizontalement, verticalement ou en diagonale à coût unitaire. De (2 ; 1), il cherche à atteindre (7 ; 4) sur une grille sans obstacles. Quels sont le coût restant exact et le statut de la distance de Manhattan dans cet état ?
  1. Coût 8 ; la distance de Manhattan est exacte.
  2. Coût 5 ; la distance de Manhattan surestime.
  3. Coût 3 ; la distance de Manhattan sous-estime.
  4. Coût 5 ; la distance de Manhattan est admissible ici.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 6 sur 10

Les arcs orientés sont R→P 4, R→Q 1, Q→P 1 et P→Z 4. Les estimations sont R 0, P 0, Q 5 et Z 0. Les ex æquo sont départagés par ordre alphabétique. Quels coûts renvoient A* sans réouverture et A* avec réouverture ?
  1. 8 sans réouverture ; 6 avec réouverture.
  2. 6 sans réouverture ; 6 avec réouverture.
  3. 8 sans réouverture ; 8 avec réouverture.
  4. 6 sans réouverture ; 8 avec réouverture.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 7 sur 10

Un arbre est une chaîne unique dont le premier but se trouve à la profondeur 5. Compte les nœuds générés sous la racine sur tous les passages achevés. Combien l’approfondissement itératif en génère-t-il jusqu’à son passage réussi, comparé à la recherche en largeur d’abord ?
  1. Approfondissement itératif : 5 ; largeur : 5.
  2. Approfondissement itératif : 20 ; largeur : 5.
  3. Approfondissement itératif : 15 ; largeur : 5.
  4. Approfondissement itératif : 15 ; largeur : 6.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 8 sur 10

Une table donne une estimation admissible du coût restant. Une seconde table est exacte pour une autre relaxation et donne une estimation parfois plus grande, parfois plus petite. L’optimalité est requise et les tables peuvent compter les mêmes déplacements. Comment utiliser les deux estimations sans perdre l’admissibilité ?
  1. Les additionner là où les tables gagnantes diffèrent.
  2. Utiliser leur somme moins le coût du chemin.
  3. Utiliser la plus grande plus la moitié de la plus petite.
  4. Prendre leur maximum dans chaque état.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 9 sur 10

A* utilise une heuristique cohérente. L’optimum coûte 12. Les nœuds en attente X, Y et Z ont des priorités de 10, 12 et 15 ; leurs valeurs restent inchangées. Que peut-on conclure sur leur développement avant le renvoi du but optimal ?
  1. X doit être développé ; Y peut l’être ; Z ne le sera pas.
  2. X et Y doivent être développés ; Z peut l’être.
  3. Seul X peut être développé ; Y et Z ne le seront pas.
  4. X, Y et Z doivent tous être développés avant le renvoi.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Question 10 sur 10

Une exécution de recuit utilise une température unitaire et fait face à une augmentation de coût de 3. La fonction objectif est remise à l’échelle de sorte que chaque coût soit multiplié par 100. Quelle température préserve la probabilité d’acceptation de ce déplacement, et pourquoi ?
  1. 1, car changer les unités ne modifie jamais l’exposant.
  2. 100, car le rapport entre augmentation et température reste le même.
  3. 0,01, car la température doit compenser le coût par division.
  4. 300, car la température doit égaler la nouvelle augmentation de coût.
Afficher la réponseMasquer la réponse

Enregistre cette unité pour voir cette réponse.

Tu bloques sur ton propre exercice ? Aide aux Devoirs

Mots-Clés

84 Mots-Clés, chacun avec sa définition

A

A* pondéré
La version pondérée de A* utilise g + Wh avec un poids W supérieur à 1 pour donner plus d’importance à l’estimation restante, en échangeant l’optimalité exacte contre une borne sur le coût.
A* pondéré avec un poids de 2 et une heuristique admissible peut renvoyer un itinéraire optimal, même si sa garantie autorise le double du coût.
Abstraction
Une abstraction supprime des détails de la représentation d’un problème tout en préservant la possibilité de réaliser les solutions proposées.
Une abstraction d’itinéraire peut omettre la couleur de la voiture lorsque celle-ci ne change ni l’accès aux routes ni les coûts de trajet.
Algorithme génétique
Un algorithme génétique effectue une recherche avec une population de candidats encodés, en sélectionnant à plusieurs reprises des parents, en les combinant et en faisant subir des mutations à leurs descendants.
Un algorithme génétique peut encoder la ligne d’une dame par colonne sous forme d’une chaîne de huit positions.

B

Base de données de motifs
Une base de données de motifs stocke les coûts exacts de sous-problèmes choisis, calculés à l’avance pour qu’une recherche complète puisse obtenir des bornes inférieures par consultation.
Une base de données de motifs peut suivre les tuiles 1 à 4 tout en considérant les autres tuiles numérotées comme interchangeables.
Borne sur le coût
Une borne sur le coût limite le coût possible d’une solution renvoyée, sans exiger que ce coût soit égal à l’optimum ou à la borne elle-même.
La borne sur le coût de A* pondéré, W fois C*, permet tout de même à une exécution de trouver l’optimum exact.

C

Complétude
La complétude est la garantie qu’un algorithme trouve une solution dès qu’il en existe une, dans les conditions indiquées pour son espace de recherche.
La recherche en largeur d’abord est complète avec un branchement fini, car chaque couche de profondeur finie est atteinte à terme.
Complexité spatiale
La complexité spatiale d’une recherche décrit la quantité maximale d’information conservée, y compris les chemins en attente et les éventuels enregistrements des états atteints.
La complexité spatiale de la recherche en largeur d’abord devient coûteuse lorsqu’une large dernière couche conserve des millions de nœuds dans la frontière.
Coupure
Une coupure est un résultat de recherche à profondeur limitée qui indique que la limite a empêché de poursuivre l’exploration, laissant les possibilités plus profondes non examinées.
Une coupure à la profondeur 3 nécessite une limite plus grande si la recherche doit examiner les itinéraires exigeant quatre étapes.
Courbe de niveau du coût optimal
Une courbe de niveau du coût optimal marque une priorité égale au coût de la solution optimale, séparant les chemins de valeur de priorité inférieure des estimations plus coûteuses.
Avec la cohérence, A* développe les chemins sous la courbe de niveau du coût optimal et peut en développer certains qui lui sont égaux.
Coût d’évaluation de l’heuristique
Le coût d’évaluation de l’heuristique est le calcul nécessaire pour obtenir une estimation pour un état ; il contribue au temps total de recherche.
Un coût d’évaluation de l’heuristique plus élevé peut l’emporter sur une forte réduction du nombre d’états développés.
Coût d’un chemin
Un coût de chemin est la somme des coûts des actions le long d’un chemin ; il sert à comparer les itinéraires complets et partiels pendant la recherche.
Un itinéraire de trois routes dont les coûts d’action sont de 2, 3 et 4 km a un coût de chemin de 9 km.
Coût d’une action
Un coût d’action est le coût numérique d’une transition, par exemple la distance d’une route ou une unité pour un déplacement autorisé dans un taquin.
Le coût d’action d’une route peut être de 6 km même si emprunter cette route ne compte que pour une étape de recherche.
Coût restant optimal
Le coût restant optimal est le coût réel le plus faible pour atteindre un but depuis un état ; il fournit la valeur de référence pour l’admissibilité.
Une valeur heuristique de 9 surestime lorsque le coût restant optimal est de 7, même si la plupart des autres estimations sont précises.
Crête
Une crête est une forme ascendante du paysage dont la direction est difficile à suivre avec les déplacements locaux uniques disponibles.
Une crête peut bloquer une recherche par escalade lorsque chaque déplacement immédiat autorisé diminue le score malgré de meilleurs états plus loin.
Croisement
Un croisement combine des parties de deux encodages parentaux pour former des enfants, en préservant éventuellement des blocs utiles tout en créant de nouvelles combinaisons.
Un croisement après la position quatre joint les lignes des dames des quatre premières colonnes d’un parent à celles des quatre dernières colonnes de l’autre parent.

D

Déplacement latéral
Un déplacement latéral change l’état courant sans changer la valeur de sa fonction objectif, ce qui permet à une recherche locale de traverser une région plate.
Une politique de déplacements latéraux limités peut aider une recherche par escalade à traverser un épaulement sans errer indéfiniment.
Détection des cycles sur le chemin courant
La détection des cycles sur le chemin courant rejette un successeur déjà présent parmi les ancêtres du nœud courant, ce qui empêche un chemin de recherche de repasser par lui-même.
La détection des cycles sur le chemin courant bloque S–A–S mais permet à une autre branche d’atteindre A plus tard par un itinéraire différent.
Développement
Un développement applique toutes les actions autorisées à l’état d’un nœud et génère des nœuds enfants représentant les chemins prolongés obtenus.
Le développement d’une position dans un coin du taquin à 8 cases génère deux enfants, car la case vide dispose de deux déplacements.
Distance à vol d’oiseau
La distance à vol d’oiseau entre deux positions mesure leur séparation directe, sans tenir compte des restrictions d’itinéraire comme les routes ou les murs.
La distance à vol d’oiseau sous-estime la distance routière lorsqu’un voyageur doit suivre une route sinueuse autour d’un lac.
Distance de Manhattan
La distance de Manhattan additionne les différences horizontales et verticales en valeur absolue ; elle donne une distance sans obstacle pour des déplacements horizontaux et verticaux d’une case.
Pour une tuile située à deux lignes et trois colonnes de sa cible, la distance de Manhattan contribue pour cinq à l’estimation du taquin.
Dominance
La dominance est la relation selon laquelle une heuristique admissible est au moins aussi grande qu’une autre dans chaque état, ce qui en fait une borne inférieure toujours au moins aussi forte.
La distance de Manhattan domine le nombre de tuiles mal placées car chaque tuile déplacée nécessite au moins un déplacement.

É

État
Un état décrit une situation possible dans un problème, avec les informations nécessaires pour déterminer les actions autorisées et leurs résultats.
L’état d’un robot peut inclure à la fois son emplacement et le fait qu’il porte ou non la clé nécessaire pour ouvrir une porte.
État initial
L’état initial est la situation à partir de laquelle une recherche commence, avant toute action de la solution proposée.
Pour un taquin, la disposition des tuiles fournie est l’état initial, même si de nombreuses autres grilles sont possibles.

E

Efficacité optimale
L’efficacité optimale décrit l’avantage de A* en matière de développements nécessaires parmi les recherches comparables vers l’avant utilisant la même heuristique cohérente, hormis les cas d’ex æquo.
L’efficacité optimale ne signifie pas que A* a toujours le temps d’exécution le plus court lorsque le calcul de l’heuristique est coûteux.
Ensemble des états atteints
Un ensemble des états atteints enregistre les états générés et leurs meilleurs nœuds connus, y compris les états de la frontière et ceux déjà développés.
La recherche à coût uniforme consulte l’ensemble des états atteints lorsqu’un second itinéraire vers une ville peut améliorer son coût enregistré.
Escalade au premier choix
L’escalade au premier choix échantillonne les voisins individuellement et accepte la première amélioration, ce qui évite d’évaluer tout le voisinage.
L’escalade au premier choix est utile lorsqu’un candidat possède des milliers de petites modifications possibles à examiner.
Escalade stochastique
L’escalade stochastique sélectionne au hasard parmi les déplacements qui améliorent le résultat, en donnant éventuellement une plus grande probabilité de sélection aux améliorations plus importantes.
L’escalade stochastique peut choisir une plus petite amélioration même lorsqu’un voisin offrant une amélioration plus forte est disponible.
Espace d’états implicite
Un espace d’états implicite est défini par un état initial et des règles de génération des successeurs, au lieu d’une liste stockée de tous les états.
Le taquin à 15 cases utilise un espace d’états implicite, car énumérer toutes les grilles accessibles demanderait un stockage énorme.

F

Facteur de branchement
Le facteur de branchement est le nombre de successeurs disponibles à un nœud ; les bornes dans le pire des cas utilisent le plus grand de ces nombres.
Un facteur de branchement de 4 peut produire 16 chemins de profondeur deux avant que la détection des doublons ne supprime les recoupements.
Facteur de branchement effectif
Le facteur de branchement effectif est le facteur de branchement d’un arbre uniforme correspondant au nombre de nœuds mesuré pour une recherche à la profondeur de sa solution.
Un facteur de branchement effectif proche de 1 décrit une exploration bien plus étroite qu’une recherche non informée large.
File de priorité
Une file de priorité sélectionne une entrée selon la meilleure valeur de priorité, ce qui permet à une recherche fondée sur le coût de choisir le chemin en attente le moins coûteux.
Dans la recherche à coût uniforme, une file de priorité peut retirer un itinéraire nouvellement inséré de coût 3 avant un itinéraire plus ancien de coût 8.
File FIFO
Une file FIFO retire les entrées dans leur ordre d’arrivée, de sorte que les nouveaux nœuds de recherche attendent derrière les entrées plus anciennes déjà dans la frontière.
Une file FIFO place les nœuds nouvellement générés de profondeur deux derrière les nœuds restants de profondeur un dans la recherche en largeur d’abord.
Fonction d’adaptation
Une fonction d’adaptation attribue un score à un candidat d’un algorithme génétique afin que la sélection puisse favoriser les membres les plus performants de la population.
Une fonction d’adaptation qui compte les paires de dames ne s’attaquant pas attribue 28 à une grille résolue du problème des 8 dames.
Fonction d’évaluation
Une fonction d’évaluation attribue la priorité utilisée pour sélectionner les nœuds de recherche en attente, par exemple g pour la recherche à coût uniforme ou g + h pour A*.
Remplacer h par g + h comme fonction d’évaluation rend un détour glouton coûteux moins attrayant.
Fonction heuristique
Une fonction heuristique estime le coût restant minimal entre un état et un but, en fournissant des connaissances du domaine pour guider les priorités de recherche.
Une fonction heuristique peut utiliser les kilomètres à vol d’oiseau comme estimation par borne inférieure de la distance routière restante.
Fonction objectif
Une fonction objectif attribue une qualité numérique à un état candidat et définit si la recherche locale doit maximiser ou minimiser sa valeur.
Une fonction objectif qui compte les conflits entre dames est minimisée, tandis qu’une fonction qui compte les paires ne s’attaquant pas est maximisée.
Formulation à états complets
Une formulation à états complets fait de chaque état une réponse candidate complète, y compris les candidats qui contiennent encore des conflits ou sont de faible qualité.
Une formulation à états complets des 8 dames place les huit dames avant d’examiner tout déplacement qui améliore le résultat.
Frontière
La frontière est l’ensemble des nœuds générés qui attendent d’être sélectionnés pour être développés.
Après le développement du départ, la frontière contient ses successeurs nouvellement générés qui attendent leur tour.

H

Heuristique additive de motifs
Une heuristique additive de motifs additionne des coûts de sous-problèmes dont la répartition des coûts de déplacement évite de compter le même travail plus d’une fois.
Une heuristique additive de motifs peut combiner des motifs de tuiles disjoints lorsque chacun ne compte que les déplacements de ses propres tuiles.
Heuristique admissible
Une heuristique admissible est une estimation non négative qui ne dépasse jamais le coût restant minimal réel et qui vaut donc zéro pour un but.
Une heuristique admissible de valeur nulle convient à A* mais ne fournit aucun guidage supplémentaire par rapport à la recherche à coût uniforme.
Heuristique cohérente
Une heuristique cohérente vaut zéro pour les buts et ne dépasse jamais le coût d’une étape plus l’estimation du successeur, pour chaque action orientée.
Une heuristique cohérente permet à A* de fermer définitivement un état après avoir développé un chemin de coût minimal pour l’atteindre.
Heuristique des tuiles mal placées
L’heuristique des tuiles mal placées compte les tuiles numérotées d’un taquin qui ne sont pas sur leurs cases cibles, en excluant la case vide et sans tenir compte de la distance que chaque tuile doit parcourir.
L’heuristique des tuiles mal placées donne 1 pour une seule tuile numérotée déplacée, quelle que soit sa distance à sa cible.

I

IDA*
IDA* répète des recherches en profondeur d’abord bornées par le coût total estimé, en portant chaque seuil à la plus petite valeur élaguée au-dessus du précédent.
IDA* peut passer d’un seuil de coupure de 8 à un seuil de 11 lorsque 11 était la plus petite priorité exclue.
Inégalité triangulaire
L’inégalité triangulaire d’une heuristique de recherche borne l’estimation courante par le coût d’une étape plus l’estimation de l’état suivant.
Un arc de coût 2 allant d’une estimation de 7 à une estimation de 3 ne respecte pas l’inégalité triangulaire utilisée pour la cohérence.

M

Minorant strictement positif des coûts
Un minorant strictement positif des coûts est une valeur fixe supérieure à zéro en dessous de laquelle aucun coût d’action ne descend, ce qui limite le nombre d’étapes d’un chemin de coût borné.
Un minorant strictement positif des coûts de 2 signifie qu’un chemin coûtant au plus 10 peut contenir au maximum cinq actions.
Modèle de transition
Un modèle de transition précise l’état obtenu lorsqu’une action autorisée est appliquée à un état courant donné.
Dans un taquin, le modèle de transition échange la case vide avec la tuile voisine lorsque la case vide se déplace vers la gauche.
Mutation
Une mutation modifie une position individuelle dans l’encodage d’un candidat, ajoutant de la diversité au-delà des combinaisons héritées par croisement.
Une mutation peut modifier la ligne encodée d’une dame tout en laissant inchangées les entrées des sept autres colonnes.

N

Nœud de recherche
Un nœud de recherche représente un chemin particulier vers un état et stocke l’état, le parent, l’action qui y mène et le coût de chemin cumulé.
Deux nœuds de recherche peuvent aboutir à la même ville tout en enregistrant des itinéraires et des coûts différents.

O

Optimalité en coût
L’optimalité en coût est la garantie qu’une solution renvoyée possède le plus faible coût total de chemin parmi toutes les solutions du problème de recherche.
La recherche en largeur d’abord est optimale en coût pour des déplacements de coût unitaire, mais peut choisir un itinéraire coûteux lorsque les distances routières varient.
Optimum local
Un optimum local est un état dont les possibilités voisines n’offrent aucune meilleure valeur, même si un meilleur état peut exister ailleurs.
Une recherche par escalade peut s’arrêter à un optimum local comportant deux conflits entre dames alors qu’une disposition sans conflit existe.

P

Pile LIFO
Une pile LIFO retire d’abord l’entrée ajoutée le plus récemment, ce qui rend les enfants nouvellement générés disponibles avant les possibilités plus anciennes en attente.
Une pile LIFO fait continuer la recherche en profondeur d’abord dans la branche d’un enfant tandis que les autres enfants de la racine restent en attente.
Plateau
Un plateau est une région connexe de même valeur de la fonction objectif, qui peut ne posséder aucune sortie améliorante ou être un épaulement qui en possède une.
Des déplacements latéraux peuvent traverser un plateau, mais ils peuvent aussi revenir à des états de même valeur sans progresser.
Précalcul
Le précalcul effectue un travail réutilisable avant les recherches individuelles, en échangeant du temps et du stockage initiaux contre des estimations ultérieures plus rapides.
Le précalcul d’une base de données de motifs se justifie plus facilement lorsque de nombreux taquins partagent la même configuration cible.
Prédécesseur
Un prédécesseur d’un état est un état depuis lequel une action permet de l’atteindre ; il fournit les transitions inverses nécessaires à la recherche à rebours.
Sur une carte orientée, un prédécesseur de la ville Z possède une route vers Z, même si aucune route ne permet de revenir depuis Z.
Problème relaxé
Un problème relaxé supprime des restrictions sur les actions initiales tout en conservant les solutions initiales disponibles, ce qui fait de son optimum une borne inférieure fiable.
Ignorer les murs crée un problème relaxé pour un robot sur grille qui continue à se déplacer d’une case horizontale ou verticale à la fois.
Profondeur de la solution
La profondeur de la solution est le nombre d’actions de la racine à un nœud but ; la profondeur d’une solution de profondeur minimale est généralement notée d.
Une profondeur de solution de 3 décrit trois actions, que ces actions coûtent 3 ou 30 unités.

R

Recherche à coût uniforme
La recherche à coût uniforme développe le nœud dont le coût de chemin cumulé est le plus faible et renvoie un but lorsqu’il est retiré de la frontière.
La recherche à coût uniforme peut améliorer l’enregistrement d’une ville en attente après avoir découvert un itinéraire moins coûteux passant par une autre ville.
Recherche à profondeur limitée
La recherche à profondeur limitée est une exploration en profondeur d’abord qui reconnaît les buts mais ne développe pas les nœuds au-delà d’une limite de profondeur fixée.
Une recherche à profondeur limitée avec une limite de 4 ne peut pas atteindre un but qui exige au moins six actions depuis la racine.
Recherche A*
La recherche A* classe les chemins en attente selon le coût cumulé plus le coût restant estimé, et renvoie un but lorsque sa priorité est minimale dans la frontière.
La recherche A* peut laisser une branche secondaire coûteuse non développée lorsque son estimation la place au-dessus du coût du but optimal.
Recherche avec retour arrière
Une recherche avec retour arrière explore un successeur à la fois et revient aux choix précédents lorsqu’une branche se termine, en ne conservant qu’un chemin d’états.
La recherche avec retour arrière évite de stocker tous les frères simultanément lorsqu’un état possède de nombreux successeurs possibles.
Recherche bidirectionnelle
Une recherche bidirectionnelle explore vers l’avant depuis le départ et à rebours depuis un but, en cherchant une liaison entre les deux recherches.
La recherche bidirectionnelle peut économiser du travail sur une carte à double sens lorsque chaque recherche atteint environ la moitié de la profondeur de l’itinéraire.
Recherche dans un graphe
Une recherche dans un graphe mémorise les états atteints afin d’éviter les chemins redondants et de mettre à jour un état lorsqu’un meilleur chemin est découvert.
Sur une carte routière comportant de nombreux cycles, la recherche dans un graphe évite de développer les retours de coût égal vers une ville déjà atteinte.
Recherche en arbre
Une recherche en arbre explore les chemins sans table globale des états atteints, en vérifiant parfois uniquement les états répétés sur le chemin courant.
Une recherche en arbre peut revenir à une intersection par un nouvel itinéraire après l’abandon de l’itinéraire précédent.
Recherche en faisceau
Une recherche en faisceau ne conserve qu’un nombre limité de candidats prometteurs et écarte les autres, au risque de perdre une branche nécessaire à la solution.
Une recherche en faisceau de largeur 3 peut écarter le chemin classé quatrième même s’il se révèle ensuite être le seul itinéraire vers un but.
Recherche en largeur d’abord
La recherche en largeur d’abord développe d’abord le nœud en attente de plus faible profondeur et trouve une solution comportant le moins d’actions en explorant par ordre de profondeur.
La recherche en largeur d’abord trouve un itinéraire réseau comportant le moins de sauts lorsque chaque connexion compte pour une action.
Recherche en profondeur d’abord
La recherche en profondeur d’abord suit un chemin profond en attente avant d’essayer les autres possibilités, en utilisant une pile ou un retour arrière récursif pour contrôler la sélection.
La recherche en profondeur d’abord peut examiner une longue branche avant de revenir à un but situé à seulement deux étapes du départ.
Recherche gloutonne
La recherche gloutonne développe le nœud dont l’estimation du coût restant est la plus faible, sans tenir compte du coût de chemin déjà engagé.
La recherche gloutonne peut favoriser une destination qui semble proche mais n’est atteinte qu’après un détour coûteux.
Recherche locale
Une recherche locale améliore un ou quelques états candidats par de petites modifications, en abandonnant généralement la séquence de modifications qui les a produits.
La recherche locale peut améliorer un emploi du temps complet tout en ne conservant qu’un petit nombre d’emplois du temps candidats.
Recherche locale en faisceau
Une recherche locale en faisceau réunit les voisins de plusieurs états conservés et sélectionne un nouveau groupe dans cet ensemble, ce qui partage les progrès entre les candidats.
La recherche locale en faisceau peut conserver plusieurs enfants d’un parent prometteur et aucun d’un autre parent.
Recherche non informée
Une recherche non informée utilise les actions autorisées, les buts et les coûts du problème sans estimer le coût restant minimal jusqu’à un but.
La recherche à coût uniforme est une recherche non informée, même si elle ordonne soigneusement les chemins selon leurs coûts cumulés.
Recherche par approfondissement itératif
La recherche par approfondissement itératif répète une exploration à profondeur limitée avec des limites croissantes pour associer des solutions de profondeur minimale au stockage d’une recherche en profondeur.
La recherche par approfondissement itératif peut résoudre un taquin à coûts égaux sans conserver toute la frontière d’une recherche en largeur.
Recherche par escalade
La recherche par escalade sélectionne à plusieurs reprises un meilleur voisin et s’arrête lorsque sa règle ne permet aucune amélioration, sans planifier un itinéraire complet dans l’espace.
La recherche par escalade stricte s’arrête au coût 4 lorsque tous les voisins coûtent au moins 4, même si un état éloigné coûte zéro.
Recherche récursive du meilleur d’abord
La recherche récursive du meilleur d’abord utilise un stockage de la taille d’un chemin et des priorités enregistrées pour les autres branches afin de décider quand revenir en arrière et explorer à nouveau une autre branche.
La recherche récursive du meilleur d’abord peut régénérer un sous-arbre abandonné lorsque l’autre possibilité enregistrée devient l’itinéraire le plus prometteur.
Recuit simulé
Le recuit simulé échantillonne des déplacements locaux et accepte parfois un déplacement vers un état moins bon, avec une probabilité contrôlée par l’ampleur de la perte et la température.
Le recuit simulé peut quitter un minimum local en acceptant une augmentation temporaire du coût d’un emploi du temps.
Redémarrage aléatoire
Un redémarrage aléatoire commence une nouvelle exécution de recherche locale depuis un état nouvellement échantillonné, offrant une autre chance d’entrer dans une région de recherche utile.
Un redémarrage aléatoire peut permettre de quitter un mauvais bassin après l’arrêt d’une recherche par escalade stricte à un optimum local.
Réouverture
La réouverture remet un état développé dans la recherche après qu’un chemin moins coûteux l’a atteint, afin que cette amélioration influe sur les chemins ultérieurs.
A* peut avoir besoin de rouvrir un état lorsqu’une heuristique admissible mais non cohérente révèle tardivement un meilleur itinéraire.

S

Schéma de refroidissement
Un schéma de refroidissement précise comment la température du recuit évolue au cours du temps, en la réduisant généralement pour rendre moins fréquents les déplacements vers des états moins bons.
Un schéma de refroidissement géométrique multiplie la température par un facteur tel que 0,95 à chaque mise à jour.
SMA*
SMA* utilise la mémoire disponible pour la recherche, supprime les pires feuilles de la frontière lorsqu’elle est pleine et stocke leurs valeurs reportées pour une régénération ultérieure.
SMA* a besoin d’assez de place pour un chemin solution optimal afin de conserver sa garantie d’optimalité avec une heuristique admissible.
Solution de profondeur minimale
Une solution de profondeur minimale utilise le moins d’actions pour atteindre un but, sans nécessairement avoir la plus faible somme de coûts d’action lorsque ceux-ci diffèrent.
Une solution de profondeur minimale comportant deux longues routes peut coûter plus de kilomètres qu’un itinéraire de trois routes courtes.

T

Température
La température est le paramètre strictement positif qui contrôle la tolérance aux déplacements du recuit vers des états moins bons ; des valeurs plus élevées permettent davantage d’exploration.
Pour une augmentation de coût fixée, réduire la température de 10 à 1 rend l’acceptation beaucoup moins probable.
Test de but
Un test de but détermine si un état satisfait la condition requise, qui peut désigner un état particulier ou une propriété de plusieurs états.
Le test de but pour le placement des dames vérifie qu’aucune paire de dames ne s’attaque, ce qui permet plusieurs dispositions finales.
Test de but à l’extraction
Un test de but à l’extraction vérifie un nœud lorsqu’il est retiré de la frontière, ce qui préserve l’ordre de la file au moment de décider de l’arrêt.
Le test de but à l’extraction empêche la recherche à coût uniforme d’accepter un but direct coûteux avant l’exploration d’un détour moins coûteux.
Test de but à la génération
Un test de but à la génération vérifie un nœud lorsqu’il est généré, ce qui permet à la recherche en largeur d’abord de s’arrêter au premier but nouvellement généré après vérification de la racine.
Un test de but à la génération permet à la recherche en largeur d’abord de s’arrêter avant de développer le but final ou de générer une couche plus profonde.

V

Voisinage
Un voisinage est l’ensemble des états accessibles par une modification locale autorisée, ce qui détermine les possibilités immédiates qu’une recherche peut comparer.
Déplacer une dame dans sa colonne définit un voisinage de 56 états pour un candidat du problème des 8 dames.

À propos de cette unité

Par StudeliSignaler une erreur

Crée ton propre Matériel d'Étude

Transforme tes notes, diapos et documents en Guides d'Étude, Questions Pratiques, Flashcards et 6 autres outils.

Commencer