Geometric Centralities and Betweenness in Rust

Matteo Zagheno (987403)

Relatore: Prof. Sebastiano Vigna

Laurea Triennale in Informatica

Univeristà degli Studi di Milano

Centralità

Centralità

Assegnare ai nodi un valore che ne determina
l’importanza all’interno del grafo

WebGraph

  • Compressione e analisi in-memory di grafi di
    grandi dimensioni

  • Sviluppato originariamente in Java

  • Nuova versione in Rust

WebGraph

Rust

Rust

  • Compila in codice nativo

  • Astrazioni a zero costo (generici)

  • Mutabilità e immutabilità
  • Copy and move semantics (TODO: cambia nome)
  • No garbage collection

Centralità Geometriche

Centralità Geometriche

Centralità che dipendono solamente dal numero di nodi presenti a ogni distanza

Esempio: Closeness

C_C (x) = \frac{1}{\displaystyle \sum_{y \in G} d(y, x)}

Come calcolarle

Come calcolarle

Eseguiamo una BFS a partire dal nodo di cui vogliamo calcolare la centralità

Due approcci:

  • Sequenziale
  • Parallelo

Sequenziale

Betweenness

Betweenness

Quantifica quante volte un nodo si trova sul percorso più breve tra altri due nodi nel grafo

Betweenness

Quantifica quante volte un nodo si trova sul percorso più breve tra altri due nodi nel grafo

C_B (x) = \sum_{x \neq y \neq z} \frac{\sigma_{y z}(x)}{\sigma_{y z}}

Backend

Backend

 Swap model by changing docker ENV or API call

Backend

CURRENTLY USING yolov9

 Swap model by changing docker ENV or API call

Backend

CURRENTLY USING yolov9

Lightweight

 Swap model by changing docker ENV or API call

Backend

CURRENTLY USING yolov9

Lightweight

also tested on a PENTIUM DUAL CORE with 4GB RAM

 Swap model by changing docker ENV or API call

Deployment

Deployment

docker compose up -d

is all you need

Deployment

docker compose up -d

is all you need

but if you need more, documentation is in the repo

Live demo!

Thank You

Slides Tesi

By Matteo Zagheno

Slides Tesi

Gemetric Centralities and Betweenness in Rust: Tesi di laurea triennale Matteo Zagheno 987403

  • 7