Class SMICRelax
- All Implemented Interfaces:
Relaxation<SMICState>
SMICRelax class implements a relaxation operator for the
SMICProblem, used in Decision Diagram Optimization (DDO)-based solvers.
The relaxation defines how to merge multiple SMICState instances
representing similar subproblems into a single aggregated state, in order
to reduce the diagram size while maintaining an admissible relaxation
(i.e., not underestimating the true cost).
This specific relaxation merges states by:
- Taking the union of their remaining jobs,
- Taking the minimum of their current times (earliest time reached),
- Taking the maximum of their minimum inventory levels,
- Taking the minimum of their maximum inventory levels.
minCurrentInventory > maxCurrentInventory),
the merged state uses the same value for both bounds
to ensure consistency.
The relaxEdge(SMICState, SMICState, SMICState, Decision, double) method
does not alter the transition cost — it returns the same value as the original edge,
meaning this relaxation focuses on state aggregation only.
- See Also:
-
Constructor Summary
ConstructorsConstructorDescriptionSMICRelax(SMICProblem problem) Constructs a relaxation operator for the givenSMICProblem. -
Method Summary
-
Constructor Details
-
SMICRelax
Constructs a relaxation operator for the givenSMICProblem.- Parameters:
problem- the problem definition providing data and constraints
-
-
Method Details
-
mergeStates
Merges severalSMICStateobjects into a single relaxed state.The merged state conservatively approximates the set of original states, ensuring that no feasible solution is lost while potentially combining multiple subproblems to reduce computational complexity.
- Specified by:
mergeStatesin interfaceRelaxation<SMICState>- Parameters:
states- an iterator over the states to be merged- Returns:
- a new relaxed
SMICStatecombining the information of all inputs
-
relaxEdge
Relaxes the cost of an edge between two states.In this implementation, the relaxation does not modify the edge cost; the returned cost is identical to the input cost.
- Specified by:
relaxEdgein interfaceRelaxation<SMICState>- Parameters:
from- the source state before applying the decisionto- the target state after applying the decisionmerged- the merged state resulting from relaxationd- the decision appliedcost- the original transition cost- Returns:
- the relaxed (possibly modified) edge cost, unchanged in this implementation
-