System.out.println("Opposite of " + u.id() + " is " + v.id());
	private void relax(Vertex u) {		Set outEdges = u.outEdges();		Iterator it = outEdges.iterator();		while(it.hasNext()) {			Edge e = (Edge) it.next();			// for each vertex v adjacent to u and not in S			Vertex v = e.getOpposite(u);			System.out.println("Opposite of " + u.id() + " is " + v.id());			if(!S.contains(v) && estimate(v) > (estimate(u) + e.length())) {				float vd = estimate(u) + e.length();				// v gets a new estimate (not really an estimate any more)				v.getDatum(AlgConst.DATUM_DIJKSTRA_D).set(new Float(vd));				// u is the predecessor of v				v.getDatum(AlgConst.DATUM_DIJKSTRA_P).set(u);				// add v to Q				Q.add(v);			}		}	}