用lingo求解数学规划模型实例

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

用lingo求解数学规划模型实例一、lingo中的输入输出函数@text函数该函数被用在数据部分,用来将所需的数据输出至文本文件中。其语法为:@text(filename)这里filename是文件名,可以采用相对路径和绝对路径两种表示方式。如果忽略filename,那么数据就被输出到标准输出设备(大多数情形都是屏幕)。@text函数仅能出现在模型数据部分的一条语句的左边。如在例6.7(职员时序安排模型)一项工作一周7天都需要有人(比如护士工作),每天(周一至周日)所需的最少职员数为20、16、13、16、19、14和12,并要求每个职员一周连续工作5天,试求每周所需最少职员数,并给出安排。注意这里我们考虑稳定后的情况。决策变量:xi第i周天开始上班的人数;目标函数:71miniixjiijdxts511)7,1mod(..7,,2,1jsets:day/mon..sun/:x,d;endsets[obj]min=@sum(day:x);@for(day(j):@sum(day(i)|i#le#5:x(@wrap(j+i+2,7)))=d);@for(day:@gin(x));data:d=20,16,13,16,19,14,12;@text(F:\数学软件\lingoli\li607.txt)=day'开始上班的人数为'x;Enddata,min71iix,jiijdxts511)7,1mod(..7,,2,1jMON开始上班的人数为8.0000000TUE开始上班的人数为2.0000000WED开始上班的人数为0.0000000THU开始上班的人数为6.0000000FRI开始上班的人数为3.0000000SAT开始上班的人数为3.0000000SUN开始上班的人数为0.0000000@file函数该函数用从外部文件中输入数据,可以放在模型中任何地方。语法格式为@file(filename)这里filename是文件名,可以采用相对路径和绝对路径两种表示方式。执行一次@file输入1个记录,记录之间的分隔符为~。@table函数该函数以表格形式输出数据,只能在数据段(DATA)中使用。二、线性规划模型特点:目标函数与约束条件均为一次的。线性规划的一般模型niiixcz1min..tsniiijxa1ib),(),,2,1(mjiiihxl),,2,1(ni例1(运输规划模型)某产品有6个产地Ai和8个销售地Bj(i=1,2,…,6,j=1,2,…,8),产地到销地的单位运价见下表,问如何安排运输可使运输总费用最小。B1B2B3B4B5B6B7B8产量A16267425960A24953858255A35219743351A47673927143A52395726541A65522814352销量3537223241324338单位运价表:产地总产量和:302销地总销量和:280产大于销的模型。产地Ai:总产量ai销地Bi:总销量bi产地Ai到销地Bj:单位运价cij运输量xiji=1,2,…,6;j=1,2,…,8决策变量:产地Ai到销地Bj的运输量xij从产地Ai到销地Bj的运费cijxij从Ai到各销地的运费81jijijxc总运费6181ijijijxc目标函数:6811minijijijcx产地Ai:总产量ai销地Bi:总销量bi产地Ai到销地Bj:单位运价cij运输量xiji=1,2,…,6;j=1,2,…,8产地总产量和:302销地总销量和:280为产大于销的模型。目标函数:6811minijijijcx运往Bj的总运量:jiijbx61从Aj运出的总量:81ijijxa对变量xij的限制:0ijxi=1,2,…,6;j=1,2,…,8sets:chdi/w1..w6/:a;xdi/v1..v8/:b;link(chdi,xdi):c,x;endsets[obj]min=@sum(link:c*x);@for(xdi(j):@sum(chdi(i):x(i,j))=b(j));@for(chdi(i):@sum(xdi(j):x(i,j))=a(i));data:a=60,55,51,43,41,52;b=35,37,22,32,41,32,43,38;c=6,2,6,7,4,2,5,9,4,9,5,3,8,5,8,2,5,2,1,9,7,4,3,3,7,6,7,3,9,2,7,1,2,3,9,5,7,2,6,5,5,5,2,2,8,1,4,3;@text()=@table(x);enddata6811minijijijcxs.t:81ijijxajiijbx610ijxV1V2V3V4V5V6V7V8W10190041000W2100320000W30110000400W4000005038W5347000000W60022002730Objectivevalue:664.0000例2(指派问题)九种不同型号的装备配给9个部队,由于各部队的特点与条件不同,不同的装备在不同部队中产生效能不同,问如何分配可保证每个部队各分得一种装备,且使总效能最大(装备在不同部队的效能见下表)。0.240.420.150.460.340.690.030.570.690.310.040.600.690.110.240.450.350.270.310.240.080.140.540.610.370.480.340.490.060.280.130.650.410.550.250.360.630.150.310.600.060.410.470.190.310.450.020.370.140.690.290.610.180.460.450.070.260.150.180.430.550.660.080.320.240.580.640.430.450.090.050.200.330.560.410.130.650.070.220.460.11123456789ABCDEFGHI装备部队设,0,1ijx第i个部队分配第j种装备目标函数:9191maxijijijxa:..ts191iijx191jijxxij=0或1(i,j=1,2,…,9)第i个部队不分配第j种装备9191maxijijijxa191iijx191jijxxij=0或1(i,j=1,2,…,9)sets:army/ar1..ar9/;equi/eq1..eq9/;link(army,equi):a,x;endsets[obj]max=@sum(link:a*x);@for(equi(i):@sum(army(j):x(i,j))=1);@for(army(j):@sum(equi(i):x(i,j))=1);@for(link:@bin(x));data:a=@file(F:\数学软件\lingoli\dali002.txt);@text(F:\数学软件\lingoli\li002.txt)=@table(x);enddataEQ1EQ2EQ3EQ4EQ5EQ6EQ7EQ8EQ9AR1000000001AR2000100000AR3000001000AR4000010000AR5100000000AR6000000100AR7000000010AR8001000000AR90100000000.240.420.150.460.340.690.030.570.690.310.040.600.690.110.240.450.350.270.310.240.080.140.540.610.370.480.340.490.060.280.130.650.410.550.250.360.630.150.310.600.060.410.470.190.310.450.020.370.140.690.290.610.180.460.450.070.260.150.180.430.550.660.080.320.240.580.640.430.450.090.050.200.330.560.410.130.650.070.220.460.11123456789ABCDEFGHI装备部队例3(合理设计海岛旅游线路问题)某景区由5个海岛A,B,C,D,E组成。海岛之间及与大陆港口P的距离由表1给出,每个海岛的游览时间为半天,C,D两个岛屿有旅馆可供住宿。游览的过程为:游船早晨由港口P出发,每半天游览一个景点。如果行程超过一天,则晚上选择岛屿C或D住宿。游览结束后回到港口P。景点每次接待游客的能力由表2给出,目前旅行社可选择大、小两种游船用于旅游。大型可载乘客100人,小型可载乘客40人。大型游船的每公里客均费用是小型游船的85%,但景点E只能停泊小型游船。客均旅行费用正比于船的行程。针对问题一、二、三、四分别建立数学模型,完成规划旅游线路的设计,要求在尽可能满足各景点最大接待能力的条件下,使旅行社的成本尽可能低?问题一:若该公司只经营一日游业务,只选择小型船,应如何规划旅游线路?问题二:若该公司只经营一日游业务,可同时选择小型船和大型船,应如何规划旅游线路?问题三:若该公司同时经营一日游、二日游业务,只选择小型船,应如何规划旅游线路?问题四:若该公司同时经营一日游、二日游业务,可同时选择小型船和大型船,应如何规划旅游线路?表1:岛屿及港口之间距离(km)ABCDE大陆港口PA4621506070B303255115C485390D2195E85景点旅游(半天)住宿(每晚)A240B470C250280D280200E210表2:景点每半天可接待游客的人数假设游船都是满载的。问题一:若该公司只经营一日游业务,只选择小型船,应如何规划旅游线路?景点旅游(半天)住宿(每晚)A240B470C250280D280200E210表2:景点每半天可接待游客的人数尽可能满足景点最大接待能力:各景点半天最多接待船数Si:A:S1=6B:S2=11C:S3=6D:S4=7E:S5=5决策变量:航程为P—i—j—P的船数xij岛i—岛j的人均费用:cij表1:岛屿及港口之间距离(km)ABCDE大陆港口PA4621506070B303255115C485390D2195E85港口P—岛i的人均费用:pi航程为P—i—j—P的单船费用:40(pi+cij+pj)旅行社总成本:551140()iijjijijpcpx目标函数:5511min40()iijjijijpcpx约束:51,ijijijxS1,2,3,4,5i51,ijjiijxS1,2,3,4,5jxij为正整数5511min40()iijjijijpcpx51,ijijijxS51,ijjiijxS,1,2,3,4,5ijxij为正整数,..stsets:dao/dao1..dao5/:p,s;link(dao,dao):c,x;endsetsmin=@sum(link(i,j):40*((p(i)+c(i,j)+p(j))*x(i,j)));@for(dao(i):@sum(dao(j):x(i,j))=s(i));@for(dao(j):@sum(dao(i):x(i,j))=s(j));@for(link(i,i):x(i,i)=0);@for(link:@gin(x));data:p=70,115,90,95,85;s=6,11,6,7,5;c=0,46,21,50,60,46,0,30,32,55,21,30,0,48,53,50,32,48,0,21,60,55,53,21,0;@text()=@table(x);enddataDAO1DAO2DAO3DAO4DAO5DAO103300DAO260320DAO306000DAO40

1 / 53
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功