mercoledì 18 luglio 2012

Parallel Road Rage (progetto maturità)

Con un certo ritardo (tra lo studio per l'esame e la soddisfazione per il buon risultato ottenuto) ho deciso di parlare del mio progetto di maturità.

Quale progetto? Parallel Road Rage
Il progetto, i cui sorgenti sono disponibili sul mio account GitHub, è un editor di grafi che permette di porre dei vincoli sul grafo in esame e di integrare risolutori per trovare soluzioni efficaci al problema che si vuole risolvere. I due risolutori integrati (backtracking ed algoritmi genetici) sono stati utilizzati per risolvere il problema del commesso viaggiatore (noto anche come TSP).


Difficoltà
E' stato un progetto decisamente complesso da portare avanti, a causa di alcuni errori di progettazione che hanno reso difficile poi lo sviluppo del progetto.
Altre difficoltà sono sorte nella scrittura del codice parallelo, tra cui le prestazioni pietose del risolutore backtracking dovute a problemi di sincronizzazione (riscriverlo daccapo sarebbe una buona idea) e le enormi difficoltà nel debug, e ho avuto diversi problemi nella gestione di errori dovuti ad una errata gestione dei puntatori.

Il futuro del progetto
Ho diverse idee sull'avvenire del progetto, dal riscriverlo totalmente a fare una revisione passo passo per risolvere tutti i problemi, renderlo facilmente adattabile e finalmente implementare algoritmi efficienti.

Se ti interessa modificare il progetto, migliorarlo o semplicemente capirne di più, puoi consultare la documentazione su GDocs e la presentazione su min.us [pdf]
Stay tuned!