为什么贪心算法是启发式的,而不是元启发式的?
Why greedy algorithm is heuristic, not meta-heuristic?
AFAIK,根据这个答案,启发式算法与问题相关,元启发式算法与问题无关。1
但是贪心算法可以应用于很多问题,比如最小生成树和最短路径问题。我的问题是为什么它依赖于问题,而不是独立于问题?
有很多贪心算法针对不同的问题,贪心算法不是一个特定的算法,它是一个class 使用相同方法解决问题的算法。 Dijkstra的算法、Prim的算法、Kruskal的算法等等完全不同,但是都是greedy.
在 Dijkstra 的算法中,您采用与它的距离最短的未触及节点。
在 Prim 的算法中,您采用一条边,它以最小的权重连接树节点和非树节点。
在 Kruskal 的算法中,你采用一条边,它连接两棵不同的树,权重最小。
并且有许多贪心算法甚至不适用于图形。
所有这些启发式算法都是不同的并且针对特定问题,因为这些算法解决的是完全不同的问题。
AFAIK,根据这个答案,启发式算法与问题相关,元启发式算法与问题无关。1
但是贪心算法可以应用于很多问题,比如最小生成树和最短路径问题。我的问题是为什么它依赖于问题,而不是独立于问题?
有很多贪心算法针对不同的问题,贪心算法不是一个特定的算法,它是一个class 使用相同方法解决问题的算法。 Dijkstra的算法、Prim的算法、Kruskal的算法等等完全不同,但是都是greedy.
在 Dijkstra 的算法中,您采用与它的距离最短的未触及节点。 在 Prim 的算法中,您采用一条边,它以最小的权重连接树节点和非树节点。 在 Kruskal 的算法中,你采用一条边,它连接两棵不同的树,权重最小。 并且有许多贪心算法甚至不适用于图形。
所有这些启发式算法都是不同的并且针对特定问题,因为这些算法解决的是完全不同的问题。