gpt4 book ai didi

python - 如何生成所有可能的二元 nxn 矩阵,其中每行的总和为 1

转载 作者:行者123 更新时间:2023-12-01 00:53:59 24 4
gpt4 key购买 nike

我正在执行一项任务,必须向美国所有州分配 1 到 10 个配送中心。我在excel中做了一个模型来计算所有成本,显然任务的目标是找到最便宜的方法。我有 50 行(针对每个州)和 10 列(针对所有可能的 DC 位置)。我的模型基于这个矩阵,如果我更改矩阵,成本将立即显示。唯一的限制是每个状态仅由 1 个 DC 供电。

很明显,我无法手工制作所有可能的组合,我尝试将我的模型转换为优化程序(AIMMS),但是我已经放入 Excel 模型,这需要花费大量时间。我在想,如果我有所有可能的矩阵(用 R、Matlab 或 Python 生成,不在乎其中一个),我可以循环遍历我的电子表格,让程序读取成本,以确定最佳选择。理论上可以通过 1 个 DC 提供所有状态,最多 10 个,因此需要每一种可能的 1x50、2x50、3x50 ... 10x50 矩阵来确定最佳矩阵。

简而言之,是否有可能在最好的 R 中或在 Matlab 或 Python 中生成每行总和为 1 的每个 nxm 二进制矩阵?

最佳答案

TLDR:否。

<小时/>

让我们看一个最简单的例子:2 DC。您可能的行将是:

  • (1,0)
  • (0,1)

现在您想要构造所有可能的 2x50 矩阵。它们的数量是 2^50(50 行中可能有 2 行)。它等于:

1125899906842624

我们假设每个矩阵存储 100 个字节。所有 2x50 矩阵将存储:

(2**50) * 100 / 1024 / 1024 / 1024 / 1024 = 102400 TB 级数据。

处理所有这些(在普通计算机最乐观的结果中)将花费的时间等于:

(2**50) / 10**9 / 60 / 60 = 312小时。

10x50 会更多...

关于python - 如何生成所有可能的二元 nxn 矩阵,其中每行的总和为 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56358243/

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