运筹学实验报告 徐新闻(20xx1231)

时间:2024.3.19

姓       名:          徐新闻              

学       号:         20091231         

班       级:       工业工程09-02           

指 导 老 师:          杨爱峰         


相关问题说明:

一、   实验性质和教学目的

本实验是运筹学课内安排的上机操作实验。

目的在于了解、熟悉计算机Lingo软件在运筹学模型求解中的作用,激发学习兴趣,提高学习效果,增强自身的动手能力,提高实际应用能力。

二、   实验基本要求

要求学生:

1. 实验前认真做好理论准备,仔细阅读实验指导书;

2. 遵从教师指导,认真完成实验任务,按时按质提交实验报告。

三、   主要参考资料

1.LINGO软件

2. LINGO8.0及其在环境系统优化中的应用,天津大学出版社,2005

3. 优化建模与LINDO/LINGO软件,清华大学出版社,2005

4.运筹学编写组主编,运筹学(修订版),清华大学出版社,1990

5.蓝伯雄主编,管理数学(下)—运筹学,清华大学出版社,1997

6.胡运权主编,运筹学习题集(修订版),清华大学出版社,1995

7.胡运权主编,运筹学教程(第二版),清华大学出版社,2003


实验内容

1、线性规划问题:

(1) 给出原始代码;(2) 计算结果(包括灵敏度分析,求解结果粘贴);

(3) 回答下列问题(手写):

a) 最优解及最优目标函数值是多少;

b) 资源的对偶价格各为多少,并说明对偶价格的含义;

c) 为了使目标函数值增加最多,让你选择一个约束条件,将它的常数项增加一个单位,你将选择哪一个约束条件?这时目标函数值将是多少?

d) 对x2的目标函数系数进行灵敏度分析;

e) 对第2个约束的约束右端项进行灵敏度分析;

f ) 结合本题的结果解释“Reduced Cost”的含义。

1、解:

(1)

max=8*x1+6*x2;

9*x1+8*x2<=12;

7*x1+11*x2<=24;

9*x1+11*x2<=13;

(2)  Global optimal solution found.

  Objective value:                              10.66667

  Total solver iterations:                             2

                       Variable           Value        Reduced Cost

                             X1        1.333333            0.000000

                             X2        0.000000            1.111111

                            Row    Slack or Surplus      Dual Price

                              1        10.66667            1.000000

                              2        0.000000           0.8888889

                              3        14.66667            0.000000

                              4        1.000000            0.000000

(3) a)最优解是10.66667 最优目标函数值 x1=1.333333 x2=0.000000

    b)

 2、运输问题:

已知6个发点8个收点的最小费用运输问题。产销量及单位运价如下表。

(1) 给出原始代码;(2) 计算结果(决策变量求解结果粘贴)

解:

(1)

!6发点8收点运输问题;

sets:

  warehouses/wh1..wh6/: capacity;

  vendors/v1..v8/: demand;

  links(warehouses,vendors): cost, volume;

endsets

!目标函数;

   min=@sum(links: cost*volume);

!需求约束;

   @for(vendors(J):

     @sum(warehouses(I): volume(I,J))=demand(J));

!产量约束;

   @for(warehouses(I):

     @sum(vendors(J): volume(I,J))>=capacity(I));

!这里是数据;

data:

   capacity=55 47 42 52 41 32;

   demand=60 55 51 43 41 52 43 38;

   cost=6 2 9 7 4 2 5 9

       4 5 5 3 8 5 3 2

       5 2 1 3 7 4 8 3

       7 6 7 9 9 2 7 1

       2 3 6 5 7 2 6 5

       5 9 2 2 8 1 4 3;

enddata

(2)  Global optimal solution found.

        Objective value:                              768.0000

        Total solver iterations:                            11

       VOLUME( WH1, V2)        55.00000            0.000000

       VOLUME( WH1, V5)        41.00000            0.000000

       VOLUME( WH2, V4)        4.000000            0.000000

       VOLUME( WH2, V7)        43.00000            0.000000

        VOLUME( WH4, V6)        14.00000            0.000000

VOLUME( WH4, V8)        38.00000            0.000000

        VOLUME( WH5, V1)        60.00000            0.000000

       VOLUME( WH6, V4)        39.00000            0.000000

       VOLUME( WH6, V6)        38.00000            0.000000

3、一般整数规划问题:

某服务部门各时段(每2h为一时段)需要的服务员人数见下表。按规定,服务员连续工作8h(即四个时段)为一班。现要求安排服务员的工作时间,使服务部门服务员总数最少。

(1) 给出原始代码;(2) 计算结果(决策变量求解结果粘贴)

解:

(1)

sets:    

  times/1..8/: required,start;

endsets

data:

  !每个时段所需的最少职员数;

  required = 10 8 9 11 13 8 5 3;

enddata

!最小化每个时段所需职员数;

  min=@sum(hours: start);

  @for(hours(J):

    @sum(hours(I) | I #le# 4:

      start(@wrap(J+I+4,8))) >= required(J));

