You need to enable JavaScript to run this app. 支持百万级变量的Python大规模凸优化库咨询(CVXOPT溢出)
优惠活动
大模型
产品
解决方案
定价
更多

支持百万级变量的Python大规模凸优化库咨询(CVXOPT溢出)

大规模变量规模凸优化求解相关问题

优化问题形式

待求解的凸优化问题完整形式为:

  • 目标函数:min p^T*q + |c|
  • 决策变量边界约束:
    • lower_bound < q < upper_bound
    • lower_bound < c < upper_bound
  • 等式约束:A*q + B*c = b
  • 线性边界约束:lower_bound < Rq < upper_bound

当前实现与问题

目前基于cvxopt.modeling的核心建模代码如下:

from cvxopt.modeling import variable, op, sum
q = variable(numb_prod, 'q')
c = variable(numb_capacity, 'c')
prod_price = p.trans() * q
problem = op(sum(prod_price) + 1e-6*sum(abs(c)), [constraints])
problem.solve(format='sparse', solver='glpk', options={'glpk':{'msg_lev':'GLP_MSG_OFF'}})

参数说明:p、b为向量,A、B、R为稀疏矩阵,q、c为决策变量。

当前构建的优化问题共包含108575个变量,已超出cvxopt框架的处理能力。经排查,报错并非底层求解器导致,而是cvxopt框架内部实现触发的溢出错误,完整报错栈如下:

Traceback (most recent call last):
File "C:\Users\OsRas\AppData\Local\Continuum\anaconda3\lib\site-packages\IPython\core\interactiveshell.py", line 3325, in run_code
exec(code_obj, self.user_global_ns, self.user_ns)
File "", line 489, in 
q, c, total_cost_x, water_values, list_numb_of_capacity_variables = solution(demand, price_purchase_power, supply)
File "", line 391, in solution
test = problem.solve(format='sparse', solver='glpk', options={'glpk':{'msg_lev':'GLP_MSG_OFF'}})
File "C:\Users\OsRas\AppData\Local\Continuum\anaconda3\lib\site-packages\cvxopt\modeling.py", line 2600, in solve
t = self._inmatrixform(format)
File "C:\Users\OsRas\AppData\Local\Continuum\anaconda3\lib\site-packages\cvxopt\modeling.py", line 2479, in _inmatrixform
for v in variables: vmap[v] = x[vslc[v]]
File "C:\Users\OsRas\AppData\Local\Continuum\anaconda3\lib\site-packages\cvxopt\modeling.py", line 240, in __getitem__
return (+self).__getitem__(key)
File "C:\Users\OsRas\AppData\Local\Continuum\anaconda3\lib\site-packages\cvxopt\modeling.py", line 931, in __getitem__
f._linear = self._linear[l]
File "C:\Users\OsRas\AppData\Local\Continuum\anaconda3\lib\site-packages\cvxopt\modeling.py", line 1385, in __getitem__
for v,c in iter(self._coeff.items()):
OverflowError: Python int too large to convert to C long

核心诉求

  • 寻找可支持百万级变量规模的Python凸优化库,匹配上述问题的求解需求
  • 评估是否必须切换至其他开发语言,才能支撑该规模的优化任务运行

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.05 01:15:08