运筹学实验14.docx

上传人:b****5 文档编号:8236937 上传时间:2023-01-30 格式:DOCX 页数:13 大小:51.36KB
下载 相关 举报
运筹学实验14.docx_第1页
第1页 / 共13页
运筹学实验14.docx_第2页
第2页 / 共13页
运筹学实验14.docx_第3页
第3页 / 共13页
运筹学实验14.docx_第4页
第4页 / 共13页
运筹学实验14.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

运筹学实验14.docx

《运筹学实验14.docx》由会员分享,可在线阅读,更多相关《运筹学实验14.docx(13页珍藏版)》请在冰豆网上搜索。

运筹学实验14.docx

运筹学实验14

实验一线性规划模型建立与求解

一、实验目的与要求

掌握小型线性规划模用lingo软件求解,要求会使用此软件解决一般的线性规划问题

二、实验原理

对于小型线性规划模型,在lingo中用直接输入模型的方式求解。

对于含有很多变量和约束条件的模型,要求会用编程的方法来求解。

三、主要仪器设备

安装了Windows、lingo软件的计算机。

四、实验内容与步骤

1、求小型线性规划模型的解。

例1.1求解下面的线性规划

maxz=2x1+3x2

x1+2x2≤8

4x1≤16

4x2≤16

x1,x2≥0

LINGO中的输入代码,点菜单栏的LINGO→Solver,或直接点工具栏上的,可得求解结果即解的状况(SolverStatus)和解报告(SolutionReport):

例1.2求解下面线性规划的数学模型

minz=-3x1+4x2-2x3+5x4;

4x1-x2+2x3-x4=-2;

x1+x2+3x3-x4≤14;

-2x1+3x2-x3+2x4≥2;

x1,x2,x3≥0,x4无约束;

LINGO中输入如下的代码:

min=-3*x1+4*x2-2*x3+5*x4;

4*x1-x2+2*x3-x4=-2;

x1+x2+3*x3-x4<=14;

-2*x1+3*x2-x3+2*x4>=2;

@free(x4);

求解可得解报告:

Globaloptimalsolutionfound.

Objectivevalue:

2.000000

Totalsolveriterations:

0

VariableValueReducedCost

X10.00000015.50000

X28.0000000.000000

X30.0000008.500000

X4-6.0000000.000000

RowSlackorSurplusDualPrice

12.000000-1.000000

20.0000004.500000

30.0000000.5000000

410.000000.000000

 

2、用编程的方法求解大型线性规划模型的解

例1.3用LINGO编程求解例1.1的线性规划模型

!

定义变量与常量,给出了值的为常量;

sets:

is/1..3/:

b;

js/1..2/:

c,x;

links(is,js):

a;

endsets

!

目标函数;

max=@sum(js(J):

c(J)*x(J));

!

约束条件;

@for(is(I):

@sum(js(J):

a(I,J)*x(J))<=b(I));

!

指定常量的值;

data:

!

直接输入数据;

c=23;

b=81612;

a=12

40

04;

enddata

end

求解可得SolutionReport

Globaloptimalsolutionfound.

Objectivevalue:

14.00000

Totalsolveriterations:

1

VariableValueReducedCost

B

(1)8.0000000.000000

B

(2)16.000000.000000

B(3)12.000000.000000

C

(1)2.0000000.000000

C

(2)3.0000000.000000

X

(1)4.0000000.000000

X

(2)2.0000000.000000

A(1,1)1.0000000.000000

A(1,2)2.0000000.000000

A(2,1)4.0000000.000000

A(2,2)0.0000000.000000

A(3,1)0.0000000.000000

A(3,2)4.0000000.000000

RowSlackorSurplusDualPrice

114.000001.000000

20.0000001.500000

30.0000000.1250000

44.0000000.000000

 

实验二、运输问题的计算机求解

一、实验目的与要求

掌握中小型运输问题的直接输入运输问题的数学模型代码求解。

对于大型运输问题,要求用编程的方法求解,简化模型的直接输入。

二、实验原理

将运输问题转换为线性规划问题后,直接输入数学模型代码,利用lingo软件求解

三、主要仪器设备

安装了Windows、lingo软件的计算机。

四、实验内容与步骤

1、中小型运输问题的求解

中小型运输问题可以和小型线性规划一样,直接输入运输问题的数学模型代码求解。

例2.1求解下面运输问题的数学模型

位销地

产地

B1

B2

B3

B4

产量

A1

3

11

3

10

7

A2

1

9

2

8

4

A3

7

4

10

5

9

销量

3

6

5

6

 

LINGO中的输入代码为:

min=3*x11+11*x12+3*x13+10*x14+x21+9*x22+2*x23+8*x24+7*x31+4*x32

+10*x33+5*x34;

x11+x12+x13+x14=7;

x21+x22+x23+x24=4;

x31+x32+x33+x34=9;

x11+x21+x31=3;

x12+x22+x32=6;

x13+x23+x33=5;

x14+x24+x34=6;

求解可得:

Globaloptimalsolutionfound.

Objectivevalue:

83.00000

Totalsolveriterations:

0

VVariableValueReducedCost

X110.0000000.000000

X120.0000002.000000

X135.0000000.000000

X142.0000000.000000

X213.0000000.000000

X220.0000002.000000

X230.0000001.000000

X241.0000000.000000

X310.0000009.000000

X326.0000000.000000

X330.00000012.00000

X343.0000000.000000

RowSlackorSurplusDualPrice

185.00000-1.000000

20.000000-3.000000

30.000000-1.000000

40.0000002.000000

50.0000000.000000

60.000000-6.000000

70.0000000.000000

80.000000-7.000000

