【发布时间】:2014-07-20 15:15:18
【问题描述】:
我有一个基于网格的图,其中节点和边占据单元格。边可以交叉,但不能在同一方向上相互重叠。
假设我想优化图形,使边缘覆盖的距离最小化。 我目前正在对每个连接使用 A* 搜索,但该算法是贪婪的,并且没有提前计划。考虑下图,其中连接的顺序发生了变化(另请注意,任何给定边都可以有多个最短路径,请参见绿色和 紫色连接)。
我的直觉说这是 NP-Complete 并且需要进行详尽的搜索,随着图的大小增长,这将非常昂贵。但是,我无法展示这一点,而且它与其他通常涉及最小化交叉的图嵌入问题不太一样。
【问题讨论】:
-
这与最小成本的多商品流有关,这是 NP 难的。不过,我不确定是否会直接减少。
-
您真的需要最佳解决方案,还是仅仅需要一个好的解决方案?即使这是 NP 难的,很多这样的问题都承认 优秀 解决方案的简单算法,而不是最佳解决方案。
-
理想情况下,我想确定问题是否确实是 NP 难题(我将研究它与上述人建议的多商品流的关系)。但是,我也有兴趣了解提供出色解决方案的算法
-
“边缘覆盖的距离被最小化”——这是模棱两可的。您是指被一条或多条边覆盖的单元格总数吗?
-
@j_random_hacker 好点。覆盖的距离是根据每个单独连接的长度。这与您的描述不同,这意味着包含两条交叉边的单元格不会比只有一条边的单元格更昂贵。为了清楚起见,当我使用我的 A* 算法时,对于从一个单元到下一个单元的每个连续“步骤”,连接成本增加 1。
标签: algorithm optimization graph complexity-theory np