<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?> 
<!DOCTYPE MAN SYSTEM "../../manrev.dtd">
<MAN>
  <LANGUAGE>fr</LANGUAGE>
  <TITLE>graph-list  </TITLE>
  <TYPE>Scilab type  </TYPE>
  <DATE>September 1996  </DATE>
  <SHORT_DESCRIPTION name="graph-list"> description d&apos;un graphe (sous forme de liste)  </SHORT_DESCRIPTION>
  <DESCRIPTION>
    <P>
      Un graphe dans Scilab est représenté par une liste typée.
    </P>
    <P>
      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&apos;é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 <VERB>[]</VERB>, 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 :
    </P>
    <VERBATIM><![CDATA[
      g=make_graph('min',1,1,[1],[1]);
      ]]></VERBATIM>
    <P>
      qui est le graphe le plus simple que l&apos;on puisse créer avec Metanet
      (il est orienté, possède un sommet et une boucle sur ce sommet).
    </P>
    <P>
      Le nom des élément dans la liste est très important car il est utilisé 
      pour y accéder. Par exemple si <VERB>g</VERB> est un graphe, pour obtenir
      le nom du graphe, il suffit de taper :
    </P>
    <VERBATIM><![CDATA[
      g('name')
      ]]></VERBATIM>
    <P>
      ou 
    </P>
    <VERBATIM><![CDATA[
      g.name
      ]]></VERBATIM>
    <P>
      et pour changer le nom du graphe en <VERB>&apos;toto&apos;</VERB> :
    </P>
    <VERBATIM><![CDATA[
      g('name')='toto'; 
      ]]></VERBATIM>
    <P>
      ou 
    </P>
    <VERBATIM><![CDATA[
      g.name='toto';
      ]]></VERBATIM>
    <P>
      On peut obtenir le nombre d&apos;arêtes et le nombre d&apos;arcs du graphe
      avec <VERB>edge_number(g)</VERB> et <VERB>arc_number(g)</VERB> (ces noms
      ne sont pas ceux des éléments de la liste). Pour raisons de compatibilité
      <VERB>node_number(g)</VERB> peut être utilisé à la place de
      <VERB>g(&apos;node_number&apos;)</VERB> ou <VERB>g.node_number</VERB>.
    </P>
    <P>
      Un graphe peut être syntaxiquement correct mais ne pas représenter un 
      graphe valide.
      Utiliser la fonction <VERB>check_graph</VERB> pour le vérifier.
      De plus, les noms des sommets doivent être différents. En fait, cela ne
      donne pas d&apos;erreur dans Scilab, mais un comportement étrange peut en
      résulter. Ceci n&apos;est pas vérifié par <VERB>check_graph</VERB> 
      car cela prendrait trop de temps. Cela est seulement vérifié lors de sa
      visualisation, sauvegarde ou chargement.
    </P>
    <P>
      Les éléments d&apos;un graphe sont les suivants :
    </P>
    <DESCRIPTION_INDENT>
      <DESCRIPTION_ITEM  label='name :'> 
	<SP> le nom du graphe. C&apos;est une chaîne de caractères (longueur &lt; 80).</SP>
      </DESCRIPTION_ITEM>

      <DESCRIPTION_ITEM  label='oriented :'> 
	<SP> flag donnant le type du graphe. Il est égal à 1 (graphe orienté) ou
	égal à 0 (graphe non-orienté).</SP>
      </DESCRIPTION_ITEM>
      <DESCRIPTION_ITEM  label='node_number :'> 
	<SP> nombre de sommets </SP>
      </DESCRIPTION_ITEM>
      <DESCRIPTION_ITEM  label='tail :'> 
	<SP> vecteur ligne des numéros des sommets origines</SP>
      </DESCRIPTION_ITEM>
      <DESCRIPTION_ITEM  label='head :'> 
	<SP> vecteur ligne des numéros des sommets extrémités </SP>
      </DESCRIPTION_ITEM>
      <DESCRIPTION_ITEM  label='node_name :'> 
	<SP> 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.</SP>
      </DESCRIPTION_ITEM>
      
      <DESCRIPTION_ITEM  label='node_type :'> 
	<SP> vecteur ligne des types des sommets. Le type est un entier entre 0 et
	2, 0 par défaut:</SP>
	<DESCRIPTION_INDENT>
	  <DESCRIPTION_ITEM  label='0'> 
	   <SP> = sommet normal</SP>
	  </DESCRIPTION_ITEM>
	  <DESCRIPTION_ITEM label='1' >
	    <SP>= puits</SP>
	  </DESCRIPTION_ITEM>
	  <DESCRIPTION_ITEM  label='2'> 
	    <SP>= source</SP>
	  </DESCRIPTION_ITEM>
	</DESCRIPTION_INDENT>
      </DESCRIPTION_ITEM>
      <DESCRIPTION_ITEM  label='node_x :'> 
	<SP> vecteur ligne des coordonnées x des sommets. Valeur par défaut calculée.</SP>
      </DESCRIPTION_ITEM>
      <DESCRIPTION_ITEM  label='node_y :'> 
	<SP> vecteur ligne des coordonnées y des sommets. Valeur par défaut calculée.</SP>
      </DESCRIPTION_ITEM>
      <DESCRIPTION_ITEM  label='node_color :'> 
	<SP> vecteur ligne des couleurs des sommets, des entiers correspondants a la
	table de couleur courante.</SP>
      </DESCRIPTION_ITEM>

      <DESCRIPTION_ITEM  label='node_diam :'> 
	<SP> vecteur ligne des diamètres des sommets en pixels, un sommet est
	dessiné sous forme d&apos;un cercle. Par défaut, valeur de l&apos;élément
	<VERB>default_node_diam</VERB>.</SP>
      </DESCRIPTION_ITEM>
      <DESCRIPTION_ITEM  label='node_border :'> 
	<SP> vecteur ligne de l&apos;épaisseur des bords des sommets. un sommet est
	dessiné sous forme d&apos;un cercle, par défaut, valeur de l&apos;élément
	<VERB>default_node_border</VERB>.</SP>
      </DESCRIPTION_ITEM>
      <DESCRIPTION_ITEM  label='node_font_size :'> 
	<SP> 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&apos;élément  <VERB>default_font_size</VERB>.</SP>
      </DESCRIPTION_ITEM>
      <DESCRIPTION_ITEM  label='node_demand :'> 
	<SP> vecteur ligne des demandes des sommets,  0 par défaut;</SP>
      </DESCRIPTION_ITEM>
      <DESCRIPTION_ITEM  label='edge_name :'> 
	<SP> vecteur ligne des noms d&apos;arêtes. Il est souhaitable que les noms
	des arêtes soient différents, mais c&apos;est n&apos;est pas
	obligatoire. Par défaut les noms des arêtes sont leur numéros.</SP>
      </DESCRIPTION_ITEM>
      <DESCRIPTION_ITEM  label='edge_color:'> 
	<SP> vecteur ligne des couleurs des arêtes. des entiers correspondants a la
	table de couleur courante.</SP>
      </DESCRIPTION_ITEM>
      <DESCRIPTION_ITEM  label='edge_width:'> 
	<SP> vecteur ligne des épaisseurs des arêtes en pixels, par défaut, valeur
	de l&apos;élément <VERB>default_edge_width</VERB>.</SP>
      </DESCRIPTION_ITEM>
      <DESCRIPTION_ITEM  label='edge_hi_width :'> 
	<SP> vecteur ligne des épaisseurs des arêtes mises en évidence (en pixels),
	par défaut, valeur de l&apos;élément <VERB>default_edge_hi_width</VERB>.</SP>
      </DESCRIPTION_ITEM>
      <DESCRIPTION_ITEM  label='edge_font_size:'> 
	<SP>  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&apos;élément <VERB>default_font_size</VERB> .</SP>
      </DESCRIPTION_ITEM>
      <DESCRIPTION_ITEM  label='edge_length :'> 
	<SP> vecteur ligne des longueurs des arêtes, 0 par défaut.</SP>
      </DESCRIPTION_ITEM>
      <DESCRIPTION_ITEM  label='edge_cost :'> 
	<SP> vecteur ligne des coûts des arêtes, 0 par défaut.</SP>
      </DESCRIPTION_ITEM>
      <DESCRIPTION_ITEM  label='edge_min_cap :'> 
	<SP> vecteur ligne des capacités minimum des arêtes, 0 par défaut.</SP>
      </DESCRIPTION_ITEM>
      <DESCRIPTION_ITEM  label='edge_max_cap :'> 
	<SP> vecteur ligne des capacités maximum des arêtes, 0 par défaut.</SP>
      </DESCRIPTION_ITEM>
      <DESCRIPTION_ITEM  label='edge_q_weight :'> 
	<SP> vecteur ligne des poids quadratiques des arêtes, 0 par défaut.</SP>
      </DESCRIPTION_ITEM>
      <DESCRIPTION_ITEM  label='edge_q_orig :'> 
	<SP> vecteur ligne des origines quadratiques des arêtes, 0 par défaut.</SP>
      </DESCRIPTION_ITEM>
      <DESCRIPTION_ITEM  label='edge_weight :'> 
	<SP> vecteur ligne des poids des arêtes,  0 par défaut.</SP>
      </DESCRIPTION_ITEM>
      <DESCRIPTION_ITEM  label='default_node_diam :'> 
	<SP> diamètre par défaut des sommets du graphe, 20 pixels par défaut.</SP>
      </DESCRIPTION_ITEM>
      <DESCRIPTION_ITEM  label='default_node_border :'> 
	<SP> épaisseur du bord des sommets, 2 pixels par défaut.</SP>
      </DESCRIPTION_ITEM>
      <DESCRIPTION_ITEM  label='default_edge_width :'> 
	<SP> épaisseur par défaut des arêtes du graphe,1 pixel par défaut.</SP>
      </DESCRIPTION_ITEM>
      <DESCRIPTION_ITEM  label='default_edge_hi_width :'> 
	<SP> taille par défaut des arêtes mises en évidence (en pixels),  3 pixels
	par défaut.</SP>
      </DESCRIPTION_ITEM>
      <DESCRIPTION_ITEM  label='default_font_size :'> 
	<SP> taille par défaut de la police utilisée pour afficher le nom des
	sommets  et arêtes.  12 par défaut</SP>
      </DESCRIPTION_ITEM>
      <DESCRIPTION_ITEM  label='node_label :'> 
	<SP> vecteur ligne des noms des sommets </SP>
      </DESCRIPTION_ITEM>
      <DESCRIPTION_ITEM  label='edge_label :'> 
	<SP> vecteur ligne des noms des arêtes</SP>
      </DESCRIPTION_ITEM>
    </DESCRIPTION_INDENT>
  </DESCRIPTION>
  <EXAMPLE><![CDATA[
    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)
    ]]></EXAMPLE>
  <SEE_ALSO>
     <SEE_ALSO_ITEM> <LINK>edit_graph</LINK> </SEE_ALSO_ITEM> 
    <SEE_ALSO_ITEM> <LINK>arc_number</LINK> </SEE_ALSO_ITEM> 
    <SEE_ALSO_ITEM> <LINK>check_graph</LINK> </SEE_ALSO_ITEM> 
    <SEE_ALSO_ITEM> <LINK>edge_number</LINK> </SEE_ALSO_ITEM> 
    <SEE_ALSO_ITEM> <LINK>glist</LINK> </SEE_ALSO_ITEM>  
    <SEE_ALSO_ITEM> <LINK>make_graph</LINK> </SEE_ALSO_ITEM> 
    <SEE_ALSO_ITEM> <LINK>node_number</LINK> </SEE_ALSO_ITEM>
  </SEE_ALSO>
</MAN>
