Random Actions Example

This example demonstrates how to use the DisjunctiveGraphJspEnv environment to execute random actions in a custom job shop problem instance. The environment is reset, and random actions are sampled and applied until the episode terminates. The environment’s state is rendered in debug mode after each action.

[5]:
from graph_matrix_jsp_env.disjunctive_jsp_env import DisjunctiveGraphJspEnv
import numpy as np
[6]:

if __name__ == '__main__': custom_jsp_instance = np.array([ [ [0, 1, 2, 3], # job 0 [0, 2, 1, 3] # job 1 ], [ [11, 3, 3, 12], # task durations of job 0 [5, 16, 7, 4] # task durations of job 1 ] ], dtype=np.int32) env = DisjunctiveGraphJspEnv( jsp_instance=custom_jsp_instance, ) obs, info = env.reset() terminated = False while not terminated: action = env.action_space.sample(mask=env.valid_action_mask()) obs, reward, terminated, truncated, info = env.step(action) env.render(mode='debug')

color encoding:
Successors, Predecessors, Unknown,
 t_id  first task in Predecessors-List
 t_id  last task in Predecessors-List
 t_id  first task in  Successors-List
 t_id  last task in Successors-List
 t_id  first task in Unknown-List

 makespan lower bound estimate

┏━━━━┳━━━━┳━━━━┳━━━━┳━━━━┳━━━━┳━━━━┳━━━━┳━━━━┳━━━━┳━━━━┳━━━━┳━━━━┳━━━━┳━━━━┓
┃    ┃  0 ┃  1 ┃  2 ┃  3 ┃  4 ┃  5 ┃  6 ┃  7 ┃  8 ┃  9 ┃  m ┃  d ┃  s ┃  v ┃
┣━━━━╋━━━━╇━━━━╇━━━━╇━━━━╇━━━━╇━━━━╇━━━━╇━━━━╇━━━━╇━━━━╇━━━━╇━━━━╇━━━━╇━━━━┫
┃  0 ┃  32  0   1   2   3   0   5   6   7   0   0   0   0   0 ┃
┣━━━━╉────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┨
┃  1 ┃  0   5   3   4   4   6   7   8   8   2   0  11  -1   1 ┃
┣━━━━╉────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┨
┃  2 ┃  1   1   5   4   4   6   7   8   8   3   1   3  -1   0 ┃
┣━━━━╉────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┨
┃  3 ┃  1   2   2   5   4   6   7   8   8   4   2   3  -1   0 ┃
┣━━━━╉────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┨
┃  4 ┃  1   2   3   3   5   6   7   8   8   0   3  12  -1   0 ┃
┣━━━━╉────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┨
┃  5 ┃  0   2   3   4   4   1   7   8   8   6   0   5   0   0 ┃
┣━━━━╉────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┨
┃  6 ┃  5   2   3   4   4   5   1   8   8   7   2  16  -1   1 ┃
┣━━━━╉────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┨
┃  7 ┃  5   2   3   4   4   6   6   1   8   8   1   7  -1   0 ┃
┣━━━━╉────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┨
┃  8 ┃  5   2   3   4   4   6   7   7   1   0   3   4  -1   0 ┃
┣━━━━╉────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┨
┃  9 ┃  0   4   4   4   0   8   8   8   0   0   0   0   0   0 ┃
┗━━━━┻━━━━┷━━━━┷━━━━┷━━━━┷━━━━┷━━━━┷━━━━┷━━━━┷━━━━┷━━━━┷━━━━┷━━━━┷━━━━┷━━━━┛
         ╔═══════════════════════════════════════════════════════╗
Job 1    ║║ Machine 0   
         ╚╦════╤════╤════╤════╤════╦════╤════╤════╤════╤════╦════╝
          0.0                      2.7                      5.5

color encoding:
Successors, Predecessors, Unknown,
 t_id  first task in Predecessors-List
 t_id  last task in Predecessors-List
 t_id  first task in  Successors-List
 t_id  last task in Successors-List
 t_id  first task in Unknown-List

 makespan lower bound estimate

┏━━━━┳━━━━┳━━━━┳━━━━┳━━━━┳━━━━┳━━━━┳━━━━┳━━━━┳━━━━┳━━━━┳━━━━┳━━━━┳━━━━┳━━━━┓
┃    ┃  0 ┃  1 ┃  2 ┃  3 ┃  4 ┃  5 ┃  6 ┃  7 ┃  8 ┃  9 ┃  m ┃  d ┃  s ┃  v ┃
┣━━━━╋━━━━╇━━━━╇━━━━╇━━━━╇━━━━╇━━━━╇━━━━╇━━━━╇━━━━╇━━━━╇━━━━╇━━━━╇━━━━╇━━━━┫
┃  0 ┃  32  5   5   5   5   0   5   6   7   0   0   0   0   0 ┃
┣━━━━╉────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┨
┃  1 ┃  5   6   3   4   4   5   7   8   8   2   0  11   5   0 ┃
┣━━━━╉────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┨
┃  2 ┃  1   5   6   4   4   5   7   8   8   3   1   3  -1   1 ┃
┣━━━━╉────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┨
┃  3 ┃  1   2   5   6   4   5   7   8   8   4   2   3  -1   0 ┃
┣━━━━╉────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┨
┃  4 ┃  1   2   3   5   6   5   7   8   8   0   3  12  -1   0 ┃
┣━━━━╉────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┨
┃  5 ┃  0   2   3   4   6   5   7   8   8   1   0   5   0   0 ┃
┣━━━━╉────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┨
┃  6 ┃  5   2   3   4   4   5   1   8   8   7   2  16  -1   1 ┃
┣━━━━╉────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┨
┃  7 ┃  5   2   3   4   4   6   6   1   8   8   1   7  -1   0 ┃
┣━━━━╉────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┨
┃  8 ┃  5   2   3   4   4   6   7   7   1   0   3   4  -1   0 ┃
┣━━━━╉────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┨
┃  9 ┃  0   4   4   4   0   8   8   8   0   0   0   0   0   0 ┃
┗━━━━┻━━━━┷━━━━┷━━━━┷━━━━┷━━━━┷━━━━┷━━━━┷━━━━┷━━━━┷━━━━┷━━━━┷━━━━┷━━━━┷━━━━┛
         ╔═══════════════════════════════════════════════════════╗
Job 0    ║                 ║ Machine 0   
Job 1    ║║
         ╚╦════╤════╤════╤════╤════╦════╤════╤════╤════╤════╦════╝
          0.0                      7.7                      15.5

color encoding:
Successors, Predecessors, Unknown,
 t_id  first task in Predecessors-List
 t_id  last task in Predecessors-List
 t_id  first task in  Successors-List
 t_id  last task in Successors-List
 t_id  first task in Unknown-List

 makespan lower bound estimate

┏━━━━┳━━━━┳━━━━┳━━━━┳━━━━┳━━━━┳━━━━┳━━━━┳━━━━┳━━━━┳━━━━┳━━━━┳━━━━┳━━━━┳━━━━┓
┃    ┃  0 ┃  1 ┃  2 ┃  3 ┃  4 ┃  5 ┃  6 ┃  7 ┃  8 ┃  9 ┃  m ┃  d ┃  s ┃  v ┃
┣━━━━╋━━━━╇━━━━╇━━━━╇━━━━╇━━━━╇━━━━╇━━━━╇━━━━╇━━━━╇━━━━╇━━━━╇━━━━╇━━━━╇━━━━┫
┃  0 ┃  32  5   5   5   5   0   5   6   7   0   0   0   0   0 ┃
┣━━━━╉────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┨
┃  1 ┃  5   6   3   4   4   5   7   8   8   2   0  11   5   0 ┃
┣━━━━╉────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┨
┃  2 ┃  1   5   6   4   4   5   7   8   8   3   1   3  16   0 ┃
┣━━━━╉────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┨
┃  3 ┃  1   2   5   6   4   5   7   8   8   4   2   3  -1   1 ┃
┣━━━━╉────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┨
┃  4 ┃  1   2   3   5   6   5   7   8   8   0   3  12  -1   0 ┃
┣━━━━╉────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┨
┃  5 ┃  0   2   3   4   6   5   7   8   8   1   0   5   0   0 ┃
┣━━━━╉────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┨
┃  6 ┃  5   2   3   4   4   5   1   8   8   7   2  16  -1   1 ┃
┣━━━━╉────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┨
┃  7 ┃  5   2   3   4   4   6   6   1   8   8   1   7  -1   0 ┃
┣━━━━╉────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┨
┃  8 ┃  5   2   3   4   4   6   7   7   1   0   3   4  -1   0 ┃
┣━━━━╉────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┨
┃  9 ┃  0   4   4   4   0   8   8   8   0   0   0   0   0   0 ┃
┗━━━━┻━━━━┷━━━━┷━━━━┷━━━━┷━━━━┷━━━━┷━━━━┷━━━━┷━━━━┷━━━━┷━━━━┷━━━━┷━━━━┷━━━━┛
         ╔═══════════════════════════════════════════════════════╗
Job 0    ║              ║ Machine 0   
Job 1    ║║ Machine 1   
         ╚╦════╤════╤════╤════╤════╦════╤════╤════╤════╤════╦════╝
          0.0                      9.1                      18.2

color encoding:
Successors, Predecessors, Unknown,
 t_id  first task in Predecessors-List
 t_id  last task in Predecessors-List
 t_id  first task in  Successors-List
 t_id  last task in Successors-List
 t_id  first task in Unknown-List

 makespan lower bound estimate

┏━━━━┳━━━━┳━━━━┳━━━━┳━━━━┳━━━━┳━━━━┳━━━━┳━━━━┳━━━━┳━━━━┳━━━━┳━━━━┳━━━━┳━━━━┓
┃    ┃  0 ┃  1 ┃  2 ┃  3 ┃  4 ┃  5 ┃  6 ┃  7 ┃  8 ┃  9 ┃  m ┃  d ┃  s ┃  v ┃
┣━━━━╋━━━━╇━━━━╇━━━━╇━━━━╇━━━━╇━━━━╇━━━━╇━━━━╇━━━━╇━━━━╇━━━━╇━━━━╇━━━━╇━━━━┫
┃  0 ┃  32  5   5   5   5   0   5   6   7   0   0   0   0   0 ┃
┣━━━━╉────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┨
┃  1 ┃  5   6   3   4   4   5   7   8   8   2   0  11   5   0 ┃
┣━━━━╉────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┨
┃  2 ┃  1   5   6   4   4   5   7   8   8   3   1   3  16   0 ┃
┣━━━━╉────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┨
┃  3 ┃  1   2   5   6   4   5   7   8   8   4   2   3  -1   1 ┃
┣━━━━╉────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┨
┃  4 ┃  1   2   3   5   6   5   7   8   8   0   3  12  -1   0 ┃
┣━━━━╉────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┨
┃  5 ┃  0   2   3   4   6   5   7   8   8   1   0   5   0   0 ┃
┣━━━━╉────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┨
┃  6 ┃  5   2   3   4   4   5   1   8   8   7   2  16   5   0 ┃
┣━━━━╉────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┨
┃  7 ┃  5   2   3   4   4   6   6   1   8   8   1   7  -1   1 ┃
┣━━━━╉────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┨
┃  8 ┃  5   2   3   4   4   6   7   7   1   0   3   4  -1   0 ┃
┣━━━━╉────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┨
┃  9 ┃  0   4   4   4   0   8   8   8   0   0   0   0   0   0 ┃
┗━━━━┻━━━━┷━━━━┷━━━━┷━━━━┷━━━━┷━━━━┷━━━━┷━━━━┷━━━━┷━━━━┷━━━━┷━━━━┷━━━━┷━━━━┛
         ╔═══════════════════════════════════════════════════════╗
Job 0    ║             ║ Machine 0   
Job 1    ║║ Machine 1   
         ║                                                       ║ Machine 2   
         ╚╦════╤════╤════╤════╤════╦════╤════╤════╤════╤════╦════╝
          0.0                      10.0                     20.0

color encoding:
Successors, Predecessors, Unknown,
 t_id  first task in Predecessors-List
 t_id  last task in Predecessors-List
 t_id  first task in  Successors-List
 t_id  last task in Successors-List
 t_id  first task in Unknown-List

 makespan lower bound estimate

┏━━━━┳━━━━┳━━━━┳━━━━┳━━━━┳━━━━┳━━━━┳━━━━┳━━━━┳━━━━┳━━━━┳━━━━┳━━━━┳━━━━┳━━━━┓
┃    ┃  0 ┃  1 ┃  2 ┃  3 ┃  4 ┃  5 ┃  6 ┃  7 ┃  8 ┃  9 ┃  m ┃  d ┃  s ┃  v ┃
┣━━━━╋━━━━╇━━━━╇━━━━╇━━━━╇━━━━╇━━━━╇━━━━╇━━━━╇━━━━╇━━━━╇━━━━╇━━━━╇━━━━╇━━━━┫
┃  0 ┃  32  5   5   5   5   0   5   6   7   0   0   0   0   0 ┃
┣━━━━╉────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┨
┃  1 ┃  5   6   3   4   7   5   6   8   8   2   0  11   5   0 ┃
┣━━━━╉────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┨
┃  2 ┃  1   5   6   4   7   5   6   8   8   3   1   3  16   0 ┃
┣━━━━╉────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┨
┃  3 ┃  1   2   5   6   4   5   7   8   8   4   2   3  -1   1 ┃
┣━━━━╉────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┨
┃  4 ┃  1   2   3   5   6   5   7   8   8   0   3  12  -1   0 ┃
┣━━━━╉────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┨
┃  5 ┃  0   2   3   4   6   5   7   8   8   1   0   5   0   0 ┃
┣━━━━╉────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┨
┃  6 ┃  5   2   3   4   4   5   1   8   8   7   2  16   5   0 ┃
┣━━━━╉────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┨
┃  7 ┃  1   2   5   4   4   6   6   3   8   8   1   7  21   0 ┃
┣━━━━╉────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┨
┃  8 ┃  1   2   5   4   4   6   7   7   3   0   3   4  -1   1 ┃
┣━━━━╉────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┨
┃  9 ┃  0   8   8   4   0   8   8   8   0   0   0   0   0   0 ┃
┗━━━━┻━━━━┷━━━━┷━━━━┷━━━━┷━━━━┷━━━━┷━━━━┷━━━━┷━━━━┷━━━━┷━━━━┷━━━━┷━━━━┷━━━━┛
         ╔═══════════════════════════════════════════════════════╗
Job 0    ║          ║ Machine 0   
Job 1    ║║ Machine 1   
         ║                                                       ║ Machine 2   
         ╚╦════╤════╤════╤════╤════╦════╤════╤════╤════╤════╦════╝
          0.0                      13.2                     26.4

color encoding:
Successors, Predecessors, Unknown,
 t_id  first task in Predecessors-List
 t_id  last task in Predecessors-List
 t_id  first task in  Successors-List
 t_id  last task in Successors-List
 t_id  first task in Unknown-List

 makespan lower bound estimate

┏━━━━┳━━━━┳━━━━┳━━━━┳━━━━┳━━━━┳━━━━┳━━━━┳━━━━┳━━━━┳━━━━┳━━━━┳━━━━┳━━━━┳━━━━┓
┃    ┃  0 ┃  1 ┃  2 ┃  3 ┃  4 ┃  5 ┃  6 ┃  7 ┃  8 ┃  9 ┃  m ┃  d ┃  s ┃  v ┃
┣━━━━╋━━━━╇━━━━╇━━━━╇━━━━╇━━━━╇━━━━╇━━━━╇━━━━╇━━━━╇━━━━╇━━━━╇━━━━╇━━━━╇━━━━┫
┃  0 ┃  32  5   5   5   5   0   5   6   7   0   0   0   0   0 ┃
┣━━━━╉────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┨
┃  1 ┃  5   6   3   4   7   5   6   8   8   2   0  11   5   0 ┃
┣━━━━╉────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┨
┃  2 ┃  1   5   6   4   7   5   6   8   8   3   1   3  16   0 ┃
┣━━━━╉────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┨
┃  3 ┃  1   2   5   6   4   5   7   8   8   4   2   3  -1   1 ┃
┣━━━━╉────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┨
┃  4 ┃  1   2   3   5   6   5   7   8   8   0   3  12  -1   0 ┃
┣━━━━╉────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┨
┃  5 ┃  0   2   3   4   6   5   7   8   8   1   0   5   0   0 ┃
┣━━━━╉────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┨
┃  6 ┃  5   2   3   4   4   5   1   8   8   7   2  16   5   0 ┃
┣━━━━╉────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┨
┃  7 ┃  1   2   5   4   4   6   6   3   8   8   1   7  21   0 ┃
┣━━━━╉────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┨
┃  8 ┃  1   2   5   4   4   6   7   7   3   0   3   4  28   0 ┃
┣━━━━╉────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┨
┃  9 ┃  0   8   8   4   0   8   8   8   0   0   0   0   0   0 ┃
┗━━━━┻━━━━┷━━━━┷━━━━┷━━━━┷━━━━┷━━━━┷━━━━┷━━━━┷━━━━┷━━━━┷━━━━┷━━━━┷━━━━┷━━━━┛
         ╔═══════════════════════════════════════════════════════╗
Job 0    ║         ║ Machine 0   
Job 1    ║║ Machine 1   
         ║                                                       ║ Machine 2   
         ║                                                       ║ Machine 3   
         ╚╦════╤════╤════╤════╤════╦════╤════╤════╤════╤════╦════╝
          0.0                      15.0                     30.0

color encoding:
Successors, Predecessors, Unknown,
 t_id  first task in Predecessors-List
 t_id  last task in Predecessors-List
 t_id  first task in  Successors-List
 t_id  last task in Successors-List
 t_id  first task in Unknown-List

 makespan lower bound estimate

┏━━━━┳━━━━┳━━━━┳━━━━┳━━━━┳━━━━┳━━━━┳━━━━┳━━━━┳━━━━┳━━━━┳━━━━┳━━━━┳━━━━┳━━━━┓
┃    ┃  0 ┃  1 ┃  2 ┃  3 ┃  4 ┃  5 ┃  6 ┃  7 ┃  8 ┃  9 ┃  m ┃  d ┃  s ┃  v ┃
┣━━━━╋━━━━╇━━━━╇━━━━╇━━━━╇━━━━╇━━━━╇━━━━╇━━━━╇━━━━╇━━━━╇━━━━╇━━━━╇━━━━╇━━━━┫
┃  0 ┃  32  5   5   6   6   0   5   6   7   0   0   0   0   0 ┃
┣━━━━╉────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┨
┃  1 ┃  5   6   3   4   7   5   6   8   8   2   0  11   5   0 ┃
┣━━━━╉────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┨
┃  2 ┃  1   5   6   4   7   5   6   8   8   3   1   3  16   0 ┃
┣━━━━╉────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┨
┃  3 ┃  1   2   5   7   4   6   6   8   8   4   2   3  21   0 ┃
┣━━━━╉────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┨
┃  4 ┃  1   2   3   5   7   6   6   8   8   0   3  12  -1   1 ┃
┣━━━━╉────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┨
┃  5 ┃  0   2   3   4   6   5   7   8   8   1   0   5   0   0 ┃
┣━━━━╉────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┨
┃  6 ┃  5   2   2   4   7   5   1   8   8   3   2  16   5   0 ┃
┣━━━━╉────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┨
┃  7 ┃  1   2   5   4   4   6   6   3   8   8   1   7  21   0 ┃
┣━━━━╉────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┨
┃  8 ┃  1   2   5   4   4   6   7   7   3   0   3   4  28   0 ┃
┣━━━━╉────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┨
┃  9 ┃  0   8   8   4   0   8   8   8   0   0   0   0   0   0 ┃
┗━━━━┻━━━━┷━━━━┷━━━━┷━━━━┷━━━━┷━━━━┷━━━━┷━━━━┷━━━━┷━━━━┷━━━━┷━━━━┷━━━━┷━━━━┛
         ╔═══════════════════════════════════════════════════════╗
Job 0    ║         ║ Machine 0   
Job 1    ║║ Machine 1   
         ║                                                       ║ Machine 2   
         ║                                                       ║ Machine 3   
         ╚╦════╤════╤════╤════╤════╦════╤════╤════╤════╤════╦════╝
          0.0                      15.0                     30.0

color encoding:
Successors, Predecessors, Unknown,
 t_id  first task in Predecessors-List
 t_id  last task in Predecessors-List
 t_id  first task in  Successors-List
 t_id  last task in Successors-List
 t_id  first task in Unknown-List

 makespan lower bound estimate

┏━━━━┳━━━━┳━━━━┳━━━━┳━━━━┳━━━━┳━━━━┳━━━━┳━━━━┳━━━━┳━━━━┳━━━━┳━━━━┳━━━━┳━━━━┓
┃    ┃  0 ┃  1 ┃  2 ┃  3 ┃  4 ┃  5 ┃  6 ┃  7 ┃  8 ┃  9 ┃  m ┃  d ┃  s ┃  v ┃
┣━━━━╋━━━━╇━━━━╇━━━━╇━━━━╇━━━━╇━━━━╇━━━━╇━━━━╇━━━━╇━━━━╇━━━━╇━━━━╇━━━━╇━━━━┫
┃  0 ┃  32  5   5   6   8   0   5   6   7   0   0   0   0   0 ┃
┣━━━━╉────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┨
┃  1 ┃  5   6   3   4   7   5   6   8   8   2   0  11   5   0 ┃
┣━━━━╉────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┨
┃  2 ┃  1   5   6   4   7   5   6   8   8   3   1   3  16   0 ┃
┣━━━━╉────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┨
┃  3 ┃  1   2   5   7   4   6   6   8   8   4   2   3  21   0 ┃
┣━━━━╉────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┨
┃  4 ┃  1   2   3   5   4   6   7   8   8   0   3  12  32   0 ┃
┣━━━━╉────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┨
┃  5 ┃  0   2   3   4   6   5   7   8   8   1   0   5   0   0 ┃
┣━━━━╉────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┨
┃  6 ┃  5   2   2   4   7   5   1   8   8   3   2  16   5   0 ┃
┣━━━━╉────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┨
┃  7 ┃  1   2   5   3   8   6   6   3   8   4   1   7  21   0 ┃
┣━━━━╉────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┨
┃  8 ┃  1   2   5   3   4   6   7   7   3   4   3   4  28   0 ┃
┣━━━━╉────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┨
┃  9 ┃  0   8   8   4   0   8   8   8   4   0   0   0   0   0 ┃
┗━━━━┻━━━━┷━━━━┷━━━━┷━━━━┷━━━━┷━━━━┷━━━━┷━━━━┷━━━━┷━━━━┷━━━━┷━━━━┷━━━━┷━━━━┛
         ╔═══════════════════════════════════════════════════════╗
Job 0    ║       ║ Machine 0   
Job 1    ║║ Machine 1   
         ║                                                       ║ Machine 2   
         ║                                                       ║ Machine 3   
         ╚╦════╤════╤════╤════╤════╦════╤════╤════╤════╤════╦════╝
          0.0                      20.5                     40.9
[ ]: