【发布时间】:2020-02-14 11:30:48
【问题描述】:
关于一个我已经解决并使用 excel 的线性程序,我遇到了一些麻烦,但现在我想在 r/python 中执行它,因为我已经达到了 excel 和求解器的限制。因此,我正在就这个特定主题寻求帮助。
我通过更改 lp.assign 函数尝试使用 lPsovle 包,但我无法提出解决方案。
问题如下:
假设我是商品的交付者。
我有不同的站点服务于不同的区域。这些领域必须满足他们的要求。 另一方面,我的仓库对他们可以处理和交付的容量有限制。 一个站点可以服务多个区域,但一个区域只能由一个站点服务。
我有站点和区域之间连接的距离/成本矩阵以及对这些区域的需求。
此解决方案的目标应该是尽可能少地为这些区域提供服务。
假设成本/距离矩阵如下所示:
assign.costs <- matrix (c(2, 7, 7, 2, 7, 7, 3, 2, 7, 2, 8, 10, 1, 9, 8, 2,7,8,9,10), 4, 10)
因此,这将创建我的矩阵,其中客户/区域位于第一行/标题中,而仓库位于第一列/行名称中。
现在地区/客户的需求是:
assign.demand <- matrix (c(1,2,3,4,5,6,7,8,9,10), 1, 10)
容量限制,depos 可以服务的数量是:
assign.capacity <- matrix (c(15,15,15,15), 4, 1)
所以现在我希望这个问题由 lp 解决以生成分配,根据这些限制应该由哪个仓库服务哪个区域。
结果应该是这样的:
assign.solution <- matrix (c(1,0,0,0 ,0,1,0,0, 1,0,0,0, 1,0,0,0 ,0,0,0,1), 4, 10)
至于限制,这意味着每列必须有一个。
我尝试使用 lpSolve 中的 lpsolve 和 lp.assign 函数,但我不知道如何实现我所拥有的那种确切的限制,并且我已经尝试更改 lp.assign 函数但没有成功。 如果有帮助,我还可以制定 lp 的方程。
谢谢大家的帮助,我现在真的卡住了:D
BR
【问题讨论】:
-
这并不是真正的分配问题。您可以将此建模为分配问题和运输问题的组合。这将产生一个通用的 MIP 模型。首先是写下数学模型。之后事情就相对简单了。
-
是每件物品的成本还是可能几件物品的每次运输成本? IE。如果第一个仓库向最后一个客户运送 10 件物品,成本是 10 还是 100?
标签: r optimization linear-programming operations-research