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
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