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

为什么Microsoft Solver Foundation求解线性规划时未返回可行解?

问题定位操作指南

1. 求解器初始化异常排查

返回报告显示求解器迭代次数为0,且求解完成状态为Unknown,说明求解流程未正式启动,优先排查以下配置问题:

  • 确认是否完成目标函数定义:仅添加约束未设置最小化/最大化目标,是MSF返回Unknown状态的高频原因
  • 检查变量边界合法性:时间变量t1、t2的上下界是否设置正确,避免出现上下界颠倒(如I1的r1大于d1)、未设置全局时间上界的情况
  • 核对变量类型与求解器匹配性:当前调用的是MILP求解器,若时间变量为离散整数型,需确保已正确标记为Integer类型,类型不匹配会导致求解器无法初始化。

2. 模型可行性验证

排除配置问题后,按以下步骤排查模型约束冲突:

  • 做最小规模测试:仅保留1个患者的所有约束,手动核验是否存在可行解:
    • t1需落在I1=[r1,d1]区间,且满足t1 + p1 ≤ d1,保证首次预约时长可完整容纳
    • 第二次预约区间I2=[t1 + p1 + g + x, t1 + p1 + g + x + l - 1]的右边界不可超过全局可用时间上限,且t2 + p2 ≤ I2的右边界
    • 两次预约满足间隔约束t2 ≥ t1 + p1 + g + x
  • 单患者测试通过后,逐步增加患者数量,直到复现Unknown状态,即可定位到冲突的参数或约束。

3. 求解器参数调整验证

当前使用默认原始单纯形法,可调整为对偶单纯形法开启不可行性检测,修改求解指令参数为:
Simplex(Algorithm = Dual, Arithmetic = Default)
对偶法对不可行模型的识别效率更高,会返回明确的不可行状态而非Unknown。

关联求解器返回报告:

===Solver Foundation Service Report===
Date: 15/10/2021 16:00:21
Version: Microsoft Solver Foundation 3.0.2.10889 Express Edition
Model Name: DefaultModel
Capabilities Applied: MILP
Solve Time (ms): 51
Total Time (ms): 103
Solve Completion Status: Unknown
Solver Selected: Microsoft.SolverFoundation.Solvers.SimplexSolver
Directives:
Simplex(TimeLimit = -1, MaximumGoalCount = -1, Arithmetic = Default, Pricing = Default, IterationLimit = -1, Algorithm = Default, Basis = Default, GetSensitivity = False)
Algorithm: Primal
Arithmetic: Exact
Variables: 133 -> 133 + 40
Rows: 40 -> 40
Nonzeros: 522
Eliminated Slack Variables: 0
Basis: Slack
Pivot Count: 0
Phase 1 Pivots: 0 + 0
Phase 2 Pivots: 0 + 0
Factorings: 0 + 0
Degenerate Pivots: 0 (0,00 %)
Branches: 0

关联模型示意图:
LP model1

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 13:15:04