运筹学实验报告4(运输问题的编程求解)

更新时间:2023-10-01 05:14:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

运筹学实验报告

实验课程:运筹学 实验日期: 6月9日 任课教师: 杨小康 班级:信息与计算科学 姓名:刘静 学号0202110123 一、实验名称: 线性规划模型的编程求解(2) 二、实验目的: 1.掌握Lingo软件中变量定界函数,集合循环函数和@IF(条件,true结果,false结果) 2. 熟悉运输问题的数学模型,掌握简单运输问题数学模型的Lingo软件编程求解的方法,掌握解报告的内容 3. 掌握整数规划、0-1规划和指派问题的计算机求解方法。 三、实验要求: 1.给出所求解问题的数学模型; 2.给出Lingo中的编程程序; 3.能给出最优解和最优值; 四、报告正文(文挡,数据,模型,程序,图形): 1.利用lingo软件求解下面运输问题的最优解。 单 位 销地 运 B1 B2 价 产地 A1 A2 A3 销量 3 1 7 3 11 9 4 6 B3 B4 产量 3 2 10 5 10 8 5 6 7 4 9 程序: model: sets: AH/A1..A3/:A; BD/B1..B4/:B; link(AH,BD):C,X; endsets data: A=7,4,9; B=3,6,5,6; C=3 11 3 10 1 9 2 8 7 4 10 5; enddata min=@sum(link:c*x); @for(AH(i):@sum(BD(j):x(i,j))<=A(i)); @for(BD(j):@sum(AH(i):x(i,j))=B(j)); @for(link:@gin(x)); end 结果:z=85; Global optimal solution found. Objective value: 85.00000 Objective bound: 85.00000 Infeasibilities: 0.000000 Extended solver steps: 0 Total solver iterations: 0 Variable Value Reduced Cost A( A1) 7.000000 0.000000 A( A2) 4.000000 0.000000 A( A3) 9.000000 0.000000 B( B1) 3.000000 0.000000 B( B2) 6.000000 0.000000 B( B3) 5.000000 0.000000 B( B4) 6.000000 0.000000 C( A1, B1) 3.000000 0.000000 C( A1, B2) 11.00000 0.000000 C( A1, B3) 3.000000 0.000000 C( A1, B4) 10.00000 0.000000 C( A2, B1) 1.000000 0.000000 C( A2, B2) 9.000000 0.000000 C( A2, B3) 2.000000 0.000000 C( A2, B4) 8.000000 0.000000 C( A3, B1) 7.000000 0.000000 C( A3, B2) 4.000000 0.000000 C( A3, B3) 10.00000 0.000000 C( A3, B4) 5.000000 0.000000 X( A1, B1) 0.000000 3.000000 X( A1, B2) 0.000000 11.00000 X( A1, B3) 5.000000 3.000000 X( A1, B4) 2.000000 10.00000 X( A2, B1) 3.000000 1.000000 X( A2, B2) 0.000000 9.000000 X( A2, B3) 0.000000 2.000000 X( A2, B4) 1.000000 8.000000 X( A3, B1) 0.000000 7.000000 X( A3, B2) 6.000000 4.000000 X( A3, B3) 0.000000 10.00000 X( A3, B4) 3.000000 5.000000 Row Slack or Surplus Dual Price 1 85.00000 -1.000000 2 0.000000 0.000000 3 0.000000 0.000000 4 0.000000 0.000000 5 0.000000 0.000000 6 0.000000 0.000000 7 0.000000 0.000000 8 0.000000 0.000000 2.求解下面混合整数规划 min z=-3x1+4x2-2x3+5x4; 4x1-x2+2x3-x4=-2; x1+x2+3x3-x4≤14; -2x1+3x2-x3+2x4≥2; x1为整数,x2=0或1,x3≥0,x4无约束; 程序: model: sets: location1/1..4/:A,x; location2/1..3/:B; link(location2,location1):C; endsets data: A=-3,4,-2,5; B=-2,14,2; C=4,-1,2,-1 1,1,3,-1 -2,3,-1,2; enddata min=@sum(location1:A*x); @sum(location1(j):C(1,j)*x(j))=-2; @sum(location1(j):C(2,j)*x(j))<=14; @sum(location1(j):C(3,j)*x(j))>=2; @gin(x(1)); @bin(x(2)); @gin(x(3)); @free(x(4)); end 结果:z=9; Global optimal solution found. Objective value: 9.000000 Objective bound: 9.000000 Infeasibilities: 0.000000 Extended solver steps: 0 Total solver iterations: 6 Model Class: MILP Total variables: 4 Nonlinear variables: 0 Integer variables: 3 Total constraints: 4 Nonlinear constraints: 0 Total nonzeros: 16 Nonlinear nonzeros: 0 Variable Value Reduced Cost A( 1) -3.000000 0.000000 A( 2) 4.000000 0.000000 A( 3) -2.000000 0.000000 A( 4) 5.000000 0.000000 X( 1) 0.000000 17.00000 X( 2) 1.000000 -1.000000 X( 3) 0.000000 8.000000 X( 4) 1.000000 0.000000 B( 1) -2.000000 0.000000 B( 2) 14.00000 0.000000 B( 3) 2.000000 0.000000 C( 1, 1) 4.000000 0.000000 C( 1, 2) -1.000000 0.000000 C( 1, 3) 2.000000 0.000000 C( 1, 4) -1.000000 0.000000 C( 2, 1) 1.000000 0.000000 C( 2, 2) 1.000000 0.000000 C( 2, 3) 3.000000 0.000000 C( 2, 4) -1.000000 0.000000 C( 3, 1) -2.000000 0.000000 C( 3, 2) 3.000000 0.000000 C( 3, 3) -1.000000 0.000000 C( 3, 4) 2.000000 0.000000 Row Slack or Surplus Dual Price 1 9.000000 -1.000000 2 0.000000 5.000000 3 14.00000 0.000000 4 3.000000 0.000000 3.现在要在五个工人中确定四个人来分别完成四项工作中的一项工作。由于每个工人的技术特长不同,他们完成各项工作所需的工时也不同。每个工人完成各项工作所需工时如下表所示,试找出一个工作分配方案,使总工时最小。 工工 人 作 A 9 4 5 7 10 B 4 6 4 5 6 C 3 5 7 2 7 D 7 6 5 3 4 Ⅰ Ⅱ Ⅲ Ⅳ Ⅴ 程序: model: sets: worker/1..5/:A; job/1..4/:B; link(worker,job):C,X; endsets

