【发布时间】:2009-01-08 10:31:39
【问题描述】:
我的数学课远远落后,我目前正在努力寻找一个体面的解决方案来解决我遇到的问题:我有一棵树,其中的节点是动作,并且根据多个标准“加权”:所述行动的成本、花费的时间、必要的资源、干扰等......
我想在这棵树中找到最小化成本和时间的路径,例如最小化成本和时间,或干扰和成本和时间等。我的问题是我不知道该怎么做,除了通过提出一个全局成本函数 F(cost, time, resources,...),并使用 F(...) 的结果作为我唯一的权重应用常规树遍历算法。 但是,我该如何想出 F ?像“F(cost, time, resources) = a * cost + b * time + c * resources”这样的东西感觉很“不专业”...
编辑:
我想避免使用“求和”这个词,因为我不确定这是否真的可行,但本质上,这就是我正在做的事情:计算每个“路径”或“分支”的总成本从那个顶部节点到叶子之一,并选择最小化成本的“路径”或“分支”。问题是每个节点都有一个基于所需时间、财务成本、资源使用等的权重。
因此,正如 Stephan 所说,似乎不可避免地必须提出一个公式,它将所有这些参数减少到每个节点的一个全局成本,然后我可以在沿树向下移动时跨节点求和,然后选择总成本最小化的路径。
所以我想我的问题确实是,是否有一种方法可以选择该功能?
感谢您的回答和 cmets,现在我的头脑开始变得更加清晰了。
【问题讨论】:
-
如果您能给出一个具体的数据示例,将会有所帮助。我通常将“查找路径”与图表而不是树相关联。
-
如果我使用“分支”这个词而不是“路径”,是否更有意义?
-
您是否在沿树向下移动时对跨节点的成本/时间求和?或者您只是在寻找具有最低成本/时间的最终(叶)节点?如果是后一种情况,父节点与其子节点的成本/时间之间是否存在关系?
-
找到“最小化成本和时间的路径”是什么意思?最小化一个的路径可能不会最小化另一个。
标签: optimization math tree path-finding