Graph Matrix JSP Environment Example

[121]:
from jsp_instance_utils.instances import ft06, ft06_makespan
from graph_matrix_jsp_env.disjunctive_jsp_env import DisjunctiveGraphJspEnv
import numpy as np
[122]:
def main():
    env = DisjunctiveGraphJspEnv(
        jsp_instance=ft06,
        c_lb=ft06_makespan,
        reward_function="makespan"
    )

    done = False
    info = {}
    while not done:
        # get valid action mask. sample expects it to be a numpy array of type int8
        mask = np.array(env.valid_action_mask()).astype(np.int8)
        action = env.action_space.sample(mask=mask)
        state, reward, terminated, truncated, info = env.step(action)

        done = terminated or truncated

    # console rendering
    env.render()
    print(f"makespan: {env.get_makespan()}")
[123]:
if __name__ == '__main__':
    main()
         ╔═══════════════════════════════════════════════════════╗
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                      32.7                     65.5
makespan: 71