《运筹学B》实验指导书(2版)(7)

2019-09-01 10:25

1、实验目的;2、问题;3、数学模型;4、Lingo求解程序; 5、计算结果;6、结论;7、心得体会。

实验四、利用数学软件求解对策论模型 一、实验目的

通过此实验,复习、巩固矩阵对策的线性规划解法,能对策论的基本知识,建立实际问题的数学模型,并利用LINGO求解。 二、实验原理及方法

(一)二人有限零和对策问题

方法(1)由课本第14章定理4和定理11,对于任一矩阵对策G={S1,S2;A}的求解可转化于一对互为对偶的线性规划问题:

?min z? 和

?i? (P)??aijx'i?1, j?1,?,n?i?x'i?0??max w??y'j?j?(D)??aijy'j?1, i?1,?,m?j?y'?0, j?1,?,n?j?x'i(14?49)(14?52)方法(2):

或者利用定理5,直接求解如下的两个线性规划问题 max w??aijxi?w, j?1,?,n ?i?(P)??xi?1

?i?xi?0, i?1,?,m?

min v??aijyj?v, i?1,?,m ?j?(D)??yj?1?j?y?0, j?1,?,n?j

对于上述线性规划问题,可用Matlab、Lingo等数学软件求解。此处用Lingo软件求解。 例题4-1 利用线性规划方法求解赢得矩阵为A的矩阵对策:

30

?7?A??2?9?2909??0? 11??解:求解问题可化为下列两个互为对偶的线性规划问题

minx1?x2?x3may(y1?y2?y3)?7x1?2x2?9x3?1?7y1?2y2?9y3?1??1 (D) ?1 (P)??2x1?9x2?2y1?9y2s.t.?s.t.?11x3?111y3?1?9x1??9y1??x?0,x?0,x?0?y?0,y?0,y?02323?1?1编写LINGO计算程序为:

(1)局中人Ⅰ的最优策略计算程序为

model: sets:

player1/1..3/:x; player2/1..3/:y;

game(player1,player2):A; endsets data: A=7 2 9 2 9 0 9 0 11; enddata

min=@sum(player1(i):x(i));

@for(player2(j):@sum(player1(i):A(i,j)*x(i))>=1;); end

求解结果为:

Global optimal solution found at iteration: 8 Objective value: 0.2000000

Variable Value Reduced Cost X( 1) 0.5000000E-01 0.000000 X( 2) 0.1000000 0.000000 X( 3) 0.5000000E-01 0.000000 Y( 1) 0.000000 0.000000 Y( 2) 0.000000 0.000000 Y( 3) 0.000000 0.000000 A( 1, 1) 7.000000 0.000000 A( 1, 2) 2.000000 0.000000 A( 1, 3) 9.000000 0.000000 A( 2, 1) 2.000000 0.000000 A( 2, 2) 9.000000 0.000000 A( 2, 3) 0.000000 0.000000 A( 3, 1) 9.000000 0.000000

31

A( 3, 2) 0.000000 0.000000 A( 3, 3) 11.00000 0.000000

即x1=0.05.x2=0.1,x3=0.05,最优值为0.2,从而局中人Ⅰ的赢得期望值为

VG?1/0.2?5,最优策略为x*?VG*(0.05,0.1,0.05)?(0.25,0.5,0.25)。

下面利用方法(2)求解,计算程序为:

model: sets:

player1/1..3/:x; player2/1..3/;

game(player1,player2):A; endsets data: A=7 2 9 2 9 0 9 0 11; enddata max=w; @free(w);

@for(player2(j):@sum(player1(i):A(i,j)*x(i))>=w;); @sum(player1(i):x(i))=1; end

计算结果为:

Global optimal solution found at iteration: 3 Objective value: 5.000000

Variable Value Reduced Cost W 5.000000 0.000000 X( 1) 0.2500000 0.000000 X( 2) 0.5000000 0.000000 X( 3) 0.2500000 0.000000 A( 1, 1) 7.000000 0.000000 A( 1, 2) 2.000000 0.000000 A( 1, 3) 9.000000 0.000000 A( 2, 1) 2.000000 0.000000 A( 2, 2) 9.000000 0.000000 A( 2, 3) 0.000000 0.000000 A( 3, 1) 9.000000 0.000000 A( 3, 2) 0.000000 0.000000 A( 3, 3) 11.00000 0.000000

结果和上面相同。

