Class MSCTLnsMain

java.lang.Object
org.ddolib.examples.msct.MSCTLnsMain

public class MSCTLnsMain extends Object
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 LnsModel with 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

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 Details

    • MSCTLnsMain

      public MSCTLnsMain()
  • Method Details

    • main

      public static void main(String[] args) throws IOException
      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