Per concludere il mese di luglio, oggi parlerò di un altro programma che, probabilmente, servirà a un numero molto esiguo di persone, ma che è comunque interessante e degno di essere tenuto in considerazione per quelle rare occasioni in cui è necessario disegnare un grafo. Grafo è la traduzione, non particolarmente bella né faticosa, dell’inglese graph e indica uno schema di questo tipo:

In altri termini, un insieme di nodi (quelli a forma di ellisse) collegati tra loro da archi. Questo tipo di rappresentazione è utilizzato in diversi settori ed è dunque probabile che vi sia già capitato di vederne altri esemplari. Un pratico programma per disegnarli al computer è GraphViz ed è del suo funzionamento che parlerò oggi, per fornirne una breve presentazione.
GraphViz è un programma open source, disponibile in versioni per sistemi operativi Windows, Linux e Macintosh e scaricabile gratuitamente dal sito ufficiale. Il suo utilizzo non è forse dei più semplici, soprattutto perché è formato da vari componenti, utilizzabili in gran parte da linea di comando, oppure come librerie all’interno di programmi più ampi. Esiste però anche una interfaccia grafica piuttosto semplice, che permette di “disegnare” e creare grafi, ed è di quella che parlerò oggi, perché è anche la componente più utile per tutti i comuni mortali che vogliono soltanto disegnare un grafo e salvarlo come immagine, da inserire magari in tesi, tesine o qualsiasi altro tipo di elaborato. L’interfaccia grafica di GraphViz si chiama gvedit: in un ambiente Windows, dopo aver installato il programma la troverete nel menu Start. Una volta avviata, si aprirà una finestra di questo tipo:

digraph G {Direi che non è particolarmente complicato, ma adesso vedremo in dettaglio da cosa sia composto. La prima cosa da specificare, e da decidere, è se vogliamo un grafo diretto, oppure un grafo in cui non siano specificate le direzioni: per intenderci, in un grafo diretto gli archi hanno una freccia, che indica la direzione in cui devono essere percorsi (il grafo dell’esempio in alto), mentre in un grafo non diretto gli archi non hanno alcuna freccia e possono essere percorsi in entrambi i sensi. Per un grafo diretto, utilizzeremo il termine digraph; per un grafo non diretto, il termine graph. Come secondo elemento, possiamo specificare un nome per il nostro grafo: nell'esempio qui sopra, io ho utilizzato un semplice G, ma potete utilizzare un nome a vostra scelta o anche non metterlo. Dopo il nome, comincia il grafo vero e proprio ed è racchiuso tra due parentesi graffe, { e }: tutto ciò che si trova tra queste parentesi è la descrizione di cosa e come dovrà essere disegnato da GraphViz. Nella forma più semplice, utilizzando tutti gli attribuiti preimpostati sia come forma dei nodi, sia come colori, sia come font, tutto ciò che noi dobbiamo fare è scrivere un elenco dei vari nodi, indicando i collegamenti tra i vari nodi. In un grafo diretto, i collegamenti saranno espressi con un -> (digraph), mentre in un grafo non diretto saranno espressi con un -- (graph). Se vogliamo dunque dire che dal nodo a si arriva al nodo b, scriveremo a -> b; se vogliamo dire che a e b sono collegati, ma senza specificare il senso di percorrenza, scriveremo a -- b. Alla fine di ogni riga (che corrisponde a un collegamento nel grafo), è importante inserire sempre un punto e virgola. Diciamo dunque che vogliamo disegnare un grafo non diretto. Avviamo gvedit, clicchiamo sulla icona a forma di foglio per creare un nuovo file, e scriviamo i collegamenti che vogliamo. Un esempio potrebbe essere questo:
a -> b;
a -> c;
a -> d;
b -> e;
b -> f;
c -> g;
d -> h;
d -> i;
}
graph Prova {
a -- b;
a -- c;
a -- d;
b -- e;
c -- f;
c -- g;
g -- h ;
d -- h;
}
Adesso che abbiamo descritto il nostro grafo, dovremo anche provare a disegnarlo. Dal menu in alto, selezioniamo “Graph” e “Settings”, oppure clicchiamo sulla seconda icona da sinistra (quella con l’omino che corre e una specie di quadrato blu davanti alle gambe): si aprirà questa finestra

