pyClique

pyClique

Comme si j’avais trop de temps libre. Voici un nouveau projet: pyClique. Un peu proof of concept.

L’objectif sera de générer des graphes très simples et faire quelques opérations dessus (pas uniquement de trouver des cliques 😉 ). La structure de données se base sur cet essai. Des opérations très basiques sont déjà possibles: afficher un graphe en liste d’adjacence, en matrice, XML et charger un graphe à partir d’un fichier XML. Également quelques opérations pour trouver un chemin avec le poids le plus faible. Cerise sur le gâteau: affichage 3D du graphe.

Mais là n’est pas la finalité. Le but va être d’utiliser cette structure (basée sur les dictionnaires) afin d’instancier des agents SPADE (les noeuds que l’on peut voir sur la vue 3D ci-dessus) qui pourront communiquer sur un réseau d’hôtes en sélectionnant la meilleure route avec l’algorithme de Dijkstra (pour commencer).
Deux noeuds seront connectés de manière directe (de préférence) ou indirecte (via proxy, serveur intermédiaire, etc.). Le poids associé à une arête pourra représenter la qualité de la connexion (type de connection, charge actuel de l’hôte, majoration du coût du à la présence d’intermédiares, etc.). Dans l’exemple ci-dessus si les noeuds sont les agents, pour communiquer avec G le message de F passera donc par A, C et B.

Voici donc l’idée générale (c’est-à-dire avant que d’autres idées viennent tout chambouler) du projet. Cela ne devrait pas prendre beaucoup de temps à implémenter avec la base existante. Il s’agira essentiellement d’écrire une classe noeud implémentant un agent SPADE avec quelques caractéristiques pour fixer le poids entre deux agents.

Un petit projet sympa qui pourra devenir intéressant avec de la chance.