锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

OJ(Online judge)题库 测试用例 【贪心算法】

时间:2023-01-17 22:30:00 5w33kr电阻5w33r精密电阻

贪婪算法与应用

我们遇到了各种各样的计算问题,每种都需要不同的技术来解决。最大或最小的结果是优化。

大致有三种方法可以解决优化问题:

1.贪心法

2.动态规划

3. 分支定界技术

本文将介绍贪婪方法、贪婪算法的属性以及在任何问题上实现贪婪方法的步骤。

贪婪算法是什么?

它只是意味着选择一个目前看起来最好的选择/解决方案(贪婪)。当我们想要一个即时的情况时,这种技术最适合。它有助于解决优化问题,即给出最小结果或最大结果。

满足问题中条件的解决方案是可行的。在所有可能的可行解中,成本最低的解决方案是最优解决方案,即最佳解决方案。

贪婪算法的目标是找到最佳解决方案。 1 个最优解。

例如:

让我们考虑集装箱装载的例子。

在集装箱装载问题上,大型船舶装载货物。货物有大小相同但重量不同的集装箱。这艘船的货量是cp。

为了使船上有最大的集装箱,我们需要将集装箱装载到船上。

例如,假设共有 4 容器重量:w1=20, w2=60, w33=40, w4=25。

让 cp = 80.然后,我们将加载最大容器 container-1、3、4。

贪婪算法的历史

贪婪算法最初是由荷兰计算机科学家和数学家组成的 Edsger W. Dijkstra 它是在计算最小生成树时创造的。许多贪婪算法的主要目的是解决基于图的问题。

贪心算法在 1950 时代首次出现。当时的科学家 Prim 和 Kruskal 在过去的十年里,最小化图成本的优化技术也实现了。

几年后,在 1970 许多美国研究人员提出了解决贪婪问题的递归策略。2005年 年,NIST 记录将贪婪范式注册为单独的优化策略。

从那时起,贪婪算法在许多领域得到了广泛的应用,包括开放最短路径优先级(OSPF)等待网络协议和许多其他网络数据包交换协议。

贪心算法的工作

贪婪算法在不同阶段工作,并考虑一次输入。在每个阶段,我们都试图为我们的问题找到一个可行的解决方案,一个对当时算法有益的解决方案。这意味着我们为每个子任务做出局部最佳选择。这些局部最佳选择最终导致我们为我们的问题找到全球最佳选择,我们称之为最终最佳解决方案。

贪婪算法中最简单的伪代码如下:

算法贪心( A,n ) {     解决方案:= φ; ///初始化解决方案     对于i:= 1到 n做     {         x :=选择(一) ;         如果可行( solution,x )那么               解决方案:=联合(解决方案,x );     }     返回解决方案; }

锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章