当前位置: 首页 > 知识库问答 >
问题:

贪婪算法及其实现

顾淳
2023-03-14

你好,我刚刚开始学习贪婪算法,我首先看了经典的硬币变化问题。我可以理解算法中的贪婪(即,选择局部最优解以实现全局最优),因为我选择硬币的最高价值,使得总和{所选硬币的价值}

贪婪算法是解决特定范围问题的唯一方法吗?或者它们是解决问题的一种更有效的方式?

你能给我同样问题的伪代码吗?

共有3个答案

秦天宇
2023-03-14

贪婪算法只是一类迭代构建/改进解决方案的算法。

想象一下最著名的问题——TSP。你可以将其公式化为整数线性规划问题,并将其交给ILP求解器,它会给你全局最优解(如果有足够的时间)。但是你可以用贪婪的方式去做。你可以构建一些解决方案(例如,随机地),然后寻找改进你的解决方案的改变(例如,交换两个城市的顺序),你继续做这些改变,直到不可能有这样的改变。

因此,底线是:贪婪算法只是一种有效解决难题的方法(及时,但在解决方案的质量上不是必需的),但还有其他类别的算法可用于解决此类问题。

楚宪
2023-03-14

我认为总有另一种方法可以解决问题,但有时,正如你所说,它可能会效率降低。

例如,您可以随时检查所有选项(硬币排列),存储结果并选择最佳选项,但效率当然很糟糕。

希望有帮助。

乌学博
2023-03-14

现实生活中有很多贪婪算法的例子。其中一个明显的例子是硬币兑换问题,为了在某种货币上找零,我们重复分配最大面额,因此,为了给出17美元61美分的零钱,我们给出一张10美元的钞票,一张5美元的钞票,两张1美元的钞票,两张25美分的钞票,一毛钱和一便士的钞票。通过这样做,我们保证最小化钞票和硬币的数量。这个算法并不适用于所有的货币系统…更多

 类似资料:
  • 本文向大家介绍贪婪算法相关面试题,主要包含被问及贪婪算法时的应答技巧和注意事项,需要的朋友参考一下 参考回答: 贪婪算法(贪心算法)是指在对问题进行求解时,在每一步选择中都采取最好或者最优(即最有利)的选择,从而希望能够导致结果是最好或者最优的算法。贪婪算法所得到的结果往往不是最优的结果(有时候会是最优解),但是都是相对近似(接近)最优解的结果。贪婪算法并没有固定的算法解决框架,算法的关键是贪婪策

  • 有人有线索为什么它对案件2不起作用吗?非常感谢你的帮助。编辑:案例2的预期结果是6130美元。我好像得到了6090美元。

  • 本文向大家介绍PHP实现的贪婪算法实例,包括了PHP实现的贪婪算法实例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了PHP实现的贪婪算法。分享给大家供大家参考,具体如下: 背景介绍:贪婪算法与数据结构知识库算法可以说是离我们生活最近的一种算法,人总是贪婪的嘛,所以这种算法的设计是很符合人性的。之所以这么说,是因为人们会在生活中有意无意的使用贪婪算法来解决问题。最常见的就是找零钱了,每个人

  • 任务是典型的背包问题。求解时应采用贪婪算法。我设法创建了下面的代码,但它工作得太慢了。你能告诉我怎么加快速度吗?谢谢你。 c是背包的重量限制。n表示价格权重对的数量(这两个数字都是int类型,而不是float)。限制如下:(1)如果在相同重量的元素之间选择,价格最高的元素应该被取;(2)如果在相同价格和相同重量的元素之间选择,第一个输入的元素应该被取。

  • 设计算法以实现给定问题的最佳解决方案。 在贪婪算法方法中,决策是从给定的解决方案域做出的。 由于贪婪,选择了似乎提供最佳解决方案的最接近的解决方案。 贪心算法试图找到一个本地化的最优解决方案,最终可能导致全局优化的解决方案。 但是,通常贪婪算法不提供全局优化的解决方案。 计数硬币 这个问题是通过选择最不可能的硬币来计算到期望的值,并且贪婪的方法迫使算法选择最大可能的硬币。 如果我们提供₹1,2,5

  • 首先,是的,这是我的硬件,我觉得很难,所以我真的很感激一些指导。 我需要证明对于当