《优化建模与LINGO第09章.ppt》由会员分享,可在线阅读,更多相关《优化建模与LINGO第09章.ppt(74页珍藏版)》请在三一办公上搜索。
1、优化建模与LINDO/LINGO软件第9章对策论,原书相关信息谢金星,薛毅编著,清华大学出版社,2005年7月第1版.http:/,内容提要,1.二人常数和对策2.二人非常数和对策3.n人合作对策,第一节二人常数和对策,对策模型和算法的重要意义,我们不就对策论模型全面的讨论,而是只介绍一些对策论模型的基本概念。重点介绍如何利用LINGO软件去解对策论模型中的有关问题。为了更好地理解LINGO软件的编程过程。,对策论(Game Theory)又称为博弈论,是研究带有竞争与对抗问题的理论与方法。对策论是现代数学的一个重要分支,也是运筹学的一个重要学科。对策论目前已在市场决策中有着广泛的应用。,1.
2、1二人零和对策,1二人常数和对策模型,二人零和对策是最基本的对策形式,先用一个例子来说明。,例9.1 甲、乙两名儿童玩“石头-剪子-布”的游戏。石头胜剪子,剪子胜布,布胜石头。那么,甲、乙儿童如何做,使自己获胜的可能最大?,在对策论中,应有以下要素:,(1)局中人。是指参与对抗的各方,可以是一个人,也可以是一个集团。在例1.1的甲、乙两名儿童就是局中人。,(2)策略。是指局中人所拥有的对付其他局中人的手段、方案的集合。如例1.1中共有石头、剪子、布三种策略。,(3)支付函数(或收益函数)。是指一局对策后各局中人的得与失,通常用正数字表示局中人的得,用负数字表示局中人的失。在例1.1的局中人甲的
3、支付函数如表所示。,例1.1“石头-剪子-布”中儿童甲的支付函数,当局中人得失总和为零时,称这类对策为零和对策;否则称为非零和对策。,当局中人只有两个,且对策得失总和为零,则称为二人零和对策,若总得失总和为常数,则称为二人常数和对策,若得失总和是非常数的,则称为二人非常数和对策。,若二人对策双方的得失是用矩阵形式表示,则称支付函数为支付矩阵,相应的对策称为矩阵对策。通常,支付矩阵表示局中人A的支付函数。,鞍点对策是对策的最基本策略,为更好地理解鞍点对策,先看一个简单的例子。,1.对策的基本策略-鞍点对策,例9.2设A、B两人对策,各自拥有三个策略:a1,a2,a3和b1,b2,b3,局中人A的
4、支付(收益)矩阵由表1.2所示。试求A、B各自的最优策略。,问题分析:从直观来看,局中人A应该出策略a1,因为这样选择,他有可能得到9.但局中人B看到了这一点,他出策略b1,这样局中人A不能得到9,而只能得到1.因此,局中人A也充分认识到这一点,他应当出策略a3,这样做,就有可能得到8,而这种情况下局中人B,就要出策略b3,局中人A也只能得到2.,这样做下来,局中人A只能选择策略a2,而局中人B也只能选择策略b2,大家达到平衡,最后局中人A赢得的值为5,局中人B输掉的值为5.,从上面的分析可以看出,无论局中人A选择什么策略,他赢得的值总是小于等于5,而无论局中人B选择什么策略,他输掉的值总是大
5、于等于5,5就是支付矩阵的鞍点。,现讨论一般情况。假设局中人A的支付矩阵由表1.3所示。,其中局中人A有m个策略1,m,局中人B有n个策略1,n,分别记为S1=1,m,S2=1,nC为局中人A的支付矩阵,而-C为局中人B的支付矩阵。因此,矩阵对策记为G=A,B;S1,S2,C,或G=S1,S2,C对于一般矩阵对策,有如下定义和定理。,定义9.1设G=S1,S2,C 是一矩阵对策,若等式成立,则记vG=,ci*j*并称vG 为对策G的值。称使式(1)成立纯局势(i*,j*)为G在纯策略下的解(或平衡局势),称 i*和 j*分别为局中人A、B的最优纯策略。,定理9.1矩阵对策G=S1,S2,C在纯
6、策略意义下有解的充分必要条件是:存在纯局势(i*,j*)使得,定义9.2,当矩阵对策的最优解不唯一时,有如下定理:,定理9.2,定理9.3,2.无鞍点的对策策略-混合对策 如果支付矩阵有鞍点,选择鞍点对策是最优的对策策略,如果支付矩阵无鞍点,则需要选择混合对策。我们回过头再看例9.1(“石头-剪子-布”),对于支付矩阵,有,没有纯最优策略。因此无法用定理9.1来确定最优策略。在这种情况下,只能求相应的混合策略。类似于纯策略,混合策略有如下定义和定理。,定义9.3,设有矩阵对策GS1,S2,C称,分别为局中人A和B的混合策略。称(x,y)(xS1*,yS2*)为一个混合局,称为局中人A的支付函数
7、(赢得函数)。,定义9.4,设G*S1*,S2*,C是 GS1,S2,C的混合扩充,若,则称vG为对策G*的值。称使式(7)成立混合局势(x*,y*)为G在混合策略下的解,称x*和y*分别为局中人A和B的最优混合策略。,定理9.4,矩阵对策GS1,S2,C在混合策略意义下有解的充分必要条件是:存在(xS1*,yS2*)使(x*,y*)为函数E(x,y)的一个鞍点,即,3.混合对策求解方法,通常用线性规划方法求混合策略的解。设局中人A分别以x1,x2,xm的概率混合使用他的m种策略,局中人B分别以y1,y2,ym的概率混合使用他的n种策略。,当A采用混合策略,B分别采用纯策略bj(j=1,2,n
8、),A的赢得分别为依据最大最小原则,应有,其中vA是局中人A的赢得值。,将问题(9)写成线性规划问题,也就是说,线性规划问题(10)(13)的解就是局中人A采用混合策略的解。类似可求局中人B的最优策略的解。,例9.3用线性规划方法求解例1的最优混合策略。,按照线性规划(10)(13)写出相应的LINGO程序,程序名:exam0903a.lg4MODEL:1sets:2 playerA/1.3/:x;3 playerB/1.3/;4 game(playerA,playerB):C;5endsets,6data:7 C=0 1-1 8-1 0 1 9 1-1 0;10enddata 11max=v
9、_A;12free(v_A);13for(playerB(j):14 sum(playerA(i):C(i,j)*x(i)=v_A);15sum(playerA:x)=1;END,得到最优解(只保留相关部分),Global optimal solution found at iteration:3 Objective value:0.000000 Variable Value Reduced Cost V_A 0.000000 0.000000 X(1)0.3333333 0.000000 X(2)0.3333333 0.000000 X(3)0.3333333 0.000000,即儿童甲以1
10、/3的概率出石头、剪子、布中每种策略的一种,其赢得值为0.用线性规划求出儿童乙有同样的结论。计算到此,读者可能会产生一个问题:一个具有鞍点的对策问题,如果采用线性规划方法求解,将会出现什么情况?,例9.4用线性规划方法求解例2,解:写出LINGO程序,程序名:exam0904.lg4,MODEL:1sets:2 playerA/1.3/:x;3 playerB/1.3/;4 game(playerA,playerB):C;5endsets 6data:7 C=1 3 9,8 6 5 7 9 8 4 2;10enddata 11max=v_A;12free(v_A);13for(playerB(
11、j):14 sum(playerA(i):C(i,j)*x(i)=v_A);15sum(playerA:x)=1;END,计算结果为(保留有效部分)Global optimal solution found at iteration:0 Objective value:5.000000 Variable Value Reduced Cost V_A 5.000000 0.000000 X(1)0.000000 2.000000 X(2)1.000000 0.000000 X(3)0.000000 1.000000,由结果可以看到,局中人A仍然选择纯策略。对局中人B的计算也会出现同样的情况。从例
12、9.3和例9.4可以看出,无论矩阵对策有无鞍点,我们均可以采用线性规划的方法求其对策,只不过具有鞍点的对策可以有更简单的算法罢了。,1.2 二人常数和对策,所谓常数和对策是指局中人A和局中人B所赢得的值之和为一常数.显然,二人零和对策是二人常数和的特例,即常数为零。对于二人常数和对策,有纯策略对策和混合策略对策。其求解方法基本上是相同的。,1.鞍点对策对于二人常数和对策,仍然有鞍点对策,其求解方法与二人零和对策相同。,例9.4,在晚8点至9点这个时段,两家电视台在竞争100万电视观众收看自己的电视节目,并且电视台必须实时公布自己在下一时段的展播内容。电视台1可能选择的展播方式及可能得到的观众如
13、表所示。,解:事实上,对方得到的,就是自己失去的,完全利用二人零和的方法确定最优纯策略,即因此,电视台1选择播放连续剧,赢得45万观众,电视台2播放西部片,赢得100-45=55万观众。,2.混合对策对于常数和对策,也存在混合对策,同样可以采用线性规划方法求解,这里就不举例子了。,2 二人非常数和对策,二人非常数和对策也称为双矩阵对策。在前面介绍的常数和(零和)对策中,均包含两种情况,纯策略和混合策略。对于非常数对策,也包含这两种策略。,1.纯对策问题,例9.6:囚徒的困境(表9.2.1),例9.6设有甲、乙两名嫌疑犯因同一桩罪行被捕,由于希望他们坦白并提供对方的犯罪证据,规定如两人均坦白各判
14、刑3年;如上方坦白另一方不坦白,坦白一方从轻释放,不坦白一方判刑10年;如两人均不坦白,由于犯罪事实很多不能成立,只能各判1年,见表9.2.1所示。试分析甲、乙两犯罪嫌疑人各自采用什么策略使自己的刑期最短。,例9.6给出了典型的二人非常数和对策,每人的收益矩阵是不相同的,因此称为双矩阵对策。通常规定,双矩阵中,第一个元素是局中人A的赢得值,第二个元素是局中人B的赢得值。问题分析:这是一个二人非常数和对策问题。从表面看,两犯罪嫌疑人拒不坦白,只能被判1年徒刑,结果是最好的。但仔细分析,确无法做到这一点。因为犯罪嫌疑人甲如果采用不坦白策略,他可能被判的刑期为1到10年,而犯罪嫌疑人乙可能判的刑期为
15、0到1年。,而甲选择坦白,他被判的刑期为0到3年,此时,犯罪嫌疑人乙可能判的刑期为3到10年。因此,犯罪嫌疑人甲一定选择坦白。基于同样的道理,犯罪嫌疑人乙也只能选择坦白。选择坦白是他们最好的选择,各自被判3年。,事实上,设(cijA,cijB)是甲、乙赢得值,则甲、乙采用的策略是,1.纯对策问题的基本概念,按照上面的论述,对于一般纯对策问题,局中人A、B的支付(赢得)矩阵由表9.2.2所示。,局中人A、B的支付矩阵,为局中人A的支付(赢得)矩阵,为局中人B的支付(赢得)矩阵。因此,矩阵对策记为:G=A,B;S1,S2,CA,CB或G=S1,S2,CA,CB,定义9.5:设G=S1,S2,CA,
16、CB是一双矩阵对策,若等式,成立,则记vA=,并称vA为局中人A的赢得值,记vB=,并称vB为局中人B的赢得值,称(i*,j*)为G在纯策略下的解(或Nash平衡点),称i*和 j*分别为局中人A、B的最优纯策略。,2.纯对策问题的求解方法,实际上,定义9.5也同时给出了纯对策问题的求解方法。因此,对于例9.6,(1,0),(1,0)是Nash平衡点,也就是说,坦白他们的最佳策略。再看一个例子。,例:9.7(夫妻周末安排问题)一对夫妻,商量周末安排。丈夫喜欢看足球,妻子喜欢听音乐会。他们的赢得值由表9.7所示。请为这对夫妻设计最好的度周末的方案。,解:由定义9.5可知,对于策略(1,0),(1
17、,0)或策略(0,1),(0,1)均是Nash平衡点,也就是最优解,即他们选择是共同看足球,或共同听音乐会。表中带有下划线是他们采用策略的赢得值。,2.混合对策问题,如果不存在使式(18)成立的对策,则需要求混合对策。类似于二人常数和对策情况,需要给出混合对策的最优解。1.混合对策问题的基本概念定义9.6 在对策G=S1,S2,CA,CB中,若存在策略对 使得,则称 为G的一个非合作平衡点。记 则称vA,vB分别为局中人A、B的赢得值。,对于混合对策问题有如下定理,定理9.5 每个双矩阵对策至少存在一个非合作平衡点。,定理9.6混合策略 为对策G=S1,S2,CA,CB的平衡点的充分必要条件是
18、:,2.混合对策问题的求解方法由定义9.6可知,求解混合对策就是求非合作对策的平衡点。进一步,由定理9.6得到,求解非合作对策的平衡点,就是求解满足不等式约束(20)的可行点。因此,混合对策问题的求解问题就转化为求不等式约束(20)的可行点,而LINGO软件可以很容易做到这一点。,例9.8 有甲、乙两支游泳队举行包括三个项目的对抗赛。这两支游泳队各有一名健将级运动员(甲队为李,乙队为王),在三个项目中成绩很突出。但规则准许他们每个人分别只能参加两项比赛,而每队的其他两名运动员则可参加全部三项比赛。各运动员的成绩如表9-8所示。,解:分别用甲1、甲2和甲3表示甲队中李姓健将不参加蝶泳、仰泳、蛙泳
19、比赛的策略,分别用乙1、乙2和乙3表示乙队中王姓健将不参加蝶泳、仰泳、蛙泳比赛的策略。当甲队采用策略甲1,乙队采用策略乙1时,在100米蝶泳中,甲队中赵获第一、钱获第三得6分,乙队中张获第二,得3分;在100米仰泳中,甲队中李获第二,得3分,乙队中王获第一,张获第三,得6分;在100米蛙泳中,甲队中李获第一,得5分,乙队中王获第二、张获第三,得4分。也就是说,对应于策略(甲1,乙1),甲、乙两队各自的得分为(14,13).表9-9中给出了在全部策略下各队的得分。,表9-9甲、乙两队采用不同策略的得分,按照定理9.6,求最优混合策略,就是求不等式约束(20)的可行解.写出相应的LINGO程序,程
20、序名:exam0908.lg4,MODEL:1sets:2 optA/1.3/:x;3 optB/1.3/:y;4 AXB(optA,optB):Ca,Cb;5endsets 6data:7 Ca=14 13 12 8 13 12 12,9 12 12 13;10 Cb=13 14 15 11 14 15 15 12 15 15 14;13enddata 14Va=sum(AXB(i,j):Ca(i,j)*x(i)*y(j);15Vb=sum(AXB(i,j):Cb(i,j)*x(i)*y(j);16for(optA(i):,17 sum(optB(j):Ca(i,j)*y(j)=Va);18
21、for(optB(j):19 sum(optA(i):Cb(i,j)*x(i)=Vb);20sum(optA:x)=1;sum(optB:y)=1;21free(Va);free(Vb);END,用LINGO软件求解,得到,Feasible solution found at iteration:3 Variable Value VA 12.50000 VB 14.50000 X(1)0.5000000 X(2)0.000000 X(3)0.5000000 Y(1)0.000000 Y(2)0.5000000 Y(3)0.5000000,即甲队采用的策略是甲1、甲3方案各占50%,乙队采用的策
22、略是乙2、乙3方案各占50%,甲队的平均得分为12.5分,乙队的平均得分为14.5分。当纯对策的解不唯一时,也存在混合对策的平衡点。,例9.9 用混合对策方法求解例9.7。解:写出求不等式(20)的LINGO程序,程序名:ex0909.lg4“MODEL:1sets:2 optA/1.2/:x;3 optB/1.2/:y;4 AXB(optA,optB):Ca,Cb;5endsets,6data:7 Ca=3-1-1 1;8 Cb=1-1-1 3;9enddata 10Va=sum(AXB(i,j):Ca(i,j)*x(i)*y(j);11Vb=sum(AXB(i,j):Cb(i,j)*x(i
23、)*y(j);12for(optA(i):13 sum(optB(j):Ca(i,j)*y(j)=Va);14for(optB(j):,15 sum(optA(i):Cb(i,j)*x(i)=Vb);16sum(optA:x)=1;sum(optB:y)=1;17free(Va);free(Vb);END计算得到混合对策的平衡点(2/3,1/3),(1/3,2/3)各自的赢得值为1/3.从上述分析来看,二人常数和对策是非常数和对策的特例,因此也可以用求解非常数和对策的方法求解常数和对策。,例9.10用求解非常数和对策的方法求解例9.5解:写出相应的LINGO程序,程序名:exam0910.lg
24、4MODEL:1sets:2 optA/1.3/:x;3 optB/1.3/:y;4 AXB(optA,optB):Ca,Cb;5endsets,6data:7 Ca=35 15 60 8 45 58 50 9 38 14 70;10 Cb=65 85 40 11 55 42 50 12 62 86 30;13enddata,14Va=sum(AXB(i,j):Ca(i,j)*x(i)*y(j);15Vb=sum(AXB(i,j):Cb(i,j)*x(i)*y(j);16for(optA(i):17 sum(optB(j):Ca(i,j)*y(j)=Va);18for(optB(j):19 s
25、um(optA(i):Cb(i,j)*x(i)=Vb);20sum(optA:x)=1;sum(optB:y)=1;21free(Va);free(Vb);END,计算结果如下(只保留有效部分)Feasible solution found at iteration:12 Variable Value VA 45.00000 VB 55.00000 X(1)0.000000 X(2)1.000000 X(3)0.000000 Y(1)1.000000 Y(2)0.000000 Y(3)0.000000,即局中人A采用第二种策略,赢得45万观众,局中人B采用第一种策略,赢得55万观众,与前面计算
26、的结果相同。,3 n人合作对策初步,n人合作对策在理论上较为复杂,这里只用一些例子简单介绍n人合作对策的基本思想,和用LINGO软件求解对策的方法。例9.11甲有一匹马,对他自己来说,其价值为0,而对乙和丙(买主)来说分别价值90和100个货币单位。试建立3人合作对策,使得每人的利益最大。,解:设甲、乙、丙三人的价值分别为x1,x2,x3,因此对于每个人来说,其价值为0,即v1=v2=v3=0如果甲与乙合作,其价值为90,甲与丙合作,其价值为100,若乙与丙合作,其价值仍为0,因此有v1,2=90,v1,3=100,v2,3=0.但三人合作的总价值为100,即v 1,2,3=100.建立相应的
27、数学规划问题,写出相应的LINGO程序,程序名:exam0909.lg4 MODEL:1sets:2 condition/1.3/:b;3 players/1.3/:x;4 constraint(condition,players):A;5endsets 6data:7 A=1 1 0,8 1 0 1 9 0 1 1;10 b=90 100 0;11 total=100;12enddata 13max=z;14for(players:z=b(i);17sum(players:x)=total;END,经计算得到(只保留有用部分)Global optimal solution found at
28、iteration:8 Objective value:0.000000 Variable Value Reduced Cost TOTAL 100.0000 0.000000 Z 0.000000 0.000000 X(1)90.00000 0.000000 X(2)0.000000 0.000000 X(3)10.00000 0.000000,即x1=90,x2=0,x3=10,也就是说,甲以90货币单位将马卖给丙,甲获利90货币单位,乙获利0货币单位,丙获利10货币单位.,例9.12有三家公司A、B、C可以独立或合作某项工程,由于三家公司的基础与优势不同,因此采用独立或合作完成项目的利润
29、也不同,详细利润由表1所示。试求完成该项目的最优方案。,解:列出相应的数学规划问题,相应的LINGO程序,程序名:exam0910.lg4MODEL:1sets:2 condition/1.5/:b;3 players/1.3/:x;4 constraint(condition,players):A;5endsets 6data:7 A=1 1 0 8 1 0 1,9 0 1 1 10 1 0 0 11 0 0 1;12 b=4 3 4 1.2 1;13 total=7;14enddata 15max=z;16for(players:z=b(i);19sum(players:x)=total;
30、END,经计算得到(保留有用部分)Global optimal solution found at iteration:14 Objective value:2.333333 Variable Value Reduced Cost TOTAL 7.000000 0.000000 Z 2.333333 0.000000 X(1)2.333333 0.000000 X(2)2.333333 0.000000 X(3)2.333333 0.000000即x1=x2=x3=2.333,也就是说,三家公司共同合作承担此项目,每个公司盈利2.333万元,习题99.19.4,布置作业内容,Thank you very much!,