PDA

View Full Version : [JAVA] Costruire matrice adiacenza chiusura transitiva


cerza
01-06-2016, 16:51
Ciao,
dovrei implementare in java la chiusura transitiva come da pseudo codice seguente:
http://i65.tinypic.com/20ixtlv.png

ma non mi è chiaro come creare le varie matrici, o meglio ho provato ad implementare il tutto seguendo lo pseudocodice e creando una mappa con tutte le n matrici, ma ad un certo punto si verifica una InvocationTargetException.Dove sbaglio?

Di seguito una parte del codice implementato.
public int[][] transitive(Graph g) {

int numberOfState =g.getAllStates().size();

for (int index = 0; index <= numberOfState; index++) {
matrix.put(index, new int[numberOfState][numberOfState]);
}

int[][] firstMatrix = matrix.get(0);

for (int i = 1; i <= numberOfState; i++) {
State state = g.getAllStates().get(i - 1);

for (int j = 1; j <= numberOfState; j++) {
if (!state.getEpsList().isEmpty()) {

for (Transition t : state.getEpsList()) {
if (t.getToState().getNumber() == j - 1) {
firstMatrix[i][j] = 1;
}
}
}
}
}
return matrix.get(0);
}

Inoltre qualcuno sa dirmi perchè i vari for hanno l'inizializzazione dell'indice da 1?
Grazie a tutti