【发布时间】:2019-10-14 22:17:27
【问题描述】:
我正在执行一项任务,我必须向美国所有州分配 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 二进制矩阵?
【问题讨论】:
-
几乎所有事情都可以使用编程语言实现。但我认为这不是真正的问题,对吧?否则答案只是“是”。但是,这不是代码编写服务,我们会帮助您解决问题,一般需要minimal reproducible example。阅读更多How to Ask
-
所以它基本上是Travelling salesman problem。这是一个未解决的数学问题,但是有一些启发式和概率算法可以达到一些好的结果。