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 ArcarcThe (forward) arcintarcIDIdentifier for this arc in the structure variableintflowOffsetCurrent lower capacity of the arcintpruningScoreThe pruningScoreDomainStructurestructureThe associated structure variableIntVarwVarThe FDV for lower and upper costIntVarxVarThe 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 voidchangeCapacity(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.voidchangeMaxCapacity(int max)voidchangeMinCapacity(int min)intcompareTo(ArcCompanion that)intgetPruningEvent(Var var)Retrieves the consistency pruning event of a handler variable that causes the handler to be reevaluated.java.util.List<IntVar>listVariables()voidprocessEvent(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.voidrestore(MutableNetwork network)Restores the capacity and weight of the arc after backtracking.voidsetFlow(int flow)Forces the flow to a given value (within capacity bounds).java.lang.StringtoString()private booleanupdateSVar(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:
toStringin 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:
listVariablesin interfaceVarHandler- Returns:
- the list of variables handled by this handler
-
processEvent
public void processEvent(IntVar variable, MutableNetwork network)
Description copied from interface:VarHandlerInforms the handler that one of its variable has changed and asks the handler to update the state of the network accordingly.- Specified by:
processEventin 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:VarHandlerRetrieves 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:
getPruningEventin 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:
compareToin interfacejava.lang.Comparable<ArcCompanion>
-
-