protected int nonNeighborCandidateCount(Node node) { int count = 0; String nodeId = node.getId(); for (T c : candidates) if (c.getEdgeBetween(nodeId) == null) count++; return count; }
protected int nonNeighborCandidateCount(Node node) { int count = 0; String nodeId = node.getId(); for (T c : candidates) if (c.getEdgeBetween(nodeId) == null) count++; return count; }
public <T extends Edge> T getEdgeBetween(Node n) { T e; elementLock.lock(); e = sg.getEdge(wrappedElement.getEdgeBetween(n).getIndex()); elementLock.unlock(); return e; }
public <T extends Edge> T getEdgeBetween(int index) { T e; elementLock.lock(); e = sg.getEdge(wrappedElement.getEdgeBetween(index).getIndex()); elementLock.unlock(); return e; }
public <T extends Edge> T getEdgeBetween(int index) { T e; elementLock.lock(); e = sg.getEdge(wrappedElement.getEdgeBetween(index).getIndex()); elementLock.unlock(); return e; }
public <T extends Edge> T getEdgeBetween(String id) { T e; elementLock.lock(); e = sg.getEdge(wrappedElement.getEdgeBetween(id).getIndex()); elementLock.unlock(); return e; }
public <T extends Edge> T getEdgeBetween(String id) { T e; elementLock.lock(); e = sg.getEdge(wrappedElement.getEdgeBetween(id).getIndex()); elementLock.unlock(); return e; }
public <T extends Edge> T getEdgeBetween(Node n) { T e; elementLock.lock(); e = sg.getEdge(wrappedElement.getEdgeBetween(n).getIndex()); elementLock.unlock(); return e; }
protected double c(State x, State y) { Edge e = x.node.getEdgeBetween(y.node); if (e != null) { if (e.hasNumber(COST_ATTRIBUTE)) return e.getNumber(COST_ATTRIBUTE); else return defaultEdgeWeight; } return Double.NaN; }
protected void modifyCost(State x, State y, double cval) { Edge e = x.node.getEdgeBetween(y.node); if (e != null) e.setAttribute(COST_ATTRIBUTE, cval); if (x.b == y) x.b = null; if (x.t == Tag.CLOSED) { x.p = x.h; insert(x); } }
protected void modifyCost(State x, State y, double cval) { Edge e = x.node.getEdgeBetween(y.node); if (e != null) e.setAttribute(COST_ATTRIBUTE, cval); if (x.b == y) x.b = null; if (x.t == Tag.CLOSED) { x.p = x.h; insert(x); } }
protected double c(State x, State y) { Edge e = x.node.getEdgeBetween(y.node); if (e != null) { if (e.hasNumber(COST_ATTRIBUTE)) return e.getNumber(COST_ATTRIBUTE); else return defaultEdgeWeight; } return Double.NaN; }
public void setCapacity(Node u, Node v, double capacity) { Edge e = u.getEdgeBetween(v); if (e.getSourceNode() == u) capacities[e.getIndex()] = capacity; else capacities[e.getIndex() + n] = capacity; }
public double getFlow(Node u, Node v) { Edge e = u.getEdgeBetween(v); if (e.getSourceNode() == u) return flows[e.getIndex()]; else return flows[e.getIndex() + n]; }
public void setFlow(Node u, Node v, double flow) { Edge e = u.getEdgeBetween(v); if (e.getSourceNode() == u) flows[e.getIndex()] = flow; else flows[e.getIndex() + n] = flow; }
public double getFlow(Node u, Node v) { Edge e = u.getEdgeBetween(v); if (e.getSourceNode() == u) return flows[e.getIndex()]; else return flows[e.getIndex() + n]; }
public void setFlow(Node u, Node v, double flow) { Edge e = u.getEdgeBetween(v); if (e.getSourceNode() == u) flows[e.getIndex()] = flow; else flows[e.getIndex() + n] = flow; }
public void setCapacity(Node u, Node v, double capacity) { Edge e = u.getEdgeBetween(v); if (e.getSourceNode() == u) capacities[e.getIndex()] = capacity; else capacities[e.getIndex() + n] = capacity; }
public double getCapacity(Node u, Node v) { Edge e = u.getEdgeBetween(v); if (e == null) System.err.printf("no edge between %s and %s\n", u.getId(), v .getId()); if (e.getSourceNode() == u) return capacities[e.getIndex()]; else return capacities[e.getIndex() + n]; }
public double getCapacity(Node u, Node v) { Edge e = u.getEdgeBetween(v); if (e == null) System.err.printf("no edge between %s and %s\n", u.getId(), v .getId()); if (e.getSourceNode() == u) return capacities[e.getIndex()]; else return capacities[e.getIndex() + n]; }