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

如何用Excel Solver(Simplex LP)实现MOLP:最大化X同时最小化预算Y?

在Excel Solver中实现多目标线性规划(最大化X+最小化预算Y)

Excel Solver本身不支持直接同时优化两个目标,但可以通过以下几种实用方法实现“最大化X的同时尽可能减少预算Y”的需求,均适配你正在使用的Simplex LP方法:

方法1:优先级排序法(优先保证X最大化,再找最低预算)

这是最贴合你需求的方案——先锁定X的最大值,再在满足该条件的所有解中筛选预算最少的:

  • 第一步:打开Solver,设置目标为最大化X单元格,选择Simplex LP方法,添加所有业务约束条件,运行求解。记录此时得到的X最大值(记为X_max)。
  • 第二步:修改Solver设置,将目标改为最小化Y单元格,新增约束条件:X单元格 = X_max(确保X保持在最大值),再次运行Solver。此时得到的解就是在X达到最优的前提下,预算最经济的方案。

注:如果第一步求解后存在多个能达到X_max的解,第二步就能筛选出其中Y最小的那个,正好解决你提到的“满足约束但换选择成本更低”的问题。

方法2:加权求和法(双目标折中优化)

如果你不需要绝对优先X,而是希望在两个目标间找平衡,可以将双目标合并为一个综合目标函数:
综合目标公式:=w1*X - w2*Y
其中w1、w2是你根据业务重要性设定的权重(比如X权重0.8,Y权重0.2,权重之和不强制为1,但需保持比例合理)。

  • 在Excel中新建一个单元格计算这个综合目标;
  • 设置Solver以最大化该综合目标为目标,用Simplex LP方法,添加所有约束后求解。

注:权重的调整会直接影响结果,需要根据实际需求反复测试找到合适的平衡。

方法3:ε-约束法(允许X小幅让步换预算节省)

如果可以接受X在最大值基础上小幅下降来大幅节省预算,可使用此方法:

  • 先通过第一步求解得到X_max;
  • 设置约束条件:X单元格 >= X_max - ε(ε是你能接受的X最大损失值,比如X_max=100,ε=3,即X不低于97);
  • 把Solver目标改为最小化Y,运行求解即可得到X接近最大值时的最低预算方案。

额外注意事项

  • 确保所有目标函数和约束条件都是线性的,否则Simplex LP方法无法生效;
  • 如果第一步最大化X后,添加X=X_max约束时Solver提示无解,说明X_max的最优解唯一,此时对应的Y就是固定值,不存在更省钱的替代方案。

内容的提问来源于stack exchange,提问作者Reece Donaldson

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 13:45:23