3. Algorithmes de recherche dans les systèmes à agents
3.1. Recherche de la solution du problème

3.1.1. Notions préliminaires

Plusieurs recherches en IA se sont concentrées sur la résolution des problèmes. Parmi les diverses approches, les algorithmes de recherche de la solution fournissent des mécanismes de résolution généraux et efficaces.

Pour formaliser la résolution par recherche d`un problème on utilisera les notions suivantes: 

  • l`état initial ou le point de départ dans le processus de recherche
  • l`ensemble d`opérateurs (actions) qui permettent les transitions d`un état à l`autre
  • l`état solution – le but de la recherche

L`espace d`états constitue une abstraction du monde réel. L`espace d`états peut être  décrit par l`état initial et l`ensemble des opérateurs. Une suite d`états produits par l`application valide des opérateurs forme un chemin dans l`espace d`états. Il peut être observé qu`un chemin est décrit aussi par l`état initial et la séquence des opérateurs qui a produit la suite d`états.

Le processus de recherche se finalise par l`identification d`un chemin qui part de l`état initial et arrive dans l`état solution. Pour tester si un état quelconque est un état solution on a besoin d`une fonction appelée fonction test-but.

Il peut arriver que plusieurs chemins se terminent avec l'état solution. Il est utile dans ce cas d'avoir un critère de performance afin de décider quel est le meilleur chemin. Une telle fonction s'appelle fonction coût-chemin.

Une solution est un chemin menant à l`état solution. Plus concrètement, une solution sera une suite d'opérateurs qui étant appliqués successivement, en partant de l`état initial, conduit à l`état solution.

Exemple. On considère le problème des Tours de Hanoi avec trois tours. On demande de déplacer les disques situés sur la première tour sur une autre, de façon qu`un disque repose toujours sur un autre disque de taille supérieure ou sur une tour libre.

Figure 3.1.1. Le problème des Tours de Hanoi

Un état sera décrit par le triplet (A,B,C) où A,B,C sont les ensembles de disques situés sur les trois tours.  Si on considère un cas particulier avec deux disques sur la première tour l`état initial est E0 = ( {1,2},ุ,ุ ) où 1 et 2 représentent respectivement le disque de petite taille et le disque de taille supérieure. Parce qu`on n`a pas spécifié la tour où reposeront à la fin les disques il y a deux états solution : Ef2 = (ุ, {1,2}, ุ) et Ef3= (ุ, ุ, {1,2}).

L`ensemble d `opérateurs est M = { mij / i=1,3 , j=1,3}, où mij signifie le déplacement du plus petit disque situé au sommet de la tour i sur la tour j (voir la figure 3.1.1). Mais tous les opérateurs peuvent être appliqués à tous états. On observe que si on est en E0 seuls les opérateurs m12 et m13 peuvent être appliqués. Les opérateurs admettent des inverses. Si on applique l`opérateur m12 dans l`état E0, on exécute une transition vers E1 = ({2}, {1}, ุ), d`où si on applique m21 on revient de nouveau en E0.

L`espace d`états est décrit par la couple (E0, M). Les solutions optimales sont (E0, m13, m12, m32) pour atteindre Ef2 et (E0, m12, m13, m23) pour obtenir Ef3.

Question. Quelles sont les autres solutions possibles obtenues après l'application de 5 opérateurs (les longueurs des chemins sont 5) ?

Cliquer ici pour voir la réponse.

Pour pouvoir résoudre un problème, un algorithme de recherche doit réaliser une exploration de l`espace d`états d`une manière systématique et contrôlée.

On distingue deux classes d'algorithmes de recherche :

  1. algorithmes non-informés ou `aveugles` (brute force), qui réalisent une recherche exhaustive, sans utiliser aucune information concernant la structure de l`espace d`états pour optimiser la recherche;
  2. algorithmes informés ou heuristiques qui utilisent des sources d`information supplémentaires ces algorithmes parviennent ainsi à des performances meilleures.

Les critères suivants sont utilisés pour apprécier les performances des algorithmes de recherche

  • optimalité – c'est la caractéristique d`un algorithme de recherche qui trouve la meilleure solution (pour un problème qui en admet plusieurs)
  • complétude – si une solution existe l`algorithme garantit qu`elle sera trouvée
  • complexité en temps – estimation du temps nécessaire pour résoudre un problème,
  • complexité en espace – estimation de l`espace mémoire nécessaire à l`algorithme pour résoudre le problème.

Les deux complexités, en temps et en espace, sont exprimées comme des fonctions de la dimension du problème.

<< Section précédente Table de matières Section suivante >>

Politechnica University of Bucharest - 2002