The Resource-Task Graph representationΒΆ
[1]:
from job_shop_lib import JobShopInstance, Operation
from job_shop_lib.graphs import (
build_complete_resource_task_graph,
build_resource_task_graph_with_jobs,
build_resource_task_graph,
)
from job_shop_lib.visualization.graphs import (
plot_resource_task_graph,
three_columns_layout,
)
CPU = 0
GPU = 1
DATA_CENTER = 2
job_1 = [Operation(CPU, 1), Operation(GPU, 1), Operation(DATA_CENTER, 7)]
job_2 = [Operation(GPU, 5), Operation(DATA_CENTER, 1), Operation(CPU, 1)]
job_3 = [Operation(DATA_CENTER, 1), Operation(CPU, 3), Operation(GPU, 2)]
jobs = [job_1, job_2, job_3]
instance = JobShopInstance(jobs, name="Example")
[2]:
complete_graph = build_complete_resource_task_graph(instance)
with_jobs_graph = build_resource_task_graph_with_jobs(instance)
graph = build_resource_task_graph(instance)
[3]:
_ = plot_resource_task_graph(complete_graph, title="", figsize=(5, 7))
[4]:
_ = plot_resource_task_graph(
with_jobs_graph,
title="",
figsize=(5, 7),
draw_only_one_edge=True,
edge_additional_params={
"arrowstyle": "<|-|>",
"arrowsize": 10,
"connectionstyle": "arc3,rad=0.1",
"width": 1.5,
"edge_color": "salmon",
},
default_node_color="gray",
node_font_color="white",
)
[5]:
_ = plot_resource_task_graph(
graph,
title="",
figsize=(4, 7),
draw_only_one_edge=True,
edge_additional_params={
"arrowstyle": "<|-|>",
"arrowsize": 10,
"connectionstyle": "arc3,rad=0.15",
"width": 1.5,
"edge_color": "k",
},
node_font_color="k",
alpha=0.9,
layout=three_columns_layout(
graph,
leftmost_position=0.45, # Move left column more rigth
),
)
[ ]: