Algorithm “与”的区别是什么;“爬山”;及;贪婪的;算法?
请解释“爬山”和“贪婪”算法之间的区别Algorithm “与”的区别是什么;“爬山”;及;贪婪的;算法?,algorithm,Algorithm,请解释“爬山”和“贪婪”算法之间的区别 似乎两者都很相似,我怀疑“爬山”是一种算法;这似乎是一种优化。这是正确的吗?是的,你是正确的。爬山是一种通用的数学优化技术(见:)。贪婪算法是任何一种算法,它只是简单地选择它在当时看到的最佳选择并接受它 这方面的一个例子是在尽量减少硬币数量的同时进行更改(至少使用美元)。你取最高面额的硬币中的大部分,然后再取下最高面额的大部分,直到你达到所需的数量 这样,爬山就是一种贪婪算法。爬山和贪婪算法都是可用于优化问题的启发式算法。在优化问题中,我们通常寻求一些问题
似乎两者都很相似,我怀疑“爬山”是一种算法;这似乎是一种优化。这是正确的吗?是的,你是正确的。爬山是一种通用的数学优化技术(见:)。贪婪算法是任何一种算法,它只是简单地选择它在当时看到的最佳选择并接受它 这方面的一个例子是在尽量减少硬币数量的同时进行更改(至少使用美元)。你取最高面额的硬币中的大部分,然后再取下最高面额的大部分,直到你达到所需的数量
这样,爬山就是一种贪婪算法。爬山和贪婪算法都是可用于优化问题的启发式算法。在优化问题中,我们通常寻求一些问题元素的最佳组合或排序。给定的组合或顺序就是解决方案。在这两种情况下,都可以对解决方案进行评估,以将其与其他解决方案进行比较 在爬山启发式中,从初始解开始。生成一个或多个相邻解决方案。选择最好的并继续,直到没有更好的解决方案。这通常会产生一种解决方案。在爬山中,我们需要知道如何评估解决方案,以及如何生成“邻居” 在贪婪的启发式中,我们需要了解手头问题的一些特殊情况。贪婪算法使用信息生成单个解 优化问题的一个好例子是0-1背包。在这个问题中,有一个背包有一定的重量限制,还有一堆物品要放在背包里。每个项目都有一个权重和一个值。目标是使背包中物品的价值最大化,同时将重量保持在限制范围内 贪婪算法将拾取密度最高的对象并将其放入背包中,直到背包装满为止。例如,与砖块相比,钻石的价值高,重量小,因此我们将首先放入钻石 下面是一个贪婪算法失败的例子:假设你有一个容量为100的背包。您有以下项目:
- 钻石,价值1000,重量90(密度=11.1)
- 5枚金币,价值210,重量20(每枚密度=10.5)
爬山不是贪婪的算法。你的结论听起来有误导性。您描述的特定贪婪算法贪婪地构造解决方案,而爬山启发式算法贪婪地达到局部最优。唯一的区别是,第一步中的贪婪步骤涉及构造一个解,而爬山中的贪婪步骤涉及选择一个邻居(贪婪局部搜索)。爬山是一种贪婪的启发。如果你想区分算法和启发式,我建议你阅读米科拉的答案,这更准确。