资源描述:
《实验十(整数规划)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、大学数学实验实验报告——整数规划数学实验实验十整数规划一、实验目的1、练习建立实际问题的整数规划模型。2、掌握用LINGO软件求解整数规划问题。二、实验内容项目一:(二次指派问题)某公司指派n个员工到n个城市工作(每个城市单独一人),希望使所花费的电话费用尽可能的小。n个员工两两之间每个月通话的时间表示在下面的矩阵的上三角部分(因为通话的时间矩阵是对称的,没有必要写出下三角部分),n个城市两两之间的通话费率表示在下面的矩阵的下三角部分(同样道理,因为通话费率矩阵是对称的,没有必要写出上三角部分)。试求解该二次指派问题。05379392907078323357480935
2、339362100841804864608875985466048038679430795682388605563628378055676628890问题分析及模型建立:这是一个1、0规划问题。我们首先建立一个员工和城市的矩阵???,其中矩阵的行表示员工,矩阵的列表示城市,而且由于一个城市只能要一个员工,一个员工只能去一个城市,矩阵每一行、每一列只能有一个数字为1,其他的地方都为0,是一个稀疏矩阵。同时我们建立员工之间的通话时间矩阵T,和城市之间的通话费率矩阵C。设员工i被分到了j城市,员工m被分到了n城市,那么员工i和员工m的通话时间为
3、2014/5/10?,城市j和城市n之间的通话费率?,这两个员工的通话总费用为??。
4、????????由此我们可以得出,这10个员工之间的通话总费用为:实验报告10101010f=∑∑∑∑?????????????=1?=1?=1?=1其中,只有当???=???=1时,才会有通话费用。大学数学实验1数学实验实验十整数规划解决方案:编写LINGO程序求解该优化问题如下:MODEL:SETS:T/1..10/;S/1..10/;DD(T,S):TIME,FEE,X;ENDSETSDATA:TIME=0537939290507832335737093533937890841804933808
5、875932548048039331840795233878705595905095050734935550;FEE=074688866570826568364801044726762100669326864606488685466038328679430678682388608863628378095676628890;ENDDATAMIN=0.5*@SUM(DD(i,j):@SUM(DD(m,n):X(i,j)*X(m,n)*TIME(i,m)*FEE(j,n)));@FOR(T(i):@SUM(S(j):X(i,j))=1;);@FOR(S(j):@SUM(S(i):X(i,j)
6、)=1;);@FOR(DD:@BIN(X););END运行得到结果为(优化报告的很一小部分):Globaloptimalsolutionfound.Objectivevalue:1142.000Objectivebound:1142.000Infeasibilities:0.000000Extendedsolversteps:1Totalsolveriterations:191122014/5/10
7、VariableValueReducedCostX(1,9)1.00000011.99994X(2,1)1.0000000.000000X(3,8)1.00000047.99983实验报告
8、X(4,3)1.0000000.000000X(5,6)1.0000007.999923X(6,7)1.0000004.999862X(7,2)1.0000000.000000大学数学实验X(8,5)1.00000020.0000722数学实验实验十整数规划X(9,4)1.000000-13.00001X(10,10)1.000000-3.999831未显示的X的值均为0。以上数据是在历时7小时29分01秒后解出来的!!!LINGO版本为LINGO11。使用了全局最优求解方案。原始数据量较大,将有用的信息整理成表格直观的表示出来如下:员工1员工2员工3员工4员工5员工6员工7员工8员工
9、9员工10城市1城市2城市3城市4城市5城市6城市7城市8城市9城市10涂红表示该员工在该城市。此方案即为最优解,话费总额最小为1142元。2014/5/10
10、事后我又在未使用全局求解的条件下进行了求解,LINGO选择的求解方法是分枝定法(B-B),可以求得局部最优解,求解时间大大缩短,仅需数分钟至十几分钟,但求解结果和初值的选择有关,经过多次实验,每次的求解过程和结果都不同,说明每次的迭代初值可能不同,求出的结果有1178,实验报告1145,