Class Arc
- java.lang.Object
-
- org.jacop.constraints.netflow.simplex.Arc
-
public final class Arc extends java.lang.ObjectA directed, residual arc in the graph.- Version:
- 4.8
-
-
Field Summary
Fields Modifier and Type Field Description intcapacityThe unused (i.e.ArcCompanioncompanionThe arc companion for constraint API.intcostThe cost of the Arc costbooleanforwardwhether this arc is a forward arc or a residual arcNodeheadThe head of the arc (where the arc points to).intindexIndex in lower arcs arrayArcsisterThe flow of an arc is the residual capacity of its sister arc.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddFlow(int delta)voidclear()Clears an artificial arcArcCompaniongetCompanion()booleanhasCompanion()booleanisInCut(boolean forward)longlongCost()java.lang.Stringname()intreducedCost()Computes the cost of this arc considering node potentials.voidset(int newCost, int newCapacity)Initializes an artificial arcNodetail()java.lang.StringtoFlow()java.lang.StringtoString()
-
-
-
Field Detail
-
head
public final Node head
The head of the arc (where the arc points to). The head of an arc is the tail of its sister arc.
-
cost
public int cost
The cost of the Arc cost
-
capacity
public int capacity
The unused (i.e. residual) capacity of the arc
-
sister
public final Arc sister
The flow of an arc is the residual capacity of its sister arc.
-
index
public int index
Index in lower arcs array
-
companion
public ArcCompanion companion
The arc companion for constraint API. Only forward arcs have a companion, residual arcs do not.
-
forward
public boolean forward
whether this arc is a forward arc or a residual arc
-
-
Constructor Detail
-
Arc
public Arc(Node tail, Node head)
Special constructor to create artificial arcs. Should NOT be used in a model. Models should use (or subclass) a NetworkBuilder instead. A NetworkBuilder provides various addArc methods to create arcs more conveniently.- Parameters:
tail- tail of the archead- head of the arc
-
Arc
public Arc(Node tail, Node head, int cost, int lowerCapacity, int upperCapacity)
General constructor to create arcs. Models should consider to use (or subclass) a NetworkBuilder instead. A NetworkBuilder provides various addArc methods to create arcs more conveniently.- Parameters:
tail- tail of the archead- head of the arccost- cost-per-unit of the arclowerCapacity- lower capacity of the arcupperCapacity- upper capacity of the arc
-
-
Method Detail
-
reducedCost
public int reducedCost()
Computes the cost of this arc considering node potentials.- Returns:
- the reduced cost
-
addFlow
public void addFlow(int delta)
-
tail
public Node tail()
-
isInCut
public boolean isInCut(boolean forward)
-
set
public void set(int newCost, int newCapacity)Initializes an artificial arc- Parameters:
newCost- new cost for the arcnewCapacity- new capacity for the arc
-
clear
public void clear()
Clears an artificial arc
-
longCost
public long longCost()
- Returns:
- cost associated with an arc.
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
toFlow
public java.lang.String toFlow()
-
hasCompanion
public boolean hasCompanion()
-
getCompanion
public ArcCompanion getCompanion()
-
name
public java.lang.String name()
-
-