1、,此顺序的面试者结束时间矩阵为3.模型的优点(1)结合了企业面试时的要求和特点,一一列举所有可能,得到的结果肯定是正确的。(2)算法直观,容易理解,易于证明其正确性。(3)模型稳定,结果贴近实际。5.模型的缺点和改进由于枚举法穷举了所有可能,运算量比较大,解题效率低下,如果枚举范围太大,在时间上就难以承受, 所以我们可以在以下方面进行改进:(1)减少状态总数(即减少枚举变量和枚举变量的值域),如采用隐枚举法可以设定条件减持。(2)减少重复计算。(3)将原问题化为更小的问题,比如考虑等待时间最小即结束时间最少的算法实现。(二)优化模型1.模型建立由于已知同学数量和阶段面试时间,只考虑固定一种顺序
2、的情形,记表示第个同学面试第阶段所用的时间,阶段的开始时间。引入0-1变量,个人是否排在第个同学之前,=1,表示第个人排在第个同学之前,否则,=0。则为第个同学面试第3阶段所用时间,个同学面试第3阶段的开始时间,要求四人完成面试后同时离开则可知表示四人完成面试后的结束时间,设为为目标函数。这样越小则离开时间越早,于是对0-1整数线性规划模型进行改善,改写为同时根据面试中的四人必须同时离开,可以建立约束此外,结合原题(1)每个人必须面试完上一轮才能开始下一轮面试(2)每个阶段只能面试一个人:用0-1变量个人之前,即第个人之前,=1;否则,若=0,排在后面=1,则前面综上所述,可得加上之前的一个约
3、束,综上,最终得出一个0-1整数线性规划模型s.t.2.模型求解该题是一个0-1整数线性规划问题,直接利用lingo编程求解。计算结果见图2和附录二。图 2根据结果,能使四人最早同时离开的面试排序用时84分钟,同时计算并汇总出各同学面试时间和开始时间如下表2。表 2各阶段开始时间各阶段使用时间各阶段结束时间甲(秘书初试)81321甲(主管初试)1536甲(经理面试)20乙(秘书初试)10乙(主管初试)56乙(经理面试)1874丙(秘书初试)丙(主管初试)1672丙(经理面试)84丁(秘书初试)丁(主管初试)丁(经理面试)图 3图4显示了每位同学在各阶段面试时间长短的排序,可以看出甲的主管面试、
4、乙的秘书面试、丁的经理面试,还有甲的经理面试、乙的主管面试、丙的秘书初试,都分别是同时结束的。表 3VariableValueM(S1,S2)0.000000M(S1,S3)M(S1,S4)1.000000M(S2,S3)M(S2,S4)M(S3,S4)又根据表5的0-1变量运算结果可知最优面试排序为丁、甲、乙、丙,显然计算结果与枚举法模型结果相一致,确定正确。(三)结果分析通过枚举法和规划方法,最终可以确定,公司应该安排四位同学按照丁、甲、乙、丙这样的顺序进行面试可以达到用时最短时间的效果,即84分钟,早晨9:24面试结束.枚举结果如下。表 4序号面试顺序完成面试所用时间1丁丙乙甲102乙丙
5、丁甲932丁丙甲乙9714乙丙甲丁963丁乙丙甲89乙丁丙甲4丁乙甲丙86乙丁甲丙5丁甲乙丙17乙甲丁丙6丁甲丙乙95乙甲丙丁7丙丁乙甲10419甲丙乙丁丙丁甲乙99甲丙丁乙9丙乙丁甲109甲乙丙丁91丙乙甲丁22甲乙丁丙11丙甲乙丁23甲丁乙丙12丙甲丁乙24甲丁丙乙如此一来同学可以完成共同离开的心愿,且公司可以以最高效率工作。但是连续工作可能会导致面试官疲惫,公司可以适当在面试过程中添加休息时间,比如在56分钟时进行休息,此时刚好第一、二位同学丁和甲三轮面试结束,乙第二轮面试结束,丙第二轮面试尚未开始,所有人可以共同休息调整状态。图 4图2为所有排序方法的结束用时计算结果,可以看出各种顺序
6、的用时差别相当大,当面试人数更多的时候,这一差距会更加显著,所以企业合理安排面试顺序的具有重要现实意义。六、模型评价与改进本文首先通过枚举法列举出24种排序方案,并计算出每一种排序方式的所用时间,虽然计算量较大,但程序较为容易实现,其正确性也较容易证明。但是可以运用隐枚举法进行改进,提高解题效率。其次,构建了面试排队决策的优化模型,通过目标函数,从而建立成了一个线性规划模型,求地了所有同学排序情况下,被排在最后的一个同学面试完时所用总时间T(也即排序后,从第一个同学参加第一阶段面试时开始计时,到最后一个同学面试完最后一阶段的这段时间)中最小的一个,然后,又建立了一个0-1变量表示其约束条件,并
7、使用LINGO软件求解,所得结果具有一定的正确性和指导意义。但是,本文只讨论了四个同学面试三个阶段的合理排序方法,而没有讨论更多同学面试更多的阶段的合理排序的解决方案,从而使得面试总时间最短。在实际应用中还存在许多更复杂但是类似相关的情形,此时,若还用本文中的解决方案未必是合理的。因此,对更多同学面试更多的阶段的合理排序的解决方案是进一步应该研究和改进的方向。七、参考文献1 姜启源,谢金星,叶俊.数学模型(3版).北京:高等教育出版社,2003.2 徐玖平,胡知能.运筹学-数据决策.北京:科学出版社,2006.3 茆诗松,程依明,濮晓龙.概率论与数理统计(第二版).北京:高等教育出版社,200
8、24 赵静,但琦,数学建模与数学实验.北京:5 Frank R.Giordano,Maurice D.Weir,William P.Fox(美).数学建模.叶其孝,姜启源等译.北京:机械工业出版社,20056 宋兆基等.MATLABA在科学计算中的应用.北京:清华大学出版社。2005.八、附录附录一:MATLAB程序:student(1).shijian=13 15 20;student(2).shijian=10 20 18;student(3).shijian=20 16 10;student(4).shijian=8 10 15; %将各学生面试时间存到结构体studentT=paili
9、e(4,student) %求到所有面试顺序所对应的面试时间存到结构体Tfor i=1:string = sprintf(X%d, i) = T(i).rearray; ;eval(string);endend %将所有面试顺序所对应的面试时间保存为矩阵附录1(pailie.m的内容):function T = pailie( k,S) %k为进行全排列的个数A=1:k;Q=perms(A); %对A进行全排列得到的数组m,n=size(Q); %得到Q的大小m a=Q(i,1); b=Q(i,2); c=Q(i,3); d=Q(i,4);T(i).rearray=S(a).shijian;S(b).shijian;S(c).shijian;S(d).shijian; %将全排列得到的面试者面试时间存到T结构体for k=1:Time%d(1,1), k) sprintf( = X%d(1,1);,k) ; %对每一个面试顺序中第一个面试者中秘书初始结束时间Time%d(1,2) = X%d(1,1),k) sprintf(+X%d(1,2); %对每一个面试顺序中第一个面试者中主管复试结束时间Time%d(1,3)+X%d(1,2)+X%d(1,3); %对每一个面试顺序中第一个面试者中经理面试结束时间Time%d(2,1), k) sprin
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1