protected Object _compute() {
DirectedGraph graph = (DirectedGraph) graph();
ArrayList queue = new ArrayList();
//HashMap color = new HashMap();
double[] distance = new double[graph.nodeCount()];
_predecessor = new int[graph.nodeCount()];
for (Iterator nodes = graph.nodes().iterator(); nodes.hasNext();) {
Node node = (Node) nodes.next();