python - TypeError:linprog 的输入无效:A_ub 必须是数字二维数组,每行代表一个上限不等式约束
问题描述
我正在使用内点法进行线性优化。我的优化代码看起来像
z=scipy.optimize.linprog(c, A_ub, b_ub, bounds=bounds,method='interior-point',
options = {"maxiter":10000})
我有 34K 的数据。使用以下代码检查 A_ub 的形状
A_ub.shape
Out[7]: (37439, 74878)
最初为 8K 数据运行相同的代码,但现在它抛出错误
TypeError: Invalid input for linprog: A_ub must be a numerical 2D array with each row representing an upper bound inequality constraint
你能帮我解决这个问题吗?
解决方案
我从旧代码中找到了这个例子
from scipy import optimize
optimize.linprog(
... c = [1, 3],
... A_ub=[[1, 1]],
... b_ub=[4],
... bounds=(1, 6),
... method='interior-point'
... )
con: array([], dtype=float64)
fun: 4.00000000831602
message: 'Optimization terminated successfully.'
nit: 4
slack: array([2.])
status: 0
success: True
x: array([1., 1.])
当然,您可以使用简单的或任何其他方法。可能你应该检查内存,你正在处理大型数组。
推荐阅读
- sql - 为什么这不起作用?ORA-00979: 不是 GROUP BY 表达式
- javascript - Run Promise all in an await for loop
- php - Cloudflare HTTP_CF_CONNECTING_IP 未显示真实 IP
- javascript - Dayjs 没有选择当前系统时间
- javascript - 是否可以将 Adsense/Adbmob 等 3rd 方广告与 Video.js 集成?
- r - 一旦我使用了“scale_fill_discrete()”函数,是否可以手动更改条形图的颜色?
- xcode - Command CompileSwift 在 Jenkins 上归档构建失败
- php - 在 Laravel 中调试时如何解决“Illuminate\Support\Facades\Route”错误?
- javascript - Panolens Tile 出现错误“PANOLENS.tile 不是构造函数”
- mysql - 将 2 个表中的数据插入到新表中,即 table_out,如下所示