Package org.jacop.constraints.netflow
Class ArcCompanion
- java.lang.Object
-
- org.jacop.constraints.netflow.ArcCompanion
-
- All Implemented Interfaces:
java.lang.Comparable<ArcCompanion>
,VarHandler
public final class ArcCompanion extends java.lang.Object implements VarHandler, java.lang.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 Summary
Fields Modifier and Type Field Description Arc
arc
The (forward) arcint
arcID
Identifier for this arc in the structure variableint
flowOffset
Current lower capacity of the arcint
pruningScore
The pruningScoreDomainStructure
structure
The associated structure variableIntVar
wVar
The FDV for lower and upper costIntVar
xVar
The FDV for lower and upper capacity
-
Constructor Summary
Constructors Constructor Description ArcCompanion(Arc arc, int offset)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description 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.void
changeMaxCapacity(int max)
void
changeMinCapacity(int min)
int
compareTo(ArcCompanion that)
int
getPruningEvent(Var var)
Retrieves the consistency pruning event of a handler variable that causes the handler to be reevaluated.java.util.List<IntVar>
listVariables()
void
processEvent(IntVar variable, MutableNetwork network)
Informs the handler that one of its variable has changed and asks the handler to update the state of the network accordingly.void
restore(MutableNetwork network)
Restores the capacity and weight of the arc after backtracking.void
setFlow(int flow)
Forces the flow to a given value (within capacity bounds).java.lang.String
toString()
private boolean
updateSVar(int level)
interaction with structure variable
-
-
-
Field Detail
-
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 Detail
-
ArcCompanion
public ArcCompanion(Arc arc, int offset)
-
-
Method Detail
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.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 capacitymax
- the new upper capacity
-
changeMinCapacity
public void changeMinCapacity(int min)
-
changeMaxCapacity
public void changeMaxCapacity(int max)
-
listVariables
public java.util.List<IntVar> listVariables()
- Specified by:
listVariables
in interfaceVarHandler
- 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 interfaceVarHandler
- Parameters:
variable
- the variable that changednetwork
- 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 interfaceVarHandler
- 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 interfacejava.lang.Comparable<ArcCompanion>
-
-