Python中调度与分配问题优化的结合

2024-04-28 20:25:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在Python中结合调度和分配问题

更准确地说,我正在尝试将交付分配给卡车,并为这些交付创建一个时间表(以日期和时间的最佳方式)

现在,我在一个图中建模了这个问题,其中节点表示不同的位置,节点(位置)之间的有向边表示交付。我的图表是一个多重图表,因此交付(例如从a到B)可能会更频繁。作为我的输入,我知道需要完成的所有交付以及满足请求的可用卡车。 这个问题还有一些附加条件。首先,卡车必须在一段时间后进行维护(取决于行驶的公里数),同时我希望尽可能少的卡车进行维护。也就是说,维护到期的时间可以提前。此外,还有一个预定义的指定卸载时间,该时间不允许小于此预定义时间

到目前为止,我的想法是,我还将维护建模为一个“交付”,唯一的区别是,该交付在同一点(可以进行维护的位置)开始和结束。 每次交付或维护都有一个预定义的长度。我的想法是,每次交付或维护都是一个带有属性的边缘,这些属性是:长度(此“任务”的持续时间)、开始时间(仅分配给优化前的维护,应在优化后为所有任务填写),并由(定义完成交付/维护的卡车,对于维护,也在优化之前预定义)。

我正在用网络做所有与图形相关的建模(希望这是一个好的选择)。

优化问题。目标是在尽可能短的时间内将交货分配给卡车,同时尽可能少的卡车进行维护。

所以我有一个重要的问题,我如何在Python中实现这一点?你们中有谁知道我如何为我的日程安排建模,以便我的优化为我提供所需的输出?什么包/优化工具最适合这个问题?

我希望一切都是可以理解的,如果不是请询问


Tags: 网络属性节点定义方式图表时间时间表
1条回答
网友
1楼 · 发布于 2024-04-28 20:25:06

我一直在寻找同一个问题的答案。然而,我必须从大量可能的候选人中选择一组最佳候选人来制定时间表。最佳候选者必须满足约束的数量,并且必须使目标函数最大化。 我从谷歌找到了一个很好的工具,上面有分别解决这两个问题的例子。但我还不知道如何将这两种方法结合起来

赋值:https://developers.google.com/optimization/assignment/overview

日程安排:https://developers.google.com/optimization/scheduling

相关问题 更多 >