data: C=9 4 3 7 4 6 5 6 5 4 7 5 7 5 2 3 10 6 7 4; enddata min=@sum(link:c*x); @for(worker(i):@sum(job(j):x(i,j))<=1); @for(job(j):@sum(worker(i):x(i,j))=1); @for(link:@bin(x)); end 结果:z=3+4+3+4=14; 第一个人做第三个工作X( 1, 3) ,第二个人做第一个工作 X( 2, 1),第三个人做第二个工作 X( 3, 2),第四个人做第四个工作 X( 4, 4); Global optimal solution found. Objective value: 14.00000 Objective bound: 14.00000 Infeasibilities: 0.000000 Extended solver steps: 0 Total solver iterations: 0 Variable Value Reduced Cost A( 1) 0.000000 0.000000 A( 2) 0.000000 0.000000 A( 3) 0.000000 0.000000 A( 4) 0.000000 0.000000 A( 5) 0.000000 0.000000 B( 1) 0.000000 0.000000 B( 2) 0.000000 0.000000 B( 3) 0.000000 0.000000 B( 4) 0.000000 0.000000 C( 1, 1) 9.000000 0.000000 C( 1, 2) 4.000000 0.000000 C( 1, 3) 3.000000 0.000000 C( 1, 4) 7.000000 0.000000 C( 2, 1) 4.000000 0.000000 C( 2, 2) 6.000000 0.000000 C( 2, 3) 5.000000 0.000000 C( 2, 4) 6.000000 0.000000 C( 3, 1) 5.000000 0.000000 C( 3, 2) 4.000000 0.000000 C( 3, 3) 7.000000 0.000000 C( 3, 4) 5.000000 0.000000 C( 4, 1) 7.000000 0.000000 C( 4, 2) 5.000000 0.000000 C( 4, 3) 2.000000 0.000000 C( 4, 4) 3.000000 0.000000 C( 5, 1) 10.00000 0.000000 C( 5, 2) 6.000000 0.000000 C( 5, 3) 7.000000 0.000000 C( 5, 4) 4.000000 0.000000 X( 1, 1) 0.000000 9.000000 X( 1, 2) 0.000000 4.000000 X( 1, 3) 1.000000 3.000000 X( 1, 4) 0.000000 7.000000 X( 2, 1) 1.000000 4.000000 X( 2, 2) 0.000000 6.000000 X( 2, 3) 0.000000 5.000000 X( 2, 4) 0.000000 6.000000 X( 3, 1) 0.000000 5.000000 X( 3, 2) 1.000000 4.000000 X( 3, 3) 0.000000 7.000000 X( 3, 4) 0.000000 5.000000 X( 4, 1) 0.000000 7.000000 X( 4, 2) 0.000000 5.000000 X( 4, 3) 0.000000 2.000000 X( 4, 4) 1.000000 3.000000 X( 5, 1) 0.000000 10.00000 X( 5, 2) 0.000000 6.000000 X( 5, 3) 0.000000 7.000000 X( 5, 4) 0.000000 4.000000 Row Slack or Surplus Dual Price 1 14.00000 -1.000000 2 0.000000 0.000000 3 0.000000 0.000000 4 0.000000 0.000000 5 0.000000 0.000000 6 1.000000 0.000000 7 0.000000 0.000000 8 0.000000 0.000000 9 0.000000 0.000000 10 0.000000 0.000000 4. 某市消防队布点问题。该市共有6个区,每个区都可以建消防站,市政府希望设置的消防站最少,但必须满足在城市任何地区发生火警时,消防车要在15min内赶到现场。据实地测定,各区之间消防车行驶的时间见表,请制定一个布点最少的计划。 地区1 地区2 地区3 地区4 地区5 地区6 地区1 0 10 16 28 27 20 地区2 10 0 24 32 17 10 地区3 16 24 0 12 27 21 地区4 28 32 12 0 15 25 地区5 27 17 27 15 0 14 地区6 20 10 21 25 14 0 满足条件的约束:x1+x2>=1; x1+x2+x6>=1; x3+x4>=1; x3+x4+x5>=1; x4+x5>=1; x2+x6>=1; 程序: model: sets: place1/1..6/:x; place2/1..6/; link(place2,place1):C; endsets data: C=1 1 0 0 0 0 1 1 0 0 0 1 0 0 1 1 0 0 0 0 1 1 1 0 0 0 0 1 1 0 0 1 0 0 0 1; enddata min=@sum(place1:x); @for(place2(i):@sum(place1(j):C(i,j)*x(j))>=1); @for(place1:@bin(x)); end 结果:z=2;选二和四地区 Global optimal solution found. Objective value: 2.000000 Objective bound: 2.000000 Infeasibilities: 0.000000 Extended solver steps: 0 Total solver iterations: 0 Model Class: PILP Total variables: 6 Nonlinear variables: 0 Integer variables: 6 Total constraints: 7 Nonlinear constraints: 0 Total nonzeros: 20 Nonlinear nonzeros: 0 Variable Value Reduced Cost X( 1) 0.000000 1.000000 X( 2) 1.000000 1.000000 X( 3) 0.000000 1.000000 X( 4) 1.000000 1.000000 X( 5) 0.000000 1.000000 X( 6) 0.000000 1.000000 C( 1, 1) 1.000000 0.000000 C( 1, 2) 1.000000 0.000000 C( 1, 3) 0.000000 0.000000 C( 1, 4) 0.000000 0.000000 C( 1, 5) 0.000000 0.000000 C( 1, 6) 0.000000 0.000000 C( 2, 1) 1.000000 0.000000 C( 2, 2) 1.000000 0.000000 C( 2, 3) 0.000000 0.000000 C( 2, 4) 0.000000 0.000000 C( 2, 5) 0.000000 0.000000 C( 2, 6) 1.000000 0.000000 C( 3, 1) 0.000000 0.000000 C( 3, 2) 0.000000 0.000000 C( 3, 3) 1.000000 0.000000 C( 3, 4) 1.000000 0.000000 C( 3, 5) 0.000000 0.000000 C( 3, 6) 0.000000 0.000000 C( 4, 1) 0.000000 0.000000 C( 4, 2) 0.000000 0.000000 C( 4, 3) 1.000000 0.000000 C( 4, 4) 1.000000 0.000000 C( 4, 5) 1.000000 0.000000 C( 4, 6) 0.000000 0.000000 C( 5, 1) 0.000000 0.000000 C( 5, 2) 0.000000 0.000000 C( 5, 3) 0.000000 0.000000 C( 5, 4) 1.000000 0.000000 C( 5, 5) 1.000000 0.000000 C( 5, 6) 0.000000 0.000000 C( 6, 1) 0.000000 0.000000 C( 6, 2) 1.000000 0.000000 C( 6, 3) 0.000000 0.000000 C( 6, 4) 0.000000 0.000000 C( 6, 5) 0.000000 0.000000 C( 6, 6) 1.000000 0.000000 Row Slack or Surplus Dual Price 1 2.000000 -1.000000 2 0.000000 0.000000 3 0.000000 0.000000 4 0.000000 0.000000 5 0.000000 0.000000 6 0.000000 0.000000 7 0.000000 0.000000

本文来源:https://www.bwwdw.com/article/4u2d.html

Top