Progetto di ASD, anno accademico 2017/18
Questo progetto sostituisce l'esame scritto del corso o il seminario, e non necessita la presentazione del mini-progetto. Quest'anno sono disponibili due progetti su grafi, di cui ne va scelto uno.
In entrambi i progetti, ciascun grafo di input è memorizzato in un file testuale nel seguente formato: la prima linea contiene due interi separati da uno spazio: il numero N di vertici e il numero M degli archi del grafo; le M linee successive contengono ciascuna una coppia di interi I e J separati da uno spazio, a indicare che l'arco (I,J) appartiene al grafo (ignorare i self-loop del tipo I I).
Progetto 1
Questo progetto utilizza la rete NetInf come grafo (preso da http://snap.stanford.edu/netinf/), i cui nodi rappresentano siti web di informazione e gli archi sono orientati e indicano chi ha copiato chi. Inoltre sono disponibili i ranking di tali siti, forniti dal servizio Alexa di Amazon (https://www.alexa.com). Utilizzando queste informazioni, occorre definire una nozione di similitudine tra i nodi del grafo, utilizzando soltanto la struttura del grafo (nodi e archi) e il ranking dei nodi. Per verificare se il risultato ottenuto ha senso, si può successivamente guardare il nome del sito e l'eventuale contenuto sul web.
- Dati da scaricare: netinf.zip
- Lettura consigliata (scaricabile dal dominio unipi.it): https://www.sciencedirect.com/science/article/pii/S037843711000991X
Progetto 2
Questo progetto utilizza reti sociali come grafi in input (presi da http://snap.stanford.edu/). Lo scopo è quello di definire una nozione di comunità (ossia un grafo coeso, in cui i nodi sono più collegati tra di loro che rispetto agli altri). Esempi noti sono le clique, k-plessi, quasi-clique, k-core, ecc. Definizioni originali introdotte nel progetto sono apprezzate. Scelta una nozione, occorre progettare e implementare un algoritmo efficiente per identificare tali comunità all'interno della rete.
- Dati da scaricare: http://snap.stanford.edu/data/
Conversione di formati
Per convertire il formato testuale dei grafi (essendocene diversi), è possibile usare il seguente comando
gutil convert input.nde output.oly
È possibile scaricarsi l'eseguibile (compilato per Linux e Mac OS X) oppure compilarsi il sorgente (da github dove c'è anche il readme):