![](https://i-blog.csdnimg.cn/blog_migrate/a9bf032d550d5457c4ef01af02d0f8c8.jpeg)
![](https://i-blog.csdnimg.cn/blog_migrate/cbb6ed6d00d3f740cd761ca368c4c38a.png)
对于顶点(2,1),(2,2),(2,3)和(3,1),(3,2)以及(4,2),(4,3)可以做相同的处理。
由此,我们可以建立更一般的JSP问题的数学模型,将问题推广到更一般的情况。首先定义
1.下标(Index):
工件:i
机器:j
工序:k
顶点:u
弧:e
2.集合(set):
工件集合:I,
机器集合:J,
工序集合:
顶点集合:V
弧集合:E
工件i对应的实线弧集合:
机器j对于的虚线弧集合:
表示流入u的虚线弧集合,
表示流出u的虚线弧集合
3.参数(paramet):
加工时间:
4.变量(variable):
:表示顶点u的完工时间,
:表示弧e是否被选择,如果弧e被选择取1,否则取0
5.目标函数(Objective):
min {
}
目标函数是最小化最大完成时刻。
6.约束条件(Constraints):
(1)
(2)
(3)
(4)
(5)
(6)
(7)
约束条件(1)表示所有加工任务的完工时刻必须大于等于零时刻加上工件 被机器加工的执行时间;约束条件(2)表示对于每一个工件,必须按照要求的顺序进行加工,紧后工序的完成时刻减去加工时间要大于等于紧前任务的完工时刻;约束条件(3)表示每一台机器最开始只能对一个工件进行加工;约束条件(4)表示每一台机器最后只能对一个工件进行加工;约束条件(5)表示除头尾两个机器加工任务外,每一个工件被机器加工有且只有一个紧前任务和紧后任务;约束条件(6)表示对于同一台机器,紧后任务的完工时刻减去执行时间大于等于紧前任务的完工时刻;约束条件(7)表示每一条路径只能取0和1两种类型。