Class MSCTFastLowerBound
- All Implemented Interfaces:
FastLowerBound<MSCTState>
The MSCTFastLowerBound class estimates a lower bound on the total completion time
(or cost) that can be achieved from a given partial state of the problem.
This lower bound is used within search-based optimization algorithms
(such as A*, ACS, or DDO) to prune suboptimal branches and guide the search toward
promising solutions.
The lower bound is computed based on the remaining tasks to be scheduled and the current state of the system. It takes into account the earliest possible start time (release date) and the smallest processing time among the remaining tasks.
Computation logic:
- Let
kbe the number of remaining tasks to schedule. minProcessingis the smallest processing time among the remaining tasks.minReleaseis the smallest release time among the remaining tasks.uis the maximum betweenstate.currentTime()andminRelease.
LB = k * u + minProcessing * (k * (k + 1) / 2.0)
This formula roughly estimates the minimal cumulative processing time that remains given the current schedule state.
Example:
MSCTProblem problem = new MSCTProblem("data/MSCT/msct1.txt");
MSCTState state = new MSCTState(...);
MSCTFastLowerBound lb = new MSCTFastLowerBound(problem);
double lowerBound = lb.fastLowerBound(state, Set.of(0, 1, 2));
System.out.println("Estimated lower bound: " + lowerBound);
-
Constructor Summary
ConstructorsConstructorDescriptionMSCTFastLowerBound(MSCTProblem problem) Constructs a lower bound evaluator for a specific instance of the MSCT problem. -
Method Summary
Modifier and TypeMethodDescriptiondoublefastLowerBound(MSCTState state, Set<Integer> variables) Computes a fast lower bound on the total completion time (or cost) from the given state and remaining variables.
-
Constructor Details
-
MSCTFastLowerBound
Constructs a lower bound evaluator for a specific instance of the MSCT problem.- Parameters:
problem- theMSCTProbleminstance containing the task data (processing times, release dates, etc.).
-
-
Method Details
-
fastLowerBound
Computes a fast lower bound on the total completion time (or cost) from the given state and remaining variables.This method evaluates how good a partial solution can potentially become by estimating the minimal additional cost required to schedule the remaining tasks.
- Specified by:
fastLowerBoundin interfaceFastLowerBound<MSCTState>- Parameters:
state- the current state of the problem, representing already scheduled tasks.variables- the set of remaining variables (tasks) to be scheduled.- Returns:
- an estimated lower bound on the minimal total cost achievable from the current state.
-