You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改Matlab linprog代码求解以v为目标的最优混合策略问题

原始问题

给定如下支付矩阵,求解玩家一的最优混合策略:

0 2 1 -1
3 4 0 -5 
-1 3 0 2 
-1 -1 2 1
构建的最大化问题

我建立了如下最大化模型:
max v
约束条件:

  • 3p₁ - p₃ - 2p₄ ≤ v
  • 2p₁ + 4p₂ + 3p₃ - p₄ ≤ v
  • p₁ + 2p₄ ≤ v
  • -p₁ -5p₂ +2p₃ + p₄ ≤ v(注:原表述中p4n应为笔误,修正为p4)
    其中 pᵢ < 0
问题诉求

我曾用以下Matlab代码求解最大化问题,但不知道怎么调整代码来适配这个以v为目标函数的优化问题:

% max 6x - y s.t.
% 4y - x >= 10
% 2x + y <= 10
% 2y - x <=  5

f = -[6;-1];          % objective function
A = [1 -4; 2 1; -1 2];    % constraint matrix
b = [-10 10 5];           % constraing rhs
Aeq = [];               % no equality constraints here
beq = [];               % no equality constraints here
lb = [];    
ub = [];

%% call linprog
optimum = linprog(f,A,b,Aeq,beq,lb,ub)
调整后的Matlab代码及说明

Matlab的linprog函数默认求解最小化问题,因此需要将原最大化问题max v转换为等价的min -v,同时把所有变量(p₁,p₂,p₃,p₄,v)整合到优化变量中,整理约束条件为标准的Ax ≤ b形式:

% 目标函数:min -v,对应变量顺序[p1; p2; p3; p4; v]
f = [0; 0; 0; 0; -1];  

% 约束矩阵A:前4行是原问题的约束移项,后4行是pᵢ < 0的约束(即pᵢ ≤ 0)
A = [
    3,  0, -1, -2, -1;  % 3p1 - p3 - 2p4 - v ≤ 0
    2,  4,  3, -1, -1;  % 2p1 + 4p2 + 3p3 - p4 - v ≤ 0
    1,  0,  0,  2, -1;  % p1 + 2p4 - v ≤ 0
   -1, -5,  2,  1, -1;  % -p1 -5p2 +2p3 + p4 - v ≤ 0
    1,  0,  0,  0,  0;  % p1 ≤ 0
    0,  1,  0,  0,  0;  % p2 ≤ 0
    0,  0,  1,  0,  0;  % p3 ≤ 0
    0,  0,  0,  1,  0;  % p4 ≤ 0
];

% 约束右侧向量b
b = [0; 0; 0; 0; 0; 0; 0; 0];

% 无等式约束
Aeq = [];
beq = [];

% 变量下界:p1-p4无下界(可任意取负数),v无下界
lb = [-inf; -inf; -inf; -inf; -inf];
% 变量上界:p1-p4≤0,v无上界
ub = [0; 0; 0; 0; inf];

% 调用linprog求解
[x, fval] = linprog(f, A, b, Aeq, beq, lb, ub);

% 输出结果
disp('玩家一的最优混合策略(p1,p2,p3,p4):');
disp(x(1:4));
disp('最优值v:');
disp(-fval);  % 转换回原最大化问题的目标值

关键调整点

  1. 目标函数转换:原问题是最大化v,linprog默认求最小化,因此目标向量f中v的系数设为-1,其余pᵢ的系数为0,等价于求解min -v。
  2. 约束条件整理:将所有原约束移项为Ax ≤ b的形式,同时添加pᵢ ≤ 0的约束到矩阵A中。
  3. 变量边界设置:针对pᵢ < 0设置每个p的上界为0、下界为负无穷;v无边界限制。

内容的提问来源于stack exchange,提问作者Georgia Bingham

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 20:45:13