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