2、大规模运输问题的求解

对于变量多和约束条件多的运输问题数学模型,用编程的方法求解,简化了模型的输入,带来了很大的方便。

例2.2用编程的方法求解例2.1

LINGO编程为

MODEL:

!

!

定义变量和常量;

SETS:

As/A1..A3/:

a;

Bs/B1..B4/:

b;

LINKS(As,Bs):

c,x;

ENDSETS

!

目标函数;

MIN

=@SUM(LINKS(I,J):

C(I,J)*x(I,J));

!

产量约束;

@FOR(As(I):

@SUM(Bs(J):

x(I,J))=a(I));

!

销量约束;

@FOR(Bs(J):

@SUM(As(I):

x(I,J))=b(J));

!

Hereisthedata;

DATA:

a=749;

b=3656;

c=311310

1928

74105;

ENDDATA

END

上述编程对应的数学模型为如下形式:

求解可得解报告:

Globaloptimalsolutionfound.

Objectivevalue:

85.00000

Totalsolveriterations:

7

VariableValueReducedCost

A(A1)7.0000000.000000

A(A2)4.0000000.000000

A(A3)9.0000000.000000

B(B1)3.0000000.000000

B(B2)6.0000000.000000

B(B3)5.0000000.000000

B(B4)6.0000000.000000

C(A1,B1)3.0000000.000000

C(A1,B2)11.000000.000000

C(A1,B3)3.0000000.000000

C(A1,B4)10.000000.000000

C(A2,B1)1.0000000.000000

C(A2,B2)9.0000000.000000

C(A2,B3)2.0000000.000000

C(A2,B4)8.0000000.000000

C(A3,B1)7.0000000.000000

C(A3,B2)4.0000000.000000

C(A3,B3)10.000000.000000

C(A3,B4)5.0000000.000000

X(A1,B1)0.0000000.000000

X(A1,B2)0.0000002.000000

X(A1,B3)5.0000000.000000

X(A1,B4)2.0000000.000000

X(A2,B1)3.0000000.000000

X(A2,B2)0.0000002.000000

X(A2,B3)0.0000001.000000

X(A2,B4)1.0000000.000000

X(A3,B1)0.0000009.000000

X(A3,B2)6.0000000.000000

X(A3,B3)0.00000012.00000

X(A3,B4)3.0000000.000000

RowSlackorSurplusDualPrice

185.00000-1.000000

20.000000-3.000000

30.000000-1.000000

40.0000002.000000

50.0000000.000000

60.000000-6.000000

70.0000000.000000

80.000000-7.000000

实验三、整数规划数学模型的求解

一、实验目的与要求

掌握整数规划数学模型的计算机求解

二、实验原理

LINGO中求解整数规划或0-1规划,只需要在一个线性规划的代码或程序中添加整数约束,x1为整数可用@gin(x1)表示,x2为0-1变量可用@bin(x2)表示。

三、主要仪器设备

安装了Windows、lingo软件的计算机。

四、实验内容与步骤

1、例求解下面混合整数规划

minz=-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无约束

2、编写程序

LINGO编程为:

!

定义变量与常量,给出了值的为常量;

sets:

is/1..3/:

b;

js/1..4/:

c,x;

links(is,js):

a;

endsets

!

目标函数;

min=@sum(js(J):

c(J)*x(J));

!

约束条件;

@sum(js(J):

a(1,J)*x(J))=b

(1);

@sum(js(J):

a(2,J)*x(J))<=b

(2);

@sum(js(J):

a(3,J)*x(J))>=b(3);

!

自由变量;

@gin(x

(1));@bin(x

(2));@free(x(4));

!

指定常量的值;

data:

c=-34-25;

b=-2142;

a=4-12-1

113-1

-23-12;

enddata

!

结束;

End

3、求解可得解报告:

Globaloptimalsolutionfound.

Objectivevalue:

9.000000

Extendedsolversteps:

0

Totalsolveriterations:

0

VariableValueReducedCost

B

(1)-2.0000000.000000

B

(2)14.000000.000000

B(3)2.0000000.000000

C

(1)-3.0000000.000000

C

(2)4.0000000.000000

C(3)-2.0000000.000000

C(4)5.0000000.000000

X

(1)0.00000017.00000

X

(2)1.000000-1.000000

X(3)0.0000008.000000

X(4)1.0000000.000000

A(1,1)4.0000000.000000

A(1,2)-1.0000000.000000

A(1,3)2.0000000.000000

A(1,4)-1.0000000.000000

A(2,1)1.0000000.000000

A(2,2)1.0000000.000000

A(2,3)3.0000000.000000

A(2,4)-1.0000000.000000

A(3,1)-2.0000000.000000

A(3,2)3.0000000.000000

A(3,3)-1.0000000.000000

A(3,4)2.0000000.000000

RowSlackorSurplusDualPrice

19.000000-1.000000

20.0000005.000000

314.000000.000000

43.0000000.000000

实验四、指派问题的计算机求解

一、实验目的与要求

掌握指派问题的计算机求解,要求会用lingo软件编程求解。

二、实验原理

指派问题的数学模型实质就是一个特殊的运输问题,产地个数和销地个数相同,每个产地的产量和每个销地的销量都是1个单位,变量也都为0-1变量。

三、主要仪器设备

安装了Windows、lingo软件的计算机。

四、实验内容与步骤

1、用运输问题的数学模型求解一个指派问题

2、编写程序并输入

model:

!

7个工人,7个工作的分配问题;

sets:

workers/w1..w7/;

jobs/j1..j7/;

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=6267425

4953858

5219743

7673927

2395726

55228114

923124510;

enddata

end

3、输出结果

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1