Vous êtes sur la page 1sur 2

Exo8:

Partie 1:
Pour résoudre le problème DRO2D de manière robuste pour un très grand espace, une idée serait d’utiliser un système à base de
deux agents cognitifs A et B qui s’entraident à trouver la solution optimale. Pour cela, l’agent A dispose d’un programme basé sur
la recherche taboue et l’agent B dispose d’un autre programme basé sur les algorithmes génétiques, tous deux pour la résolution
du problème DRO2D.
1) Proposer une architecture du système multi-agents.
Comme les deux agents doivent coopérer entre eux pour résoudre le problème, le modèle du tableau noir est le plus adéquat pour
l'interaction entre les deux agents. Le tableau noir qui permet de partager l'information en la lisant ou en l'imprimant, sert de
communication aux agents. Les agents affichent une solution sur le tableau à chaque fois qu'ils la jugent intéressante. De même, à
chaque fois qu'ils lisent une solution de bonne qualité, ils la considèrent dans leur programme pour atteindre une autre solution de
meilleure qualité. De cette manière, cette coopération accélérera la recherche de la solution optimale.

Une solution correspond au chemin entre la position (cellule) de départ et la cellule d'arrivée.
Un chemin est une suite de cellules (définies par leur coordonnées) telles que ces cellules forment un chemin continu et sans cellules
obstacles.
L'architecture peut être schématisée comme suit :

L'IHM comporte au minimum les configurations initiale et cible du problème, une fenêtre pour afficher la solution, un bouton
pour lancer la recherche donc le système multi-agent et un autre bouton pour réinitialiser la recherche.
2) Décrire dans le détail le comportement de chaque agent induit par son raisonnement puisqu'il s'agit d'agents cognitifs.
L'agent A :
Il initiale son action en lançant le programme de la recherche taboue avec une solution aléatoire.
Une fois le programme exécuté, il récupère la solution. Si cette dernière est meilleure que toutes les solutions calculées
précédemment, il l'affiche sur le tableau noir.
Si d'autre part, il trouve une solution sur le tableau noir qui soit la meilleure que toutes les précédentes, il relance l'exécution de
son programme en considérant comme solution initiale cette meilleure solution.
Si la solution calculée est optimale, il l'affiche et arrête le calcul.
3)
La base de connaissances de l'agent A s'écrit donc comme suit :
Variables :
NIJ= nouvelle instance du jeu ; valeurs= vrai ou faux
SInit=solution initiale ; valeurs= aléatoire ou autre solution du taquin
ERT= exécuter la recherche taboue ; valeurs= vrai ou faux
RTT= recherche taboue terminée ; valeurs= vrai ou faux
SO = solution optimale ; valeurs= vrai ou faux
AS = afficher solution ; valeurs= vrai ou faux
ST = solution trouvée ; valeurs= best ou autre
SA = solution affichée ; valeurs= best ou autre
Règles :
Règle1 : si NIJ = vrai alors NIJ = faux ; Sinit = aléatoire ; ERT = vrai
Règle2 : si (NIJ = faux) et (ERT = faux) alors attendre (NIJ = vrai)
Règle3 : (Si RTT = vrai) et (SO= vrai) alors (AS = vrai) et (ERT = faux)
Règle4 : (Si RTT = vrai) et (SO= faux) et (ST = best) alors (AS = vrai) et (Sinit=ST, ERT = vrai)
Règle5 : (Si RTT = vrai) et (SO= faux) et (ST ≠ best) et (SA = best) alors (Sinit=SA, ERT = vrai)
Faits :
NIJ = faux
NIJ sera mis à vrai lorsque le bouton du lancement ou du relancement du jeu est déclenché.
L'agent B :
L'agent B a un comportement similaire à celui de l'agent A à l'exception qu'il lance l'exécution de l'algorithme génétique au lieu de
la recherche taboue. Au démarrage, il exécute l’algorithme génétique avec une population initiale tirée aléatoirement. Ensuite il
ré-exécute l’AG en injectant la bonne solution dans la population initiale tirée aléatoirement.
Partie 2:

Une deuxième alternative pour résoudre le problème DRO2D serait d’utiliser un système d’agents réactifs tel que les colonies de
fourmis. Dans ce cas une fourmi qui est un agent réactif encapsule une solution du problème et cherche à l’améliorer en vue
d’atteindre la solution optimale
1) Existe-il une interaction entre les différents agents ? Comment se fait la communication ?
Une interaction réelle n'existe pas entre les fourmis puisque les fourmis n'ont aucune connaissance de leur environnement. Elles
perçoivent ce dernier grâce à la phéromone qui est déposée sur le sol. Une telle communication est dite stygmergétique.
2) Expliquer clairement le fonctionnement de la colonie de fourmis puis l'algorithme qui en découle.
Le processus de recherche de solutions d'un problème simule le comportement des fourmis réelles quand elles recherchent de la
nourriture. Une fourmi encapsule une solution possible du problème et la nourriture la solution de bonne qualité ou optimale.
a. une colonie de fourmis est engendrée aléatoirement
a1. chaque fourmi explore l'espace à la recherche de la nourriture
a2. si la fourmi trouve de la nourriture, elle dépose de la phéromone sur le sol en fonction de la quantité de la nourriture pour
attirer ses congénères vers cette nourriture
a3. Mise à jour de la phéromone déposée par toute la colonie en fonction de la meilleure nourriture trouvée par la colonie
b. mettre à jour la phéromone globale
c. répéter a. et b. jusqu'à récolter la meilleure nourriture possible
3) Avec quel type de langage peut-on programmer le système multi-agent ? Justifier votre réponse.
un langage orienté objet comme Java peut être utilisé pour implémenter le système de fourmis. L'objet suffit pour implémenter la
fourmi car la fourmi n'a pas de capacité de raisonnement pour utiliser par exemple Jade.
4) Donner une implémentation de votre système adapté au problème DRO2D tout en fournissant les détails importants.
L'algorithme donné en 2) est adapté au problème DRO2D comme suit :
- la modélisation du problème se fait comme pour les algorithmes génétiques : la solution et la fonction d'évaluation.
- la phéromone est représentée par un tableau indicé par les numéros des fourmis car chaque fourmi dépose de la phéromone.
- L'instruction a. est la création d'une population de solutions comme pour l'AG.
- L'instruction a1 peut être implémentée en faisant appel à une recherche locale.
- L'instruction a2 calcule la quantité de la phéromone déposée par la fourmi. Cette quantité est proportionnelle à la qualité de la
solution, donc à f(s) si s est la solution encapsulée dans la fourmi.
- l'instruction a3 calcule une estimation de la phéromone déposée par toutes les fourmis de la colonie.
- l'instruction b. calcule une estimation de la phéromone déposée par les fourmis des colonies précédentes
- l'instruction c. est une boucle sur le nombre d'itérations et tant que la solution optimale n'est pas trouvée.

Vous aimerez peut-être aussi