Utiliser Graphviz

Graphviz est un logiciel qui permet de dessiner des graphes complexes en utilisant des algorithmes de haut niveau. Il est disponible ici .

On va représenter avec Graphviz un morceau de graphe qui illustre la suite de Syracuse. A chaque nombre entier strictement positif n ,on fait correspondre n/2 si n est pair et 3n+1 si n est impair.

Le plus petit naturel absent de ce tableau est 27; le placer dans le tableau aurait nécessité nettement plus de place…

Le résultat

Le code

digraph G{
	
graph[URL="syracuse",bgcolor=cornsilk,pad=1];
node[fontname="Utopia bold"];	

/*cycle*/
node[style="filled,rounded", fillcolor=darkslategray,fontcolor=white];
{rank=same ; 1;2;4}
1 -> 4-> 2 -> 1;

/*nombres impairs autres*/
node[style="filled,rounded",fillcolor=lightseagreen,color=midnightblue,
fontcolor=black];

3 5 7 9 11 13 15 17 19 21 23 25 29 33 35 37 39  43 45 49  51 53 
57 59 61 65 67 69 75 77 85 89 101 113

/*le reste*/
node[style="filled,rounded",fillcolor=aquamarine,color=midnightblue,
fontcolor=black];
/*partie faite avec un tableur*/
3 -> 10;
5 -> 16;
6 -> 3;
7 -> 22;
8 -> 4;
9 -> 28;
10 -> 5;
/*et caetera*/

/*chaînes*/
59 ->178 ->89 ->268 ->134 ->67 ->202 ->101 ->304 ->152 ->76 ;
 
78 ->39 ->118 ->59 ;
 
}

Les commandes sont assez lisibles.

la compilation

Une fois le code saisi, on sauvegarde le fichier avec une extension .dot, ici par exemple j'ai appelé le fichier syracuse.dot. Il reste à le compiler en ligne de commande… se rendre dans le répertoire contenant le fichier puis invoquer la commande dot ou neato

cd 00calque/
dot -Tsvg -o syr.svg syracuse.dot

Ici, je me suis rendu dans le répertoire 00calque (chemin de type Linux) puis j'ai compilé le fichier syracuse.dot avec l'option Tsvg qui donne un rendu au format svg et le fichier obtenu est syr.svg (-o pour output ).

Une fois le fichier syr.svg , le l'ai converti en .png avec Gimp.

La commande neato

Avec la commande neato -Tsvg -o syro.svg syracuse.dot j'ai obtenu la représentation suivante :



fait le 17 juillet 2008