区间调度,但具有旅行和位置

时间:2014-04-04 02:21:14

标签: scheduling dynamic-programming

enter image description here

所以我一直在思考这个问题并且我认为这可能是通过首先找到最早的截止日期来进行良好的老式间隔调度。

这是我的方法, 计算每个项目的截止日期(从分支落下的时间+项目从分支中掉落所需的时间 - 我需要在那里旅行并抓住它的时间)

如果截止日期早于当前时间,我无法抓住它。 但是,在可达到的那些中,我抓住了最早的那个。然后我再次计算每次项目的最早截止日期,这次是在我的新位置喂养。

然而,这种方法似乎效率不高。有人能指出我更好的吗?

1 个答案:

答案 0 :(得分:0)

解析并存储输入后,您将尝试访问的两个维度( x t )的点数组,不超过一个x每吨。您需要找到通过该数组的最佳路径。

一种方法是暴力破坏这一点。你有(2 * s )^ t 可能的路径 - 实际上更少,因为你不应该超越0 - l 。因此,对于非常小的t,您可以真正找到最佳路径 - 即尝试每条可能的路径,查看每条路径可以获得的内容,并从最佳路径返回多少内容。

但是,如果 t 变大,那么蛮力方法需要一些时间(亚指数时间)。

如果您要对此进行编码,则需要找到一些近似值。有许多算法具有不同的权衡,例如https://en.wikipedia.org/wiki/Best-first_search

在调度程序中找到的优先级队列在您正确陈述时确实对此有用。