飞行计划问题我郑重承诺,本论文的内容均为原创,没有任何抄袭他人成果的行为,也不存在他人代写论文和程序的行为。引用他人成果或公开资料的部分都已经按照正确的格式在参考文献中标出。作者签字得分统计学生填写老师填写姓名学号工作所占比例得分分别得分摘要本文针对飞行计划的经费问题,通过对被困甲方飞机及飞行员优化配置的分析,给出了关于飞行计划问题及资源优化配置等问题的一个数学模型。甲方飞行员飞行计划可用线性规划的方法实现,求解目标为在满足供给的前提下,使总的费用最低的最优解。总费用为购买新飞机的花费、闲置的熟练飞行员报酬、教练和飞行员报酬(包括培训费用)、执行飞行任务的熟练飞行员报酬、休假期间的熟练飞行员报酬之和,其中执行飞行任务的熟练飞行员报酬和休假期间的熟练飞行员报酬是固定的,总费用不会受它们影响。所以在计算总费用时,可以直接将执行飞行任务的熟练飞行员报酬和休假期间的熟练飞行员报酬算出结果加到总费用中。对于这一类约束最优解的模型,首先,我们可以根据题目给出要求写出对应的目标函数,其次再根据题目中的约束条件建立相应的约束函数,最后LINGO软件输入相应的代码,求解得到了在经费最少条件下飞机和飞行员的合理配置。此模型不仅为飞行计划问题及资源优化配置等问题给出了一个合理的解决方案,还为解决此类问题提供了一个思想依据,具有重要的实用意义。关键字:飞行员数量飞机数量教练数量线性规划方法资源优化配置LINGO工具一、问题重述在甲、乙双方的一场战争中,一部分甲方部队被乙方部队包围长达4个月。由于乙方封锁了所有水陆交通要道,被包围的甲方部队只能依靠空中交通维持供给。运送4个月的供给分别需要2次,3次,3次4次飞行,每次飞行编队由50架飞机组成(每架飞机需要3名飞行员),可以运送10万吨物资。每架飞机每个月只能飞行一次,每名飞行员每个月也只能飞行一次。在执行完运输任务后的返回途中有20%的飞机会被乙方部队击落,相应的飞行员也因此牺牲或失踪。在第1个月开始时,甲方拥有110架飞机和330名熟练的飞行员。在每个月开始时,甲方可以招聘新飞行员和购买新飞机。新飞机必须经过一个月的检查后才可以投入使用,新飞行员必须在熟练飞行员的指导下经过一个月的训练才能投入飞行。每名熟练飞行员可以作为教练每个月指导20名飞行员(包括他自己在内)进行训练。每名飞行员在完成一个月的飞行任务后,必须有一个月的带薪假期,假期结束后才能再投入飞行。已知各项费用(单位略去)如表3所示,请为甲方安排一个飞行计划。表3费用表第一个月第二个月第三个月第四个月新飞机价格200.0195.0190.0185.0闲置的飞行员报酬7.06.96.86.7教练和新飞行员报酬(包括培训费用)10.09.99.89.7执行飞行任务的熟练飞行员报酬9.08.99.89.7休假期间的熟练飞行员报酬5.04.94.84.7如果每名熟练飞行员可以作为教练每个月指导不超过20名飞行员(包括他自己在内)进行训练,模型和结果有哪些改变?二、模型假设与符号说明1.模型假设:(1)、假设没有援军等其它因素来干扰甲乙双方的战争;每月甲方的空中运送计划没有其他因素影响,空运的物资、次数及飞机数目不变。(2)、飞行员在执行完运输任务后的返回途中有20%的飞机会被乙方部队击落,则假设每个月甲方执行飞行计划时,无任何飞机被击落。另外在训练、运送物资及闲置等时候飞机也不会出事。(3)、假设新飞机经一个月检查后都可以投入使用;新飞行员经一个月训练后都可以投入飞行,而且被训练后的新飞行员便成为了熟练飞行员。(4)、假设飞行员数目只会因为飞机被击落而减少,不受疾病、退休等因素影响。(5)、假设新飞行员训练时不占用飞机,新飞机检查时不占用飞行员。2.符号说明符号变量说明xi第i个月新购买的飞机架数,i=1、2、3、4;yi第i个月闲置的飞机架数,i=1、2、3、4;ui第i个月飞行员中教练与新飞行员的人数,i=1、2、3、4;vi第i个月闲置的熟练飞行员人数,i=1、2、3、4;三、建立模型(1)问题分析这个问题条件较多,由题目可以看出,执行飞行任务以及执行飞行任务后休假的熟练飞行员的数量是确定的,所以这部分的报酬是固定的,在优化目标中可以直接算出。根据题目要求,则每月参与飞行任务的飞机数量依次为100,150,150和200架,这些飞机最后能返回甲方,参与下个月的飞行任务的数量依次为80,120,120和160。每月参与飞行任务的飞行员数量依次为300,450,450和600人,这些飞行员最后能返回甲方的人数依次为240,360和360,但是这些飞行员紧接着的一个月是休假的,这些因素都会影响下个月飞行任务的飞机和飞行员的安排。如果每名熟练飞行员可以作为教练每个月指导不超过20名飞行员(包括他自己在内)进行训练,即每位教练可以训练n名新飞行员,191n。(2)决策变量设4个月开始时甲方新购买的飞机数量为xi架,闲置的飞机数量分别为yi架,4个月中,飞行员中教练和新飞行员数量分别为ui人,闲置的熟练飞行员数量分别为vi人,i=1,2,3,4.(3)目标函数优化目标是4321432143217.68.69.677.98.99.9104185190195200Minvvvvuuuuxxxx(4)约束条件需要考虑的约束条件包括:i)飞行数量限制4个月中执行飞行任务的飞机分别为100,150,150,200(架),但只有80,120,120,160(架)能够返回来供下个月使用。因此可得到如下的式子第一个月:;1101001y第二个月:;80150112xyy第三个月:;120150223xyy第四个月:;120200334xyyii)飞行员数量限制。4个月中执行飞行任务的飞机员分别为300,450,450,600(人),但只有240,360,360,480(人)能够返回,但是下个月一定休假。因此可得到如下的式子第一个月:;3300.0530011vu第二个月:;05.04501122vuvu第三个月:;2400.054502233vuvu第四个月:.3600.056003344vuvu(5)问题讨论如果每名熟练飞行员可以作为教练每个月指导部超过20名飞行员进行训练,则应将教练与新飞行员分开。假设4个月飞行员中教练为4321,,,uuuu(人),新飞行员数量分别为4321,,,(人).。其它符号不变,飞行员的数量限制约束为第一个月:;33030011vu第二个月:;20,4501111122uwwvuvu第三个月:;20,2404502222233uwwvuvu第四个月:.20,3606003333344uwwvuvu四、模型求解运用LINGO软件求解model:sets:col/1..4/:c1,c2,c3,x,u,v,y;row/1..3/:b1,b2;endsetsdata:c1=200195190185;c2=109.99.89.7;c3=76.96.86.7;b1=703080;b2=450210240;enddatamin=@sum(col:c1*x+c2*u+c3*v);y(1)=10;@for(col(i)|i#lt#4:y(i)+x(i)-y(i+1)=b1(i));0.05*u(1)+v(1)=30;@for(col(i)|i#lt#4:u(i)+v(i)-0.05*u(i+1)-v(i+1)=b2(i));@for(col:@gin(x);@gin(u);@gin(v);@gin(y));end结果如下:X(1)60.00000200.0000X(2)30.00000195.0000X(3)80.00000190.0000X(4)0.000000185.0000U(1)460.000010.00000U(2)220.00009.900000U(3)240.00009.800000U(4)0.0000009.700000V(1)7.0000007.000000V(2)6.0000006.900000V(3)4.0000006.800000V(4)4.0000006.700000Y(1)10.000000.000000Y(2)0.0000000.000000Y(3)0.0000000.000000Y(4)0.0000000.000000B1(1)70.000000.000000B1(2)30.000000.000000B1(3)80.000000.000000B2(1)450.00000.000000B2(2)210.00000.000000B2(3)240.00000.000000RowSlackorSurplusDualPrice142324.40-1.00000020.0000000.00000030.0000000.00000040.0000000.00000050.0000000.00000060.0000000.00000070.0000000.00000080.0000000.00000090.0000000.000000即求得的最优解为42324.4,0,10,4,3,6,7,0,240,220,460,0,80,30,604321432143214321目标函数为yyyyvvvvuuuuxxxx再由问题讨论(5),将目标函数做相应修改,输入LINGO如下:model:sets:col/1..4/:c1,c2,c3,x,u,v,w,y;row/1..3/:b1,b2;endsetsdata:c1=200195190185;c2=109.99.89.7;c3=76.96.86.7;b1=703080;b2=450210240;enddatamin=@sum(col:c1*x+c2*(u+w)+c3*v);y(1)=10;@for(col(i)|i#lt#4:y(i)+x(i)-y(i+1)=b1(i));u(1)+v(1)=30;@for(col(i)|i#lt#4:u(i)+v(i)+w(i)-u(i+1)-v(i+1)=b2(i));@for(col(i)|i#lt#4:w(i)20*u(i));@for(col:@gin(x);@gin(u);@gin(v);@gin(w);@gin(y));end结果如下:X(1)60.00000200.0000X(2)30.00000195.0000X(3)80.00000190.0000X(4)0.000000185.0000U(1)22.0000010.00000U(2)11.000009.900000U(3)12.000009.800000U(4)0.0000009.700000V(1)8.0000007.000000V(2)0.0000006.900000V(3)0.0000006.800000V(4)0.0000006.700000W(1)431.000010.00000W(2)211.00009.900000W(3)228.00009.800000W(4)0.0000009.700000Y(1)10.000000.000000Y(2)0.0000000.000000Y(3)0.0000000.000000Y(4)0.0000000.000000B1(1)70.000000.000000B1(2)30.000000.000000B1(3)80.000000.000000B2(1)450.00000.000000B2(2)210.00000.000000B2(3)240.00000.000000RowSlackorSurplusDualPrice142185.80-1.00000020.0000000.00000030.0000000.00000040.0000000.00000050.0000000.00000060.0000000.00000070.0000000.00000080.