北太天元用于算法博弈论(纳什均衡-混合策略-线性规划)

% 北太天元 解 算法博弈论(algorithm game theory)
% 关键词: 纳什均衡, 囚徒困境,混合策略,线性规划
% 问题是甲乙二人有不同的选择,甲可以选择 alpha_1, alpha_2
% 乙可以选择 beta_1, beta_2,
% 有一个矩阵(utility matrix) 给出甲能得到的好处
% U = [ ...
% 5 9
% 8 6 ]
% 其中U(1,1) = 5 表示 当甲 采取策略 alpha1, 而乙采用策略 beta_1 时 甲的收益
% 其中U(2,1) = 8 表示 当甲 采取策略 alpha2, 而乙采用策略 beta_1 时 甲的收益
% 其中U(1,2) = 9 表示 当甲 采取策略 alpha1, 而乙采用策略 beta_2 时 甲的收益
% 其中U(2,2) = 6 表示 当甲 采取策略 alpha2, 而乙采用策略 beta_2 时 甲的收益
% 最后我们得到的线性规划问题如下
%min x1+x2
% s.t. 5 x1 + 8 x2 >= 1
% s.t. 9 x1 + 6 x2 >= 1
% x1 , x2 >= 0
load_plugin("optimization");
opts = struct();
opts.Display = 'off';
f = [1, 1];
A = sparse([5, 8; ...
9, 6]);
rl = [1; 1];
ru = [];
cl = 0;
cu = [];
[x, dr, dc, output] = linprog_hgs(f, A, rl, ru, cl, cu, opts)
% 甲得到平均收益 (不管乙采用什么策略,甲保证可以平均收益可以大于这个V)
V = 1/sum(x);
% 甲的混合策略,就是选择不同策略的概率是 p
p = V*x