gpt4 book ai didi

matlab - Matlab Linprog 可以支持的最大矩阵

转载 作者:太空宇宙 更新时间:2023-11-03 20:35:18 25 4
gpt4 key购买 nike

我想使用 MATLAB linprog 来解决一个问题,我通过一个更小、更简单的例子来检查它。

但是我想知道MATLAB是否可以支持我的真实问题,可能有一个300*300*300*300矩阵...


也许我应该给出确切的问题。有一个网络节点的有向图,我想在一些约束下得到边缘容量的最低利用率。设 m 为边数,n 为节点数。有 mn² 变量和 nm² 约束。不幸的是,n 可能达到 300...

我想用MATLAB linprog 来解决。如上所述,恐怕MATLAB无法支持...最后矩阵必须是稀疏的,有什么办法可以简化吗?

最佳答案

首先:300*300*300*300 数组不叫矩阵,而是张量(或简称数组)。因此你不能在它上面使用矩阵/向量代数,因为它没有为维数大于 2 的数组定义,你当然不能在没有某种解释步骤的情况下在 linprog 中使用它。

第二:如果我将 300⁴ 解释为表示矩阵中元素的数量(而不是大小),这实际上取决于 MATLAB(或任何其他软件) ) 可以支持。

正如 ben 已经回答的那样,如果您的矩阵已满,那么答案很可能是300^4 doubles 将消耗将近 65GB 的内存,因此任何软件包都不太可能能够从内存中处理所有这些(除非您实际上有 > 65 GB 内存)。你可以使用 blockproc -type 方案,您只将矩阵的一部分加载到内存中,而将其余部分留在硬盘上,但这非常慢。此外,如果您的矩阵那么很大,您完全有可能忽略了一些可以简化问题的方法。

如果您的矩阵稀疏(即包含很多零),那么可能。看看 MATLAB 的 sparse命令。

那么,您的问题到底是什么?那个巨大的矩阵从何而来?也许我或其他人看到了一种方法,可以将矩阵简化为更易于管理的东西。

关于matlab - Matlab Linprog 可以支持的最大矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22161748/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com