graph-list - description d'un graphe (sous forme de liste)
Un graphe dans Scilab est représenté par une liste typée.
Voir ci-dessous la description complète de cette liste. Chaque élément est décrit par une ou plusieurs lignes. La première ligne donne le nom de l'élément et sa définition. Des informations supplémentaires, telles que les valeurs par défaut des éléments pouvant en avoir une, sont données sur les autres lignes. En fait, seul les 5 premiers éléments doivent avoir une valeur, les autres pouvant être définis comme un vecteur vide [], la valeur par défaut étant utilisée par les fonctions ou la fenêtre de Metanet. Par exemple, il est possible de définir un graphe par :
g=make_graph('min',1,1,[1],[1]);
qui est le graphe le plus simple que l'on puisse créer avec Metanet (il est orienté, possède un sommet et une boucle sur ce sommet).
Le nom des élément dans la liste est très important car il est utilisé pour y accéder. Par exemple si g est un graphe, pour obtenir le nom du graphe, il suffit de taper :
g('name')
ou
g.name
et pour changer le nom du graphe en 'toto' :
g('name')='toto';
ou
g.name='toto';
On peut obtenir le nombre d'arêtes et le nombre d'arcs du graphe avec edge_number(g) et arc_number(g) (ces noms ne sont pas ceux des éléments de la liste). Pour raisons de compatibilité node_number(g) peut être utilisé à la place de g('node_number') ou g.node_number.
Un graphe peut être syntaxiquement correct mais ne pas représenter un graphe valide. Utiliser la fonction check_graph pour le vérifier. De plus, les noms des sommets doivent être différents. En fait, cela ne donne pas d'erreur dans Scilab, mais un comportement étrange peut en résulter dans la fenêtre Metanet. Ceci n'est pas vérifié par check_graph car cela prendrait trop de temps. Cela est seulement vérifié lors de sa visualisation, sauvegarde ou chargement.
Les éléments d'un graphe sont les suivants :
g=load_graph(SCI+'/demos/metanet/mesh100'); g('node_color')=int(rand(1:g('node_number'))*16); g('edge_color')=int(rand(1:edge_number(g))*16); show_graph(g)