[Algo] Abstraction de graphe et algo.

Abstraction de graphe et algo. [Algo] - Algo - Programmation

Marsh Posté le 29-09-2011 à 15:56:40    

Bonjour à tous merci de votre lecture.
Je voudrait utiliser un graphe pour stocker des réseau de neurones.
La dernière fois que j'ai fait ce programme, j'ai exploité les graph de Mats Weber's, que l'on trouve dans sa bibliothèque Ada Component Library, version 2.0. et j'ai stocké le graphe dans une liste.
 
J'aurais voulu cette fois stocker le graphe dans un graphe.
 
Mais j'ai aucune idée de comment spécifier un tel objet.
 
Je dois en suite pouvoir parcourir le graphe.
 
Si vous aviez un bon tuto sur les gestionnaire de données en graphe, ou si vous avez vous même une bonne spécification de graphe...
 
En français s'il vous plaît ?
Merci.


Message édité par Profil supprimé le 29-09-2011 à 16:45:10
Reply

Marsh Posté le 29-09-2011 à 15:56:40   

Reply

Marsh Posté le 25-11-2011 à 23:07:36    

un graphe dans un graphe ca veut dire un graphe dans une structure non ordonnée comme par exemple chaque noeud est libre dans la mémoire et les connexions se font en stockant une liste de pointeurs dans chaque noeuds ? en tout cas c'est le plus trivial j'imagine. il faut par contre faire attention de garder quelque part des poignées vers au moins un noeud de chaque composante connexe pour pouvoir désallouer le tout a la fin. ou alors utiliser un langage garbage collecté.
 
sinon tu peux penser autrement, et stocker dans plusieurs listes, par exemple une liste pour les noeuds, une liste pour les arretes qui peuvent se representer par des couples de deux indices de sommets, ou alors identifiants unique mais il faut alors faire des recherches pour trouver les noeuds correspondants. l'avantage étant que les indices peuvent alors changer pour permettre des redimensionnements par exemple.
 
je ne sais pas si ca t'aide vraiment :s


---------------
http://projets.6mablog.com/
Reply

Marsh Posté le 26-11-2011 à 01:07:24    

Merci pour ta réponse en tout les cas.
 
Ben là j'ai copié un code Ada :

Code :
  1. generic
  2.  
  3.   type Vertex_Name_Type is (<> );
  4.   with function Name(Element : Element_Type) return Vertex_Name_Type;
  5. package Graph.Undirected is
  6.  
  7.   type Undirected_Graph_Type is new Graph_Type with private;
  8.  
  9.   procedure Destroy
  10.     (Graph : in out Undirected_Graph_Type);
  11.  
  12.   function Number_Of_Vertex
  13.     (Graph : in Undirected_Graph_Type) return Natural;
  14.  
  15.   procedure Insert_Vertex
  16.     (Graph : in out Undirected_Graph_Type;
  17.      Element : in Element_Type);
  18.  
  19.   procedure Insert_Arc
  20.     (Graph : in out Undirected_Graph_Type;
  21.      Init : in Element_Type;
  22.      Term : in Element_Type;
  23.      Weight : in Integer);
  24.  
  25.   procedure Delete_Vertex
  26.     (Graph : in out Undirected_Graph_Type;
  27.      Element : in Element_Type);
  28.  
  29.   procedure Delete_Arc
  30.     (Graph : in out Undirected_Graph_Type;
  31.      Init : in Element_Type;
  32.      Term : in Element_Type);
  33.  
  34.   procedure Find_Vertex
  35.     (Graph : in Undirected_Graph_Type;
  36.      Element : in out Element_Type;
  37.      Match : out Boolean);
  38.  
  39.   function Weight
  40.     (Graph : in Undirected_Graph_Type;
  41.      Init : in Element_Type;
  42.      Term : in Element_Type) return Integer;
  43.  
  44.   procedure Find_Adjacent
  45.     (Graph : in Undirected_Graph_Type;
  46.      Element : in Element_Type;
  47.      Rank : in Natural;
  48.      Adjacent : out Element_Type;
  49.      Match : out Boolean);
  50. private
  51.  
  52.   type Matrix_Type is array (Vertex_Name_Type, Vertex_Name_Type) of Integer;
  53.   type Vertex_Type is
  54.      record
  55.         Element : Element_Type;
  56.         Found   : Boolean := False;
  57.      end record;
  58.   type Vector_Type is array (Vertex_Name_Type) of Vertex_Type;
  59.   type Undirected_Graph_Type is new Graph_Type with
  60.      record
  61.         N : Natural := 0;
  62.         Arcs : Matrix_Type;
  63.         Vertexies : Vector_Type;
  64.      end record;
  65. end Graph.Undirected;


 
Je doit encore implémenter l'algorithme de Prim pour le recouvrement à coût minimum.
C'est pour implémenter l'algorithme de colonie de fourmis.


Message édité par Profil supprimé le 26-11-2011 à 01:07:58
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed