贪心算法

✍ dations ◷ 2024-12-22 19:38:35 #代数,算法

贪心算法(英语:greedy algorithm),又称贪婪算法,是一种在每一步选择中都采取在当前状态下最好或最优(即最有利)的选择,从而希望导致结果是最好或最优的算法。比如在旅行推销员问题中,如果旅行员每次都选择最近的城市,那这就是一种贪心算法。

贪心算法在有最优子结构的问题中尤为有效。最优子结构的意思是局部最优解能决定全局最优解。简单地说,问题能够分解成子问题来解决,子问题的最优解能递推到最终问题的最优解。

贪心算法与动态规划的不同在于它对每个子问题的解决方案都做出选择,不能回退。动态规划则会保存以前的运算结果,并根据以前的结果对当前进行选择,有回退功能。

贪心法可以解决一些最优化问题,如:求图中的最小生成树、求哈夫曼编码……对于其他问题,贪心法一般不能得到我们所要求的答案。一旦一个问题可以通过贪心法来解决,那么贪心法一般是解决这个问题的最好办法。由于贪心法的高效性以及其所求得的答案比较接近最优结果,贪心法也可以用作辅助算法或者直接解决一些要求结果不特别精确的问题。

实现该算法的过程:
从问题的某一初始解出发;while 能朝给定总目标前进一步 do,求出可行解的一个解元素;
最后,由所有解元素组合成问题的一个可行解。

最小生成树的算法如Prim算法、Kruskal算法均为贪心算法,其中Prim算法是对图上的节点贪心,而Kruskal算法是对图上的边贪心。

相关

  • 母乳喂养母乳哺育(Breastfeeding),亦称哺乳、授乳或母乳喂养,指的是女性以乳房喂食婴儿母乳的行为。婴儿有吮吸反射,因此可以吮吸乳房并吞咽母乳,专家建议在出生后一小时即可哺喂母乳,之后
  • 桡骨桡骨(拉丁语:radius,复数:radii)是人和脊椎动物(四足)前臂两长骨之一;在某些动物(如蛙和蟾蜍),桡骨与尺骨愈合成桡尺骨。人的桡骨位于大拇指侧,上端为扁圆形的头,上面参与肘关节的组成,而
  • 邻羟基苯甲酸水杨酸(英语:Salicylic acid,源于拉丁文的“杨柳” salix),又名柳酸、邻羟基苯甲酸、2-羟基苯甲酸。水杨酸易溶于乙醇、乙醚、氯仿、苯、丙酮、松节油,不易溶于水,20°C时溶解度为
  • 南戈壁省南戈壁省(蒙古语:Өмнөговь аймаг,转写:Ömnögovi aimag),是蒙古国最南部的一个省,南接中国内蒙古自治区。省会达兰扎达嘎德。南戈壁省的总面积有165,400平方公里,多沙
  • 兰州牛肉面兰州牛肉面,是中国大陆的常见面条类主食,在兰州叫做牛肉面、牛大碗。兰州以外又被称作兰州拉面、兰州牛肉拉面。用老汤加水煮牛肉、羊肝,再加入传统佐料,熬制而成。完成后的牛肉
  • 玄参玄参(学名:Scrophularia ningpoensis),又称作元参、乌元参、黑玄参、黑参。为玄参科玄参属下的一个种。玄参科玄参属植物,约200种。原产于北半球空旷林地。植株高大,花紫色,浅绿色
  • 联合国地理方案联合国地理方案(英语:United Nations geoscheme,或译联合国地图),是将国家及地区按地理分类的一种联合国地理分组方案,由联合国统计部门(英语:United Nations Statistics Division)(UN
  • 安瓦尔拿督斯里安瓦尔·易卜拉欣(马来语:Dato' Seri Anwar bin Ibrahim;1947年8月10日-)是马来西亚政治人物,现任马来西亚中央政府执政党实权领袖以及波德申国会议员,曾任马来西亚副总理
  • 乌卡亚利大区乌卡亚利大区(西班牙语:Departamento de Ucayali)是秘鲁东部的一个大区,东邻巴西,位于亚马逊平原。乌卡亚利河—亚马逊河的主要水源—流经本区,区名亦由此而来。面积101,830.64平
  • 匈牙利人名匈牙利人名一般由姓氏和名字两部分组成,有时也有第二名。匈牙利人姓名的排列同欧洲其他一些国家的习惯相反,采用“东方姓名顺序”,姓氏在前,名字在后:3923。匈牙利语是欧洲仅有