OR-Tools

[1]:
from jsp_instance_utils.instances import ft06, ft06_makespan
from jsp_instance_utils.jsp_or_tools_solver import solve_jsp
[2]:
makespan, status, *_ = solve_jsp(jsp_instance=ft06, plot_results=True)
         ╔═══════════════════════════════════════════════════════╗
Job 0    ║     ║ Machine 0   
Job 1    ║║ Machine 1   
Job 2    ║║ Machine 2   
Job 3    ║        ║ Machine 3   
Job 4    ║             ║ Machine 4   
Job 5    ║             ║ Machine 5   
         ╚╦════╤════╤════╤════╤════╦════╤════╤════╤════╤════╦════╝
          0.0                      25.5                     50.9
[3]:
assert status == "OPTIMAL"
assert makespan == ft06_makespan
[4]:
print(f"makespan: {makespan} ({status} solution)")
makespan: 55.0 (OPTIMAL solution)