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

Excel Solver线性规划:If(x>30,1,0)替代方案与三周库存约束实现

解决Excel Solver中连续三周库存超标的约束问题

一、替换IF语句的线性化约束

先修正你之前的单周库存判断逻辑,要实现「当库存x>30时y=1,否则y=0」的逻辑,需用以下两个线性约束(y为0-1二进制变量):

  • x - 30 ≤ M * y:当x>30时,左边为正,y必须取1才能满足约束;当x≤30时,y取0即可满足。
  • 30 - x ≤ M * (1 - y):当x≤30时,左边为正,1-y必须取1(即y=0);当x>30时,左边为负,自动满足约束。

这里的M是一个足够大的常数,比如取你模型中库存可能达到的最大值(如100),确保约束逻辑生效。

二、连续三周不超标的约束设置

要避免连续三周库存超标(即连续三周y=1),只需对每一周i(从第3周到计划的最后一周)添加如下约束:

  • y_i + y_{i-1} + y_{i-2} ≤ 2

这个约束的逻辑是:任意连续三周的y值之和最多为2,意味着不可能出现三个1(即连续三周超标),最多只能有两周超标,完全匹配你的需求。

三、整体模型整合

把上述约束加入你的运输模型:

  1. 为每周定义一个0-1变量y,用来标记当周库存是否超过30。
  2. 为每个y变量添加对应的两个线性约束,关联当周库存x。
  3. 为第3周及之后的每周添加连续三周y值之和≤2的约束。
  4. 保留原有的库存范围约束和最小化发货次数的目标函数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 23:15:58