(2)局中人Ⅱ的最优策略计算程序(按方法2)为:

model:

32

sets:

player1/1..3/; player2/1..3/:y;

game(player1,player2):A; endsets data: A=7 2 9 2 9 0 9 0 11; enddata min=v; @free(v);

@for(player2(i):@sum(player1(j):A(i,j)*y(j))<=v;); @sum(player1(i):y(i))=1; end

计算结果为:

Global optimal solution found at iteration: 5 Objective value: 5.000000

Variable Value Reduced Cost V 5.000000 0.000000 Y( 1) 0.2500000 0.000000 Y( 2) 0.5000000 0.000000 Y( 3) 0.2500000 0.000000 A( 1, 1) 7.000000 0.000000 A( 1, 2) 2.000000 0.000000 A( 1, 3) 9.000000 0.000000 A( 2, 1) 2.000000 0.000000 A( 2, 2) 9.000000 0.000000 A( 2, 3) 0.000000 0.000000 A( 3, 1) 9.000000 0.000000 A( 3, 2) 0.000000 0.000000 A( 3, 3) 11.00000 0.000000

局中人Ⅱ的最优策略为y*?(0.25,0.5,0.25)。

(二) 二人有限非零和混合对策问题(双矩阵对策问题)

二人非零和对策也称为双矩阵对策问题,均包含两种情况,纯对策和混合对策。对于纯对策的解不存在的情况下,需要给出混合对策。

S2???1,?2,...,?n? 定义:设G={S1,S2;A,B}为一个双矩阵对策,其中S1???1,?2,...,?m?,

A?aij**??m?n,B?bij*??n?m分别为局中人Ⅰ和局中人Ⅱ的赢得矩阵,若存在

x?S1,y?S2,使得

*33

其中S(x)Ay(x)By*T*T**?xAy,?x?S1,?(x)Ay,?y?S,*T*2T**(14?63)(14?64)

*1nm????*nm??x?Rxi?0,i?1,2,...,m,?xi?1?, S2??y?Ryi?0,i?1,2,...,n,?yi?1?i?1i?1????*则称x*?S1*,y*?S2为G的一个非合作平衡点。VA?(x*)TAy*,VB?(x*)TBy*分别称为局中人Ⅰ和局中人Ⅱ的赢得值。

易知(14-63)、(14-64)等价于下列不等式:

n(x)Ay*T*T*??aj?1mijyj,i?1,2,...,mxi,j?1,2,...,n**(14?63)?

ij(x)By*??bi?1(14?64)?由定理15, G的非合作平衡点 一定存在。

例题4-2 有甲、乙两支游泳队举行包括三个项目的对抗赛。这两支游泳队各有一名健将级运动员(甲队为李,乙队为王),在三个项目中成绩突出。但规则规定准许他们每个人分别只能参加两项比赛,而每队的其他两名队员则可以参加全部三项比赛。各运动员的成绩见下表:

100m蝶泳 100m仰泳 100m蛙泳 赵 54.7 62.2 69.1 甲队 钱 58.2 63.4 70.5 李 52.1 58.2 65.3 王 53.6 56.5 67.8 乙队 张 56.4 59.7 68.4 孙 59.8 61.5 71.3 解:比赛采用计分制的方式计算两队的得分,每次比赛的前三名得分分别为5、3、1

分别用甲1、甲2、甲3表示甲队中李健将不参加蝶泳、仰泳、蛙泳比赛的策略; 分别用乙1、乙2、乙3表示乙队中王健将不参加蝶泳、仰泳、蛙泳比赛的策略; 当甲队用策略甲1,乙队用策略乙1时,在100m蝶泳中,甲队赵获第一、钱第三获6分,乙队张第二获3分;在100m仰泳中,甲队中李获第二得3分,乙队中王第一、张第三得6分;在100m蛙泳中,甲队李获第一得5分,乙队中王、张分获第二、第三得4分,从对应于策略(甲1,乙1),甲、乙两队分别得分为(14,13).下表给出了在全部策略下两队的得分:

甲1 甲2 甲3 乙1 乙2 乙3 (14,13) (13,14) (12,15) (13,14) (12,15) (12,15) (12,15) (12,15) (13,14) 按照(14-63)、(14-64)式,给出计算两队最优策略的程序如下:

sets:

player1/1..3/: x;

34


《运筹学B》实验指导书(2版)(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:肠内营养指南

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: