Class ArcCompanion

java.lang.Object
org.jacop.constraints.netflow.ArcCompanion
All Implemented Interfaces:
Comparable<ArcCompanion>, VarHandler

public final class ArcCompanion extends Object implements VarHandler, Comparable<ArcCompanion>
This class extends the definition of an arc by a lower bound on the capacity and connects the arc to variables that constrain it.

The ArcCompanion plays the role of the VarHandler for X- and W-variables. It also provides a hook for S-variables of any

Version:
4.8
  • Field Details

    • arc

      public final Arc arc
      The (forward) arc
    • flowOffset

      public int flowOffset
      Current lower capacity of the arc
    • xVar

      public IntVar xVar
      The FDV for lower and upper capacity
    • wVar

      public IntVar wVar
      The FDV for lower and upper cost
    • structure

      public DomainStructure structure
      The associated structure variable
    • arcID

      public int arcID
      Identifier for this arc in the structure variable
    • pruningScore

      public int pruningScore
      The pruningScore
  • Constructor Details

    • ArcCompanion

      public ArcCompanion(Arc arc, int offset)
  • Method Details

    • toString

      public String toString()
      Overrides:
      toString in class Object
    • changeCapacity

      public void changeCapacity(int min, int max)
      Changes the lower and upper capacity of the arc in any way, performing the necessary changes to node balance and flow offset functions.
      Parameters:
      min - the new lower capacity
      max - the new upper capacity
    • changeMinCapacity

      public void changeMinCapacity(int min)
    • changeMaxCapacity

      public void changeMaxCapacity(int max)
    • listVariables

      public List<IntVar> listVariables()
      Specified by:
      listVariables in interface VarHandler
      Returns:
      the list of variables handled by this handler
    • processEvent

      public void processEvent(IntVar variable, MutableNetwork network)
      Description copied from interface: VarHandler
      Informs the handler that one of its variable has changed and asks the handler to update the state of the network accordingly.
      Specified by:
      processEvent in interface VarHandler
      Parameters:
      variable - the variable that changed
      network - the network
    • restore

      public void restore(MutableNetwork network)
      Restores the capacity and weight of the arc after backtracking.
      Parameters:
      network - the network
    • setFlow

      public void setFlow(int flow)
      Forces the flow to a given value (within capacity bounds).
      Parameters:
      flow - the new flow value
    • getPruningEvent

      public int getPruningEvent(Var var)
      Description copied from interface: VarHandler
      Retrieves the consistency pruning event of a handler variable that causes the handler to be reevaluated. For instance, X- and W-variables will listen to BOUND events while S-variables typically consider ANY events.
      Specified by:
      getPruningEvent in interface VarHandler
      Parameters:
      var - a handler variable
      Returns:
      the pruning event which causes reevaluation of the handler
    • updateSVar

      private boolean updateSVar(int level)
      interaction with structure variable
      Parameters:
      level - current store level
      Returns:
      whether the domain of the s-variable has been updated
    • compareTo

      public int compareTo(ArcCompanion that)
      Specified by:
      compareTo in interface Comparable<ArcCompanion>