【发布时间】:2020-11-15 22:57:28
【问题描述】:
我正在尝试解决我目前遇到的问题,并了解如何继续的任何帮助/提示/提示。
首先,我将向您解释这个问题以及我如何尝试解决它。
基本问题: 有一个任务池需要完成(池中大约有 50 个任务)。 从一项任务更改为一项新任务需要成本(时间)。 有一个 nxn-Matrix(ChangeCostMatrix) 显示转移每个任务的成本。 成本是不对称的(从 T1 到 T5 的成本 = 5,从 T5 到 T1 的成本 = 2)。
据我了解,这是(不对称)旅行商问题,文献中有很好的描述。 现在我将问题描述为高级问题,我不知道如何解决它。
高级问题: 用任务计划接下来的 50 小时(大约可以解决 20 个任务),使成本最小化。 这意味着从 50 个任务中取出 20 个任务,并最大限度地降低成本,从而解决尽可能多的任务。每个任务都需要一些时间来完成。该时间存储在 TaskDurationMatrix 中。
池中的每个任务都有一个日期或时间,直到它需要完成。在大多数情况下,这将导致假设有 10 个任务需要在接下来的 50 小时内解决。 将给出一个起始任务,从哪里开始最佳游览。
总结一下,我尝试解决以下任务: 用任务计划接下来的 50 小时,从开始任务开始,解决所有需要解决的任务并执行额外任务,从而将时间成本降至最低。
输入:
- 任务池 n = 50
- StartingTask 即 T4
- TimePeriod 即 50 小时
- TaskDurationMatrix(1 x n):T4:1h,T5:1.5h ...
- AsymmetricChangeCostMatrix(n x n): T1 - T3: 3h, T3 -T1 2h
输出:
- 时间段的任务顺序:StartikgTask -> T15 -> T11 -> T7 -> T23 -> T14 -> T18...
显然这是一项优化任务。 有谁知道我可以如何处理这类任务,并告诉我可以从哪里开始或需要进入哪个领域?
【问题讨论】:
-
对如何在此处设置目标函数感到有些困惑。有哪些元素?如果您有大约 10 项必需的任务,并且有时间在 50 小时内完成大约 20 项,并且您正在努力减少时间……为什么要完成 10 项以上的任务?
-
是的,您理解正确,但目标是尽可能多地从池中吸收并完成所需的任务。从一个任务转移到另一个任务有不同的时间成本。目标是最小化任务之间的总时间。
标签: algorithm optimization graph-algorithm traveling-salesman