Package org.ddolib.examples.msct
Class MSCTLnsMain
java.lang.Object
org.ddolib.examples.msct.MSCTLnsMain
Entry point for solving the Minimum Sum of Completion Times (MSCT) problem
using a Large Neighborhood Search (LNS) approach combined with
Decision Diagram Optimization (DDO).
The Minimum Sum of Completion Times problem consists in scheduling a set of jobs on a single machine so as to minimize the sum of their completion times. Each job has a processing time, and the objective is to determine an execution order that minimizes the total completion cost.
This class demonstrates how to:
- Load an MSCT instance from a file
- Define a
LnsModelwith problem-specific components - Use a lower bound heuristic to guide the search
- Apply dominance rules to prune suboptimal schedules
- Control the decision diagram width
- Run a Large Neighborhood Search (LNS) optimization
- Print intermediate and final solutions
Execution
The program accepts an optional command-line argument specifying the path to an MSCT instance file. If not provided, a default instance is loaded from:
data/MSCT/msct1.txt
Model Components
MSCTProblem– defines the scheduling instanceMSCTFastLowerBound– provides a fast lower bound on the objectiveMSCTDominance– defines dominance relations between partial schedulesSimpleDominanceChecker– applies dominance pruningMSCTRanking– ranks states during decision diagram compilationFixedWidth– limits the decision diagram width
Search Configuration
- Search strategy: Large Neighborhood Search (LNS)
- Time limit: 100 milliseconds
- Width heuristic: fixed width of 10 nodes per layer
Output
The program prints:
- Intermediate solutions during the search
- Final solution statistics
- The best job sequence found
- See Also:
-
Constructor Summary
Constructors -
Method Summary
-
Constructor Details
-
MSCTLnsMain
public MSCTLnsMain()
-
-
Method Details
-
main
Main entry point of the program.Loads an MSCT instance, configures the LNS model with problem-specific heuristics and dominance rules, and runs the optimization process.
- Parameters:
args- optional command-line arguments:args[0]– path to the MSCT instance file
- Throws:
IOException- if the instance file cannot be read
-