GCP: algoritmi Backtracking e Gaschnig's Backjumping

Introduzione al GCP

Nell'elaborato viene trattato il problema di Graph Coloring nella versione decisionale. L'obiettivo è di determinare se esiste una k-colorazione dati in input un grafo non orientato G e k colori. Nel caso affermativo ritornerà comer risultato l'assegnamento corretto, altrimenti nessuna soluzione. E' stata inoltre prevista la possibilità di specificare domini diversi per ogni nodo, ovvero il problema si pone con k colori ma la cardinalità del dominio di un node può essere inferiore o ugale a k.

Algoritmi di risoluzione

Sono state analizzate ed implementate due strategie di ricerca:

Implementazione

L'elaborato è stato programmato in java e le principali classi sono:

Risultati

Tutti i risultati vengo riportati nel file Result.txt Inoltre nella directory data sono presenti varie istanze che possono essere utilizzate per testare il programma. Per sciegliere quali istanze eseguire basta semplicemente modificare il file main.java. C'è anche la possibilità di rappresentare tramite 2 grafi le statistiche generate. Nel fie Statistic.txt sono riassunte le statistiche campionate per numero di nodi dell'istanza. Viene inoltre generato automaticamente un m_file eseguibile con octave chiamato data.m che permette la creazione dei grafici rispettivamente salvati in backtracking.png e gaschnig.png

Link