Copyright © 2022-2024 aizws.net · 网站版本: v1.2.6·内部版本: v1.23.3·
页面加载耗时 0.00 毫秒·物理内存 61.9MB ·虚拟内存 1300.5MB
欢迎来到 AI 中文社区(简称 AI 中文社),这里是学习交流 AI 人工智能技术的中文社区。 为了更好的体验,本站推荐使用 Chrome 浏览器。
算法是明确的步骤,应该通过处理零个或多个输入给我们一个明确的输出。这导致了设计和编写算法的许多方法。据观察,大多数算法可以分为以下几类。
贪婪算法试图找到一个局部最优解,这可能最终导致全球优化的解决方案。但是,通常贪婪算法不提供全局优化的解决方案。
所以贪婪算法在那个时候寻找一个简单的解决方案,而不考虑它是如何影响未来的步骤的。它与人类如何解决问题的方式类似,不需要通过所提供的输入的完整细节。
大多数网络算法都使用贪婪的方法。这里列出了其中几个 -
这类算法涉及将给定的问题分成更小的子问题,然后独立地解决每个子问题。当问题不能进一步细分时,我们开始将解决方案合并到每个子问题上,以解决更大的问题。
分而治之算法的重要例子是 -
动态编程涉及将较大的问题分成较小的问题,但不同于分而治之,它不涉及独立解决每个子问题。相反,较小的子问题的结果被记住并用于相似或重叠的子问题。大多数情况下,这些算法用于优化。在解决手中的子问题之前,动态算法将尝试检查先前解决的子问题的结果。
动态算法的动机是对问题进行全面优化,而不是局部优化。
动态编程算法的重要例子是 -
分期分析包括估算程序中操作序列的运行时间,而不考虑输入值中数据分布的范围。一个简单的例子是在排序列表中查找值比在未排序列表中快。如果列表已经排序,则数据分布的方式无关紧要。但是,当然,列表的长度会影响算法,因为它决定 ...