Hola!
Aparentemente no se está usando el valor infinito en el código:
nodes = new RouterNode[NUM_NODES];
for(int i=0; i<NUM_NODES; i++){
HashMap<Integer,Integer> neighbors = new HashMap<Integer,Integer>();
for (int j=0; j<NUM_NODES; j++ ) {
if (connectcosts[i][j] != 0 && connectcosts[i][j] != INFINITY) {
neighbors.put(j,connectcosts[i][j]);
}
}
nodes[i] = new RouterNode(i, this, neighbors);
}
Cuando se imprime la tabla inicial dentro de RouterNode, que se pasa vía 'neighbors' en el constructor, no hay ni ceros ni infinito. Se debe al código que crea las instancias mostrado acá arriba, parte de RouterSimulator.java.
Hay que cambiar el código para utilizar infinito? O se asume que cero e infinito son lo mismo, a estos efectos?