function plot_gantt_chart(job_num, machine_num, start_time, makespan) color = lines(job_num); figure; for j = 1:machine_num for i = 1:job_num x = start_time(i, j); y = j-0.4; w = start_time(job_num, machine_num); h = 0.8; rectangle('Position',[x, y, w, h],'FaceColor',color(i,:)); end end xlabel('时间'); ylabel('机器'); xlim([0 makespan]); ylim([0 machine_num+1]); title('甘特图'); end转化为流水车间调度 机器调度
时间: 2024-02-04 07:02:06 浏览: 57
甘特图绘图:绘制甘特图或流程计划的函数。 以炼钢和连铸问题为例。-matlab开发
这段代码可以用来绘制流水车间调度的甘特图,只需要将其中的变量名和参数修改为流水车间调度问题的对应变量即可。
假设流水车间调度问题中有n个作业和m个机器,每个作业需要在不同的机器上进行加工,加工时间为Ti,j。机器之间存在一定的加工顺序限制,即某些机器必须在其他机器之前完成加工。那么可以按照如下方式修改代码:
```matlab
function plot_gantt_chart(job_num, machine_num, start_time, makespan, process_time)
color = lines(job_num);
figure;
for j = 1:machine_num
for i = 1:job_num
x = start_time(i, j);
y = j-0.4;
w = process_time(i, j);
h = 0.8;
rectangle('Position',[x, y, w, h],'FaceColor',color(i,:));
end
end
xlabel('时间');
ylabel('机器');
xlim([0 makespan]);
ylim([0 machine_num+1]);
title('甘特图');
end
```
其中,process_time是一个n×m的矩阵,表示每个作业在不同机器上的加工时间。在绘制每个矩形时,需要将矩形的宽度w设置为process_time(i,j)。这样就可以用这段代码来绘制流水车间调度的甘特图了。
阅读全文