我目前正在研究一个问题,我想尝试找到一个执行以下操作的算法:给定一个方形网格图 G 和起始节点 S 和一个结束节点 E,其中 E 和 S 在 G 中,找到从 S 到的路径 P具有最大值的 E 和 |P| <= k。如果它变得更容易,则可以使 G 成为 DAG。
网格单元为 0 或 1。
举个例子:
S--o--o--o
| : | |
o--o..o..o
: | : |
o--o--E--o
| : | |
o--o--o--o
S := "Starting State"
E := "Ending State"
- := "Edge value is 1"
. := "Edge value is 0"
k = 5 的解决方案(据我所见)
S o o o
|
o--o o o
|
o o--E o
o o o o
S 和 E 是任意的,所以不能假设只是向下和向右移动,但我可以将图转换为 DAG,但我假设会损失一些最优性。
边值是一个成本,G 是一个网格图,其中每个节点都连接到它的四个邻居。
首先,这个问题在文献中是否已经知道?我没有找到任何关于它的信息。是在 NP 中还是有人对快速算法有想法?我问了我选择的搜索引擎,有人在StackOverflow上问了一些可能与之相关的问题,但他们的问题描述与 100% 不匹配,因为他们的目标是最后一行,而我的目标是一个不同的节点。