第1个回答 2014-09-08
3. T
为完成全部面试所花费的最少时间
(五)模型的建立
设
{s1
,
s2
,
s3
,
s4}
为
4
位面试者的一个面试顺序
,
面试者
si
参加第
j
个阶段面
试所需时间为
aij
根据问题的
2
个约束条件
,
可作出
n
位面试者在
{s1
,
s2
,
s3
,
s4
)面试顺序下参加
3
个面试阶段的进展过程表,
4
位面试者按序
{s1
,
s2
,
s3
,
s4}
参加
3
个阶段的面试进展过程表
面试者
T1
T2
T3
T4
T5
T6
s1
as1,1
as1,2
as1,3
s2
as2,1
as2,2
as2,3
s3
as3,1
as3,2
as3,3
s4
as4,1
as4,2
as4,3
表中
Ti
(i
=
l
,
2,
⋯
,
P)
表示能同时进行面试的人员所占用的时间段
,
如
T3
,表
示面试者
s1
在第
3
个面试场
,s2
在第
2
个面试场
,s3,
在第
1
个面试场、其余人
员在等待的那一个时间段
.
根据顺序性可知整个面试过程的时间段数为
3+4-1=6
模式:以各面试者结束全部面试阶段的时间为基础
(
以表的行为基础
)
目标函数
minT =max{xi3+ai3}
约束条件
(1)
面试阶段约束,即必须先完成上一阶段面试才能进人下一阶段面试。
xij + aij
≤
xi
,
j+1 i = l
,
2
,
3, 4
;
j = 1,2
,
3
)
(2)
同一阶段只能有一个面试者
xij +aij-xki
≤
Tyik
xkj +akj-xij
≤
T(1-yik)
(
i
,
k = l
,
2, 3, 4
,
i<k
;
j = l
,
2
,
3
)
yik = {O
,
l}
(3)
整个面试总和时间大于等于各面试者结束全部阶段面试的时间
T
≥
xi3+ai3
;
i = l,2,3,4
其中
y
是
O-1
变量
.
表示第
k
个面试者是否排在第
i
个面试者的前面
,O
表示否,
l
表示是
.
由此
,
就将问题中的约束条件“同一面试阶段只能有一个面试者”改用
“面试者的先后次序”
来表示解决了问题中难于表达的约束条件,
反应的关系清
楚
,
而且在模型求解的
,T
值就是最小总面试时间
,
根据全部
y
值就可以排出所有
面试者使
T
最小的面试顺序。
(3)
(六)模型的求解
编写的
lingo
程序如下:
model
:
title
面试问题
;
sets
:
!person=
被面试者集合
,stage=
面试阶段集合
;
person/1,2,3,4/;
stage/1,2,3/;
!
a
=
面试所需时间
,x
面试开始时间
;
pxs(person,stage):
a
,x;
!y(i,k)=1:k
排在
i
前
,0:
否则
;
pxp(person,person)|&1 #l
t
# &2:y;
endsets
data
:
a
=13 15 20
10 20 18
20 16 10
8 10 15;
enddata
min
=max
a
;
!max
a
是面试最后结束时间
;
max
a
>=
@max
(pxs(i,j)|j#eq#
@size
(stage):x(i,j)+
a
(i,j));
!
完成前一段才能进入下一段
;
@for
(pxs(i,j)|j#lt#
@size
(stage):x(i,j)+
a
(i,j)<x(i,j+1));
!
同一时间只能面试一位同学
;
@for
(stage(j):
@for
(pxp(i,k):x(i,j)+
a
(i,j)-x(k,j)<max
a
*y(i,k));
@for
(pxp(i,k):x(k,j)+
a
(k,j)-x(i,j)<max
a
*(1-y(i,k))););
@for
(pxp(i,k):
@bin
(y(i,k)));
end
Lingo
结果如下:
Local optimal solution found.
Objective value: 84.00000
Extended solver steps: 43
Total solver iterations: 1681
Model Title:
面试问题
Variable Value Reduced Cost
MAXA 84.00000 0.000000
A( 1, 1) 13.00000 0.000000
(
4
)
A( 1, 2) 15.00000 0.000000
A( 1, 3) 20.00000 0.000000
A( 2, 1) 10.00000 0.000000
A( 2, 2) 20.00000 0.000000
A( 2, 3) 18.00000 0.000000
A( 3, 1) 20.00000 0.000000
A( 3, 2) 16.00000 0.000000
A( 3, 3) 10.00000 0.000000
A( 4, 1) 8.000000 0.000000
A( 4, 2) 10.00000 0.000000
A( 4, 3) 15.00000 0.000000
X( 1, 1) 8.000000 0.000000
X( 1, 2) 21.00000 0.000000
X( 1, 3) 36.00000 0.000000
X( 2, 1) 26.00000 0.000000
X( 2, 2) 36.00000 0.000000
X( 2, 3) 56.00000 0.000000
X( 3, 1) 38.00000 0.000000
X( 3, 2) 58.00000 0.000000
X( 3, 3) 74.00000 0.000000
X( 4, 1) 0.000000 0.9999970
X( 4, 2) 11.00000 0.000000
X( 4, 3) 21.00000 0.000000
Y( 1, 2) 0.000000 -83.99950
Y( 1, 3) 0.000000 0.000000
Y( 1, 4) 1.000000 83.99950
Y( 2, 3) 0.000000 -83.99950
Y( 2, 4) 1.000000 0.000000
Y( 3, 4) 1.000000 0.000000
Row Slack or Surplus Dual Price
1 84.00000 -1.000000
2 0.000000 -0.9999970
3 0.000000 0.9999970
4 0.000000 0.9999970
5 0.000000 0.000000
6 0.000000 0.000000
7 0.000000 0.000000
8 0.000000 0.000000
9 3.000000 0.000000
10 0.000000 0.000000
11 5.000000 0.000000
12 17.00000 0.000000
(5)
13 63.00000 0.000000
14 2.000000 0.000000
15 48.00000 0.000000
16 26.00000 0.000000
17 56.00000 0.000000
18 34.00000 0.000000
19 0.000000 0.9999970
20 52.00000 0.000000
21 18.00000 0.000000
22 30.00000 0.000000
23 0.000000 0.000000
24 22.00000 0.000000
25 59.00000 0.000000
26 2.000000 0.000000
27 39.00000 0.000000
28 21.00000 0.000000
29 49.00000 0.000000
30 31.00000 0.000000
31 0.000000 0.000000
32 46.00000 0.000000
33 15.00000 0.000000
34 37.00000 0.000000
35 0.000000 0.9999970
36 18.00000 0.000000
37 49.00000 0.000000
38 0.000000 0.9999970
39 31.00000 0.000000
40 21.00000 0.000000
41 46.00000 0.000000
42 36.00000 0.000000
43 0.000000 0.000000
44 56.00000 0.000000
45 20.00000 0.000000
46 38.00000 0.000000
计算结果为:
所有面试完成至少需要
84min
。
面试序号为丁
-
甲
-
乙
-
丙。
早上
8:00
面试,最早
9:24
面试可以完成
.
(七)模型的推广
该模式是时间最优化的模型,
有推广的价值。
例如:
车间生产的流水线作业,
多
(6)
个部件如何按照先后次序在不同车间进行生产等。本回答被网友采纳