(2) Global optimal solution found.

  Objective value:                              23.00000

  Total solver iterations:                             4

                       Variable           Value        Reduced Cost

                   REQUIRED( 1)        10.00000            0.000000

                   REQUIRED( 2)        8.000000            0.000000

                   REQUIRED( 3)        9.000000            0.000000

                   REQUIRED( 4)        11.00000            0.000000

                   REQUIRED( 5)        13.00000            0.000000

                   REQUIRED( 6)        8.000000            0.000000

                   REQUIRED( 7)        5.000000            0.000000

                   REQUIRED( 8)        3.000000            0.000000

                      START( 1)        5.000000            0.000000

                      START( 2)        5.000000            0.000000

                      START( 3)        8.000000            0.000000

                      START( 4)        0.000000            0.000000

                      START( 5)        0.000000            0.000000

                      START( 6)        0.000000            0.000000

                      START( 7)        5.000000            0.000000

                      START( 8)        0.000000            0.000000

                            Row    Slack or Surplus      Dual Price

                              1        23.00000           -1.000000

                              2        0.000000           -1.000000

                              3        7.000000            0.000000

                              4        9.000000            0.000000

                              5        7.000000            0.000000

                              6        0.000000           -1.000000

                              7        0.000000            0.000000

                              8        0.000000            0.000000

                              9        2.000000            0.000000

4、指派问题:

已知如下效率矩阵,求极大化指派问题。

(1) 给出原始代码;(2) 计算结果(决策变量求解结果粘贴)

解:

1

  !5个工人,5个工作的分配问题;

sets:   

  workers/w1..w5/;

  jobs/j1..j5/;

  links(workers,jobs): cost,volume;

endsets

  !目标函数;

  min=@sum(links: cost*volume);

  !每个工人只能有一份工作;

  @for(workers(I):

    @sum(jobs(J): volume(I,J))=1;

  );

  !每份工作只能有一个工人;

  @for(jobs(J):

    @sum(workers(I): volume(I,J))=1;

  );

data:

  cost= 4 8 7  15 12

        7 9 17 14 10

        6 9 12  8  7

        6 7 14  6  10

        6 9 12 10  6;

enddata

(2) 

                          Global optimal solution found.

  Objective value:                              34.00000

  Total solver iterations:                            10

                                            Row    Slack or Surplus      Dual Price

                              1        34.00000           -1.000000

                              2        0.000000           -1.000000

                              3        0.000000           -7.000000

                              4        0.000000           -6.000000

                              5        0.000000           -5.000000

                              6        0.000000           -6.000000

                              7        0.000000            0.000000

                              8        0.000000           -2.000000

                              9        0.000000           -6.000000

                             10        0.000000           -1.000000

                             11        0.000000            0.000000

                              7        0.000000            0.000000

                              8        0.000000           -2.000000

                              9        0.000000           -6.000000

                             10        0.000000           -1.000000

                             11        0.000000            0.000000

5、一维资源分配问题:

某工业部门根据国家计划的安排,拟将某种高效率的设备五台,分配给所属的甲、乙、丙三个工厂,各工厂若获得这种设备之后,可以为国家提供的盈利如下表所示。问:这五台设备如何分配给各工厂,才能使国家得到的盈利最大。

(1) 给出原始代码;(2) 计算结果(决策变量求解结果粘贴)

解:

(1)

sets:

   !工厂;   

   factory/1 2 3/;

   !设备数量;

   facility_amount/1..6/;

   !分配方案;

   arcs(factory,facility_amount):benefit,selection,status;

endsets

data:

   !盈利;

   benefit=0,5,15,40,80,90

           0,5,15,40,60,70

           0,4,26,40,45,50;

   !待分配设备数量;  

   status=0,1,2,3,4,5

          0,1,2,3,4,5

          0,1,2,3,4,5;

enddata

  

   [obj]max=@sum(arcs(i,j):benefit(i,j)*selection(i,j));

   !决策变量为0-1变量;  

   @for(arcs:@bin(selection));

   !第i个工厂必须且只能选择一个设备分配方案;  

   @for(factory(i):@sum(arcs(i,k):selection(i,k))=1);

   !3个工厂分配设备数之和等于设备总量;  

   @sum(arcs(i,j):status(i,j)*selection(i,j))=5;

(2)

Global optimal solution found.

  Objective value:                              90.00000

  Extended solver steps:                               0

  Total solver iterations:                             0

Row    Slack or Surplus      Dual Price

                            OBJ        90.00000            1.000000

                              2        0.000000            0.000000

                              3        0.000000            0.000000

                              4        0.000000            0.000000

                              5        0.000000            0.000000

6、最短路问题:

求从V1至V10的最短路。

 

l1,2=6,  l1,3=5,  l2,4=3,  l2,5=6,  l2,6=9,  l3,4=7,  l3,5=5,  l3,6=11,  l4,7=9,  l4,8=1,  l5,7=8,  l5,8=7,  l5,9=5,  l6,8=4,  l6,9=10,  l7,10=5,  l8,10=7,  l9,10=9

li,j表示Vi到Vj之间的权重)

(1) 给出原始代码;(2) 计算结果(决策变量求解结果粘贴)

解:

