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…
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.
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.dotIci, 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.
Avec la commande neato -Tsvg -o syro.svg syracuse.dot
j'ai obtenu la représentation suivante :