【发布时间】:2013-06-10 04:09:52
【问题描述】:
令 T 是一棵树,其中每个节点代表一个状态。根代表初始状态。从父节点到子节点的边指定了可以对父节点执行的操作以更改状态(新状态将是子节点)。每条边都与增益相关联,即,我通过从父状态转换到子状态获得了一些东西。
此外,假设从根到叶节点的每条路径的长度为 Q。
我的目标是找到最有希望的长度为 Q 的路径,即保证最大增益的路径(其中路径增益定义为附加到路径边缘的增益的总和)。
显然,我不想探索整个树,因为 T 可能非常大。
因此,我考虑申请 A*。我知道 A* 可以用来找到图中的最短路径,但是:
- 我没有成本,我有收获
- 我想找到最长的路径(实际上不是到起始节点的距离最长,而是权重,如果加起来,给出最高值)
- 我有一个树而不是一个图(没有循环!)
最后,我想出了一组我想向你提出的问题:
- A* 适合这类问题吗?我会通过应用找到最佳解决方案吗?
- 由于 A* 需要在最短路径的情况下使用(低估)从当前节点到目标的成本,我是否需要寻找从当前节点到目标的增益的(高)估计目标并将其用作启发式方法?
- 给定 T 中的节点 n,我的想法是将启发式 h(n) 计算为 n 的子节点获得的增益的总和,这可能不是那么严格。您认为有更好的解决方案吗?
编辑:给定树中的节点 n,附加到从 n 传出的边的增益不能大于数量 U(n)。而且,随着n的深度增加,U(n)变得越来越小。
【问题讨论】: