Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Optimization 大型线性规划的逼近_Optimization_Linear Programming - Fatal编程技术网

Optimization 大型线性规划的逼近

Optimization 大型线性规划的逼近,optimization,linear-programming,Optimization,Linear Programming,我有一个线性约束的简单LP。决策变量很多,大约有2400万个。我一直在使用lpSolve来处理小样本,但是这个解算器的伸缩性不好。有没有办法得到LP的近似解 编辑: 这个问题是一个调度问题。有100万人需要安排在24小时中的一个小时内,因此有2400万个决策变量。将人员$i$安排为小时$j$将获得$R{ij}$奖励。约束条件是每个人都需要安排在某个小时内,但每个小时只有有限的约会时间$c$一个利用大量变量和约束条件接近LP/IP的好方法是寻找以某种逻辑方式将决策变量分组的方法。由于您只给出了问题

我有一个线性约束的简单LP。决策变量很多,大约有2400万个。我一直在使用lpSolve来处理小样本,但是这个解算器的伸缩性不好。有没有办法得到LP的近似解

编辑:


这个问题是一个调度问题。有100万人需要安排在24小时中的一个小时内,因此有2400万个决策变量。将人员$i$安排为小时$j$将获得$R{ij}$奖励。约束条件是每个人都需要安排在某个小时内,但每个小时只有有限的约会时间$c$

一个利用大量变量和约束条件接近LP/IP的好方法是寻找以某种逻辑方式将决策变量分组的方法。由于您只给出了问题的草图,因此这里有一个解决方案

方法1:将人员分为小批量

与其说是100万人,不如把他们想象成100个单位,每人10万人。所以现在只有2400(24 x 100)个变量。这将使您部分地了解到这一点,请注意,这不是最佳解决方案,而是一个很好的近似值。当然,您可以将1000人分成1000批,并获得更细粒度的解决方案。你明白了

方法2:根据成本分组

看看你的简历。大概你没有一百万种不同的成本。通常只有几个独特的成本值。这个想法是将许多具有相同成本结构的人组成一个“群体”。现在你解决了一个小得多的问题——哪一组人进入哪一小时

再一次,一旦你有了这个想法,你就可以让它变得很容易接受

根据OP的评论更新: 就其本质而言,创建这些组是一种近似技术。无法保证获得最佳解决方案。然而,仔细分组(通过观察具有相同或非常相似成本结构的队列)的整体思想是以更少的计算工作量获得尽可能接近最优的解决方案

  • 我还应该补充一点,当缩放时(分组只是缩小问题规模的一种方法),其他常量也应该缩放。也就是说,c_j也应采用相同的单位(10K)
  • 如果人员A、B、C不能放入时间段j,则模型将在成本最低的时间段中尽可能多地挤入这些人员,并将其他人员移至成本稍高但可以容纳的其他时间段

希望这能帮助你朝正确的方向前进。

假设你有很多重复的人,你现在使用的变量太多了

假设你只有1000种不同类型的人,其中一些发生2000次,而另一些发生500次

然后,你只需优化分配给每小时的人员比例。(请注意,您确实需要通过添加2000或500作为常量来稍微调整目标函数和约束)


好消息是,这将为您提供仅包含“几个”变量的最佳解决方案,但根据您的问题,您可能需要对结果进行四舍五入,以获得完整的结果。

请提供有关模型结构的更多详细信息。任何人关心的模型都不会随意创建24000000个变量;变量是如何联系在一起的是至关重要的。如果一个人被安排在j小时,你有二进制变量$x{ij}$=1吗?还有其他限制吗?我如何解释每个小时的预约时间有限这一限制?假设每小时有100000人的空间,而A、B和C人(属于批次X)真正的最佳时间是中午。然后,如果我们不能将第X批的所有内容都安排在中午的约会中,那么A、B和C将不会安排在它们的最佳时间。是吗?@JCWong是的,没错。分组是一种近似技术。我正在更新我的回复,以解决您提出的问题。