矩阵对策的解法
- 格式:ppt
- 大小:285.50 KB
- 文档页数:21
,m α,
,
,n β;则分别为
},m α和},n β。
当局中人Ⅰ选定纯策略i α和局中人Ⅱ选定纯策略后,就形成了一个纯局)j ,这样的纯局势共有m n ⨯个。
对任一纯局势赢得值为ij a ,称
12122
212n n m m mn a a a a a ⎤⎥⎥⎥⎥⎦
为局中人Ⅰ的赢得矩阵。
局中人Ⅱ的赢得矩阵就是当局中人Ⅰ,Ⅱ的策略集12,S S 及局中人Ⅰ的赢得矩阵对策也就给定了,记为{}12,,G S S A =。
在齐王赛马的例子中,齐王的赢得矩阵
},
,m α,
},n β,max )
成立,记其值为)成立的纯局势()
,i j αβ**
在纯策略意义下的解(或鞍点)
},m α,},n S β,
1,2,
,,m x ∑1,2,
,,n y ∑分别称为局中人Ⅰ和Ⅱ的混合策略集分别称为局中人Ⅰ和Ⅱ的混合策略(或策略),对
),m x 可设想成当两个局中人多次重复进行对策
12,,
,m ααα的频率。
若只进行一次时对策,混合
对策可设想成局中人Ⅰ对各纯策略的偏爱程度。
求解混合策略的问题有图解法,迭代法、线性方程组法和线性规划法,在。
矩阵对策问题及其解法背景对策论研究具有竞争性质的现象。
有权决定⾃⾝⾏为的对策参加者称为局中⼈,所有局中⼈构成集合I,在⼀局对策中可供剧中⼈选择的⼀个实际可⾏的完整的⾏动⽅案成为策略,对于任意剧中⼈i∈I,都有⾃⼰的策略集S i。
⼀局对策中由各剧中⼈选定的策略构成的策略组称为局势s=(s1,...,s n),⽽全体局势集合S=S1×...×S n。
局势决定了对策的结果,对局势s∈S,局中⼈i可以得到收益H i(s),也称为局中⼈i的赢得函数。
矩阵对策即⼆⼈有限零和对策,是⼀类较为简单的对策模型。
矩阵对策基础我们假设,局中⼈ I 有纯策略α1,...,αm,局中⼈ II 有纯策略β1,...,βn,⼆者各选择⼀个纯策略则构成m×n个纯局势 (αi,βj),将 (αi,βj)下 I 的赢得值记为a i,j,设矩阵A=[a i,j],称为 I 的赢得矩阵或 II 的⽀付矩阵。
局中⼈ II 的赢得矩阵就是 −A T。
最优纯策略若纯局势 (a i∗,b j∗) 满⾜max i minj a i,j=minjmaxi a i,j=a i∗,j∗则称为矩阵对策 {S1,S2;A} 的最优纯策略。
显然,最有纯策略在赢得矩阵中对应的元素⼀定满⾜,其是所在⾏的最⼩元素,也是所在列的最⼤元素,即矩阵的鞍点。
混合策略当纯策略不存在时,我们希望给出⼀个选取不同策略的概率分布。
我们记 I,II 的概率分布向量分别为x,y,所有概率分布向量构成的集合为S1,S2,则局中⼈ I 的赢得函数为E(x,y)=x T Ay。
纯策略是混合策略的特例。
若混合局势 (x∗,y∗) 满⾜max x miny E(x,y)=minymaxx E(x,y)=E(x∗,y∗)则称为矩阵对策 {S1,S2;A} 的最优混合策略。
同样,混合策略 (x∗,y∗) 是最有混合策略的充要条件也是 (x∗,y∗) 是函数E(x,y) 的鞍点。
昆 明 理 工 大 学 理 学 院信息与计算科学专业 操作性实验报告年级: 09级 姓名: 陈龙飞 学号: 200911101111 指导教师: 范敏实验课程名称: 运筹学 开课实验室: 理216实验内容:1.实验/作业题目:用线性规划的方法求解矩阵对策3 3 2 98 2 4 32 6 6 56 4 4 22.实验/作业课时:2课时3.实验过程(包括实验环境、实验内容的描述、完成实验要求的知识或技能):实验环境:多媒体计算机一台实验内容:(1)、对矩阵进行优超处理。
(2)、求解对策矩阵。
4.程序结构(程序中的函数调用关系图)优超算法:C++代码:#include <iostream>using namespace std;int main(){void youchao();//int youchao_a[4][4]={{3,3,2,9},{8,2,4,3},{2,6,6,5},{6,4,4,2}};int a[4][4]={{1,0,3,4},{-1,4,0,1},{2,2,2,3},{0,4,1,5}};cout<<"the array is:"<<endl;for (int i=0;i<4;i++){ for (int j=0;j<4;j++){cout<<a[i][j]<<" ";}if (j==4)cout<<'\n';}// int tt=1;for(int k=0;k<4;k++)/* for(int h=0;h<4;h++){if(a[k][h]<=a[k][h+tt])a[k][h]=NULL;}*/{if (a[0][k]<=a[1][k]&&a[0][k]<=a[2][k]&&a[0][k]<=a[3][k]){a[0][k]=NULL;}else if (a[1][k]<=a[0][k]&&a[1][k]<=a[2][k]&&a[1][k]<=a[3][k]) {a[1][k]=NULL;}else if (a[2][k]<=a[0][k]&&a[2][k]<=a[1][k]&&a[2][k]<=a[3][k]) {a[2][k]=NULL;}else if (a[3][k]<=a[0][k]&&a[3][k]<=a[1][k]&&a[3][k]<=a[2][k]) {a[3][k]=NULL;}}for (int e=0;e<4;e++){if (a[e][0]>=a[e][1]&&a[e][0]>=a[e][2]&&a[e][0]>=a[e][3]){a[e][0]=NULL;}else if (a[e][1]>=a[e][0]&&a[e][1]>=a[e][2]&&a[e][1]>=a[e][3]) {a[e][1]=NULL;}else if (a[e][2]>=a[e][0]&&a[e][2]>=a[e][1]&&a[e][2]>=a[e][3]) {a[e][2]=NULL;}else if(a[e][3]>=a[e][0]&&a[e][3]>=a[e][1]&&a[e][3]>=a[e][2]) {a[e][3]=NULL;}}cout<<endl<<endl<<"优超后的矩阵为"<<endl;for(int k2=0;k2<4;k2++){ for (int k1=0;k1<4;k1++){cout<<a[k2][k1]<<" ";}if(k1==4)cout<<endl;}return 0;}结果:当然c++里面的那个矩阵可以换成作业的里面这个,但是作业里面的那个不可以优超,所以效果不明显,我有重新找了一个矩阵,原来都是一样的Matlab代码:%请输入你要优超的矩阵L=[3 3 2 9;8 2 4 3;2 6 6 5;6 4 4 2];%调用main()函数mian(L)function E0=mian(a)global a;global Y;global k2;global T;global T1;global T2;Y=a;for k2 = 1:4% if(Y(1,k2)<=Y(2,k2)&Y(1,k2)<=Y(3,k2)&Y(1,k2)<=Y(4,k2))Yochao();%endendT=a;for k2 = 1:4if(T(2,k2)<=T(1,k2)&T(2,k2)<=T(3,k2)&T(2,k2)<=T(4,k2))Yochao1();endendT1=a;for k2 = 1:4if(T1(3,k2)<=T1(1,k2)&T1(3,k2)<=T1(2,k2)&T1(3,k2)<=T1(4,k2)) Yochao2();endendT2=a;for k2 = 1:4if(T2(4,k2)<=T2(1,k2)&Y(4,k2)<=T2(2,k2)&T2(4,k2)<=T2(3,k2)) Yochao3();endendfunction E=Yochao()global Y;global k2;if(Y(1,k2)<=Y(2,k2)&Y(1,k2)<=Y(3,k2)&Y(1,k2)<=Y(4,k2)) Y(1,:)=[];t=Y;if(t(1,k2)<t(2,k2)&t(1,k2)<t(3,k2))t(1,:)=[];else if(t(2,k2)<t(1,k2)&t(2,k2)<t(3,k2))t(2,:)=[];t1=t;if(t1(1,k2)<t1(2,k2))t1(1,:)=[];elset1(2,:)=[];endendendendt1function E=Yochao1()global k2;global T;T(2,:)=[];t=T;if(t(1,k2)<t(2,k2)&t(1,k2)<t(3,k2))t(1,:)=[];else if(t(2,k2)<t(1,k2)&t(2,k2)<t(3,k2))t(2,:)=[];t2=t;if(t2(1,k2)<t2(2,k2))t2(1,:)=[];elset2(2,:)=[];end。