Class Arc


  • public final class Arc
    extends java.lang.Object
    A directed, residual arc in the graph.
    Version:
    4.7
    • Field Summary

      Fields 
      Modifier and Type Field Description
      int capacity
      The unused (i.e.
      ArcCompanion companion
      The arc companion for constraint API.
      int cost
      The cost of the Arc cost
      boolean forward
      whether this arc is a forward arc or a residual arc
      Node head
      The head of the arc (where the arc points to).
      int index
      Index in lower arcs array
      Arc sister
      The flow of an arc is the residual capacity of its sister arc.
    • Constructor Summary

      Constructors 
      Modifier Constructor Description
      private Arc​(Arc sister, Node to)  
        Arc​(Node tail, Node head)
      Special constructor to create artificial arcs.
        Arc​(Node tail, Node head, int cost, int lowerCapacity, int upperCapacity)
      General constructor to create arcs.
    • 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 arc
        head - 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 arc
        head - head of the arc
        cost - cost-per-unit of the arc
        lowerCapacity - lower capacity of the arc
        upperCapacity - upper capacity of the arc
      • Arc

        private Arc​(Arc sister,
                    Node to)
    • 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 arc
        newCapacity - 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:
        toString in class java.lang.Object
      • toFlow

        public java.lang.String toFlow()
      • hasCompanion

        public boolean hasCompanion()
      • name

        public java.lang.String name()