Panoramica del Progetto
Concetti Chiave
- Ordinamento topologico
- Grafi aciclici diretti (DAG)
- Visita di grafi (DFS - Ricerca in profondità)
- Visualizzazione algoritmica
- Strutture dati (Grafi, Stack/Pila)
- Libreria grafica Turtle di Python
- Parsing di file
Motivazione
Durante i miei studi universitari, ho riscontrato alcune difficoltà nel seguire visivamente l'algoritmo di ordinamento topologico.
Le visualizzazioni che trovavo online erano troppo veloci o non mostravano lo stack e la lista di ordinamento nello stesso modo in cui venivano presentati a lezione.
Implementazione
Stavo già lavorando per uso personale a una piccola libreria di grafica vettoriale scritta con Turtle; l'ho usata come base per creare una visualizzazione che riflettesse esattamente il modello spiegato a lezione.
Risultati e Osservazioni
Il risultato è un programma interattivo che carica i grafi da file esterni, verifica che si tratti effettivamente di DAG (Grafi aciclici diretti) e anima l'ordinamento topologico passo dopo passo, mostrando sia lo stack che la lista di ordinamento in tempo reale.
Il basso refresh rate (frequenza di aggiornamento) è un limite noto di Turtle, che introduce un sovraccarico (overhead) per ogni operazione grafica (uno dei motivi per cui il progetto è tuttora in fase di sviluppo).
Possibili Sviluppi Futuri
- Sostituire Turtle con una libreria grafica più performante (come Pygame, Tkinter diretto o una soluzione web-based).
- Consentire agli utenti di creare i grafi direttamente tramite l'interfaccia, senza dipendere da un file .txt.
- Aggiungere altri algoritmi per i DAG (ad esempio, il calcolo del cammino minimo o del cammino critico).
- Fornire un controllo manuale sulla velocità dell'animazione.