Scilab type
graph-list - description d'un graphe (sous forme de liste)
Description
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. 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 :
-
name :
le nom du graphe. C'est une chaîne de caractères (longueur < 80).
-
oriented :
flag donnant le type du graphe. Il est égal à 1 (graphe orienté) ou
égal à 0 (graphe non-orienté).
-
node_number :
nombre de sommets
-
tail :
vecteur ligne des numéros des sommets origines
-
head :
vecteur ligne des numéros des sommets extrémités
-
node_name :
vecteur ligne des noms des sommets. Les noms des sommets doivent être
différents. Par défaut les noms des sommets sont égaux à leurs numéros.
-
node_type :
vecteur ligne des types des sommets. Le type est un entier entre 0 et
2, 0 par défaut:
-
0
= sommet normal
-
1
= puits
-
2
= source
-
node_x :
vecteur ligne des coordonnées x des sommets. Valeur par défaut calculée.
-
node_y :
vecteur ligne des coordonnées y des sommets. Valeur par défaut calculée.
-
node_color :
vecteur ligne des couleurs des sommets, des entiers correspondants a la
table de couleur courante.
-
node_diam :
vecteur ligne des diamètres des sommets en pixels, un sommet est
dessiné sous forme d'un cercle. Par défaut, valeur de l'élément
default_node_diam
.
-
node_border :
vecteur ligne de l'épaisseur des bords des sommets. un sommet est
dessiné sous forme d'un cercle, par défaut, valeur de l'élément
default_node_border
.
-
node_font_size :
vecteur ligne de la taille de la police utilisée pour afficher le nom
du sommet. Les tailles possibles sont: 8, 10, 12, 14, 18 ou 24. Par
défaut, valeur de l'élément
default_font_size
.
-
node_demand :
vecteur ligne des demandes des sommets, 0 par défaut;
-
edge_name :
vecteur ligne des noms d'arêtes. Il est souhaitable que les noms
des arêtes soient différents, mais c'est n'est pas
obligatoire. Par défaut les noms des arêtes sont leur numéros.
-
edge_color:
vecteur ligne des couleurs des arêtes. des entiers correspondants a la
table de couleur courante.
-
edge_width:
vecteur ligne des épaisseurs des arêtes en pixels, par défaut, valeur
de l'élément
default_edge_width
.
-
edge_hi_width :
vecteur ligne des épaisseurs des arêtes mises en évidence (en pixels),
par défaut, valeur de l'élément
default_edge_hi_width
.
-
edge_font_size:
vecteur ligne de la taille de la police utilisée pour afficher le nom
des arêtes. Les tailles possibles sont:8, 10, 12, 14, 18 ou 24. Par
défaut, valeur de l'élément
default_font_size
.
-
edge_length :
vecteur ligne des longueurs des arêtes, 0 par défaut.
-
edge_cost :
vecteur ligne des coûts des arêtes, 0 par défaut.
-
edge_min_cap :
vecteur ligne des capacités minimum des arêtes, 0 par défaut.
-
edge_max_cap :
vecteur ligne des capacités maximum des arêtes, 0 par défaut.
-
edge_q_weight :
vecteur ligne des poids quadratiques des arêtes, 0 par défaut.
-
edge_q_orig :
vecteur ligne des origines quadratiques des arêtes, 0 par défaut.
-
edge_weight :
vecteur ligne des poids des arêtes, 0 par défaut.
-
default_node_diam :
diamètre par défaut des sommets du graphe, 20 pixels par défaut.
-
default_node_border :
épaisseur du bord des sommets, 2 pixels par défaut.
-
default_edge_width :
épaisseur par défaut des arêtes du graphe,1 pixel par défaut.
-
default_edge_hi_width :
taille par défaut des arêtes mises en évidence (en pixels), 3 pixels
par défaut.
-
default_font_size :
taille par défaut de la police utilisée pour afficher le nom des
sommets et arêtes. 12 par défaut
-
node_label :
vecteur ligne des noms des sommets
-
edge_label :
vecteur ligne des noms des arêtes
Examples
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)
See Also
edit_graph
,
arc_number
,
check_graph
,
edge_number
,
glist
,
make_graph
,
node_number
,