(1)

!最短路问题;

data:

  n=10;

enddata

sets:

  cities/1..n/: F;  !10个城市;

  roads(cities,cities)/

    1,2  1,3

    2,4  2,5  2,6

    3,4  3,5  3,6

    4,7  4,8

    5,7  5,8  5,9

    6,8  6,9

    7,10

    8,10

    9,10

  /: D, P;

endsets

data:

  D=

    6  5

    3  6  9

    7  5  11

    9  1

    8  7  5

    4  10

    5

    7

    9;

enddata

  F(n)=0;

  @for(cities(i) | i #lt# n:

    F(i)=@min(roads(i,j): D(i,j)+F(j));

  );

  !显然,如果P(i,j)=1,则点i到点n的最短路径的第一步是i --> j,否则就不是。

   由此,我们就可方便的确定出最短路径;

  @for(roads(i,j):

    P(i,j)=@if(F(i) #eq# D(i,j)+F(j),1,0)

  );

(2)

Feasible solution found at iteration:                    0

                                           Variable           Value

                                                  N        10.00000

                                              F( 1)        17.00000

                                              F( 2)        11.00000

                                              F( 3)        15.00000

                                              F( 4)        8.000000

                                              F( 5)        13.00000

                                              F( 6)        11.00000

                                              F( 7)        5.000000

                                              F( 8)        7.000000

                                              F( 9)        9.000000

                                             F( 10)        0.000000

                                           P( 1, 2)        1.000000

更多相关推荐:
运筹学上机实验报告10030923

重庆交通大学学生实验报告实验课程名称运筹学开课实验室明德楼117机房学院管理学院年级20xx专业工程造价05班学生姓名学号开课时间实验一简单线性规划模型的求解实验目的通过小型线性规划模型的计算机求解方法熟练掌握...

管理运筹学实验报告

课程实验报告管理运筹学实验二专业年级课程名称指导教师学生姓名学号实验日期实验地点实验成绩教务处制20xx年11月日

运筹学 实验报告

中南民族大学管理学院学生实验报告课程名称管理运筹学年级20xx级专业财务管理指导教师胡丹丹学号11056011姓名沙博实验地点管理学院综合实验室20xx学年至20xx学年度第2学期中南民族大学管理学院学生实验报...

运筹学实验报告

运筹学实验报告实验内容整数规划问题的建模和求解案例43建业银行职员的上班安排一问题提出南平市青山区建业银行分理处每周七天营业从周一到周日每天值班人员数见下表试回答a银行职员每周上班5天休息两天但具体哪几天上班由...

运筹学上机实验报告 利用Matlab求解整数线性规划

学期20xx至20xx第一学期20xx年11月9日课程名称运筹学专业信息与计算科学级班实验编号4实验项目利用Matlab求解整数线性规划指导教师黄娟姓名学号实验成绩一实验目的及要求利用Matlab求解整数线性规...

管理运筹学实验报告

实验报告课程管理运筹学班级学号姓名实验项目数520xx年12月赣南师范学院商学院经济管理实验教学中心制说明1实验预习通过实验预习明确实验目的要求实验原理及相关知识点实验方法步骤以及操作注意事项等对设计性实验要事...

运筹学实验报告-lingo软件的使用-习题代码

运筹学实验报告姓名学号班级指导老师相关问题说明一实验性质和教学目的本实验是运筹学课内安排的上机操作实验目的在于了解熟悉计算机Lingo软件在运筹学模型求解中的作用激发学习兴趣提高学习效果增强自身的动手能力提高实...

运筹学最大流实验报告

一、题目:求如图所示的网络的最大流。二、excel运算:三、运算结果报告:四、敏感性报告:五、极限值报告:六、结论:最大流量为25。实验报告科目:运筹学(最大流问题)姓名:***班级:安全102学号:***日期…

南邮课内实验-运筹学-线性规划-第一次0407

课内实验报告课程名任课教师邢光军专业学号姓名学年第学期南京邮电大学管理学院1实验背景某商场是个中型的百货商场它对售货人员的需求经过统计分析如表1所示息的两天是连续的问应该如何安排售货人员的作息既满足了工作需要又...

运筹学实验报告2

云南大学数学与统计学院实验教学中心云南大学数学系运筹学通论实验上机实验报告一实验目的1深入理解分支定界法的算法2编程实现分支定界法二实验内容用分支定界法求解整数线性规划问题编程实现分支定界法的算法程序然后通过实...

运筹学最短路问题实验报告

运筹学最短路问题实验报告姓名雷超敏学号10069107班级安全101指导教师冯树虎一实验目的1学会独立建模能力并用模型解决相关现实问题2通过实验把所学的运筹学理论知识与实践相结合从而强化相关理论知识3进一步加强...

管理运筹学上机实验报告

管理运筹学实验报告班级姓名学号中国矿业大学管理学院上机内容1某公司面临5项任务计划派甲乙丙丁戊分别去做由于戊临时被公司派往国外因此公司只有让甲乙丙丁中的一个人同时担任两项任务其他三人仍旧单独完成一项任务各人完成...

运筹学实验报告(32篇)