Class SMICDominance
SMICDominance class defines the dominance relation between two
states of the SMICState in the context of the
Single Machine with Inventory Constraint (SMIC) problem.
Dominance relations are used by search algorithms (such as DDO, A*, or ACS)
to prune suboptimal or redundant states during the exploration process.
A state s1 is said to be dominated by another state s2
if s2 represents an equivalent or better configuration of the system
according to a defined dominance rule.
In this implementation, the dominance rule is defined as follows:
- Two states are compared only if they have the same set of remaining jobs;
- Among such states, the one with the smaller (or equal) current time dominates the other, since it reaches the same configuration earlier or at the same time.
This criterion allows pruning of states that would take longer to reach the same remaining set of jobs, improving search efficiency without losing optimality.
- See Also:
-
Constructor Summary
Constructors -
Method Summary
-
Constructor Details
-
SMICDominance
public SMICDominance()
-
-
Method Details
-
getKey
Returns a key used to group comparable states.In this implementation, all states share the same key (
0), meaning that any pair of states can potentially be compared for dominance. -
isDominatedOrEqual
Determines whether one state is dominated by or equal to another.A state
state1is considered dominated (or equivalent) tostate2if:- Both states have the same set of remaining jobs to process;
- The current time of
state2is less than or equal to that ofstate1.
- Specified by:
isDominatedOrEqualin interfaceDominance<SMICState>- Parameters:
state1- the state being tested for dominancestate2- the state potentially dominatingstate1- Returns:
trueifstate1is dominated by or equal tostate2,falseotherwise
-