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

GLOP等LP求解器Python脚本实现及初始解限时优化技术问询

线性规划MPS模型求解脚本及功能说明

一、GLOP的最小Python求解脚本

GLOP是Google OR-Tools套件中的线性规划求解器,需先安装依赖:

pip install ortools

对应命令行read model.mps+optimize的最小实现脚本:

from ortools.linear_solver import pywraplp

# 初始化GLOP求解器
solver = pywraplp.Solver.CreateSolver('GLOP')
if not solver:
    exit()

# 加载MPS模型
if solver.LoadModel('model.mps') != pywraplp.Solver.OK:
    print("模型加载失败")
    exit()

# 执行优化
solve_status = solver.Solve()

# 可选:输出基础求解结果
print(f"求解状态: {solver.StatusName(solve_status)}")
if solve_status == pywraplp.Solver.OPTIMAL:
    print(f"最优目标值: {solver.Objective().Value()}")

二、PDLP、CLP等求解器的实现方式

PDLP求解器

PDLP同样属于Google OR-Tools生态,安装依赖与GLOP一致,仅需修改求解器名称即可:

from ortools.linear_solver import pywraplp

solver = pywraplp.Solver.CreateSolver('PDLP')
if not solver:
    exit()

solver.LoadModel('model.mps')
solver.Solve()

CLP求解器

CLP是COIN-OR项目中的开源LP求解器,需先安装其Python绑定:

pip install coinor-clp

最小求解脚本:

from clp import CLPSolver

solver = CLPSolver()
# 读取MPS模型
solver.readMps('model.mps')
# 执行优化
solver.initialSolve()

# 可选:输出结果
print(f"目标值: {solver.objectiveValue()}")

三、指定初始解与限时寻优功能支持

指定初始解

所有三款求解器均支持设置初始解,帮助求解器更快收敛:

  • GLOP/PDLP:通过变量的SetHint方法设置初始值:
    # 遍历模型所有变量,为每个变量设置初始值
    for var in solver.variables():
        var.SetHint(your_initial_value)  # your_initial_value为预设的初始解数值
    solver.Solve()
    
  • CLP:通过setInitialSolution方法批量设置:
    vars_list = solver.variables()
    initial_values = [val1, val2, ...]  # 数值顺序需与变量列表对应
    solver.setInitialSolution(vars_list, initial_values)
    solver.initialSolve()
    

限时寻优

三款求解器均支持设置求解时间限制,超时后返回当前找到的最优可行解:

  • GLOP/PDLP:SetTimeLimit方法,单位为毫秒:
    solver.SetTimeLimit(30000)  # 限制求解时间为30秒
    solver.Solve()
    
  • CLP:setTimeLimit方法,单位为秒:
    solver.setTimeLimit(30)  # 限制求解时间为30秒
    solver.initialSolve()
    

参考问题翻译:如何为大规模线性规划问题找到一个可行但非最优的解?

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 17:57:14