简介爬山算法是一种局部择优的方法,采用启发式方法,是对深度优先搜索的一种改进,它利用反馈信息帮助生成解的决策。 属于人工智能算法的一种。
算法:
function HILL-CLIMBING(problem) returns a state that is a local maximum
inputs: problem, a problem
  local variables: current, a node
                         neighbor, a node
  current <- MAKE-NODE(INITIAL-STATE[problem])
  loop do
neighbor <- a highest-valued successor of current
if VALUE[neighbor]<= VALUE[current] then return STATE[current]
current <- neighbor
算法解释:
从当前的节点开始,和周围的邻居节点的值进行比较。 如果当前节点是最大的,那么返回当前节点,作为最大值 ( 既山峰最高点 ) ;反之就用最高的邻居节点来,替换当前节点,从而实现向山峰的高处攀爬的目的。如此循环直到达到最高点。
算法优缺点
优点
避免遍历,通过启发选择部分节点,从而达到提高效率的目的。
缺点
因为不是全面搜索,所以结果可能不是最佳。
爬山算法一般存在以下问题:
1 )、局部最大:某个节点比周围任何一个邻居都高,但是它却不是整个问题的最高点。
2 )、高地:也称为平顶,搜索一旦到达高地,就无法确定搜索最佳方向,会产生随机走动,使得搜索效率降低。
3 )、山脊:搜索可能会在山脊的两面来回震荡,前进步伐很小。
算法解释:
从当前的节点开始,和周围的邻居节点的值进行比较。 如果当前节点是最大的,那么返回当前节点,作为最大值 ( 既山峰最高点 ) ;反之就用最高的邻居节点来,替换当前节点,从而实现向山峰的高处攀爬的目的。如此循环直到达到最高点。
算法优缺点
优点
避免遍历,通过启发选择部分节点,从而达到提高效率的目的。

缺点
因为不是全面搜索,所以结果可能不是最佳。

爬山算法一般存在以下问题:  
1 )、局部最大:某个节点比周围任何一个邻居都高,但是它却不是整个问题的最高点。
2 )、高地:也称为平顶,搜索一旦到达高地,就无法确定搜索最佳方向,会产生随机走动,使得搜索效率降低。  
3 )、山脊:搜索可能会在山脊的两面来回震荡,前进步伐很小。

hill-climbing algorithm 爬山算法简介相关推荐

  1. 遗传算法与爬山算法简介_遗传算法简介

    遗传算法与爬山算法简介 Genetic Algorithms (GAs) are a part of Evolutionary Computing (EC), which is a rapidly g ...

  2. 旅行商问题 java_爬山算法(Hill Climbing)解决旅行商问题(TSP)

    何为TSP问题? 旅行商问题 TSP(Travelling Salesman Problem)是数学领域中著名问题之一. 场景:一个旅行商人需要拜访n个城市 条件:要选择一个路径能够拜访到所有的城市, ...

  3. Solve Slide Puzzle with Hill Climbing Search Algorithm

    Hill climbing search algorithm is one of the simplest algorithm which falls under local search and o ...

  4. 机器学习笔记~五种常见的聚类算法简介

    参考:https://towardsdatascience.com/the-5-clustering-algorithms-data-scientists-need-to-know-a36d136ef ...

  5. [Introduction to AI] Local Search::Hill Climbing (最陡上升)

    本文为 BJUT 2021 Fall Introduction to AI 的读书笔记: 课程教材为:Artificial Intelligence: A Modern Approach: Cover ...

  6. 零基础学启发式算法(2)-局部搜索(Local Search)和爬山算法(Hill Climbing)

    一.局部搜索(Local Search) 局部搜索是一种近似算法(Approximate algorithms),是一种简单的贪心搜索算法.从一个候选解开始,持续地在其邻域中搜索,直至邻域中没有更好的 ...

  7. 爬山算法 ( Hill Climbing )/模拟退火(SA,Simulated Annealing)

    一. 爬山算法 ( Hill Climbing ) 爬山算法是一种简单的贪心搜索算法,该算法每次从当前解的临近解空间中选择一个最优解作为当前解,直到达到一个局部最优解.爬山算法实现很简单,其主要缺点是 ...

  8. 【机器学习基础】(一) 爬山算法 ( Hill Climbing )与模拟退火(SA,Simulated Annealing)

    一.爬山算法 ( Hill Climbing ) 爬山算法属于人工智能算法的一种. 这种算法基于贪心算法的思想,该算法每次从当前解的临近解空间中选择一个最优解作为当前解,直到达到一个局部最优解.爬山算 ...

  9. 【AI】Hill Climbing 爬山算法

    爬山算法 浅谈爬山算法 爬山算法的一种改进方法 爬山算法是对DFS的一种改进 浅谈爬山算法 爬山算法 每次拿相邻点与当前点进行比对,取两者中较优者作为爬坡的下一步.循环直到该点的相邻点中不再有比其更大 ...

最新文章

  1. 为什么数学的用途这么大?
  2. centos6.5_64 java 环境变量配置
  3. FPGA作为从机与STM32进行SPI协议通信---Verilog实现
  4. 详解 WebRTC 高音质低延时的背后 — AGC
  5. 看门狗(Watch Dog)是嵌入式系统中一种常用的保证系统可靠性的技术,()会产生看门狗中断。【详细!小白也能看懂!】
  6. 端到端BPM(带有DMN标记)
  7. 【hortonworks/registry】registry 如何添加新的类型 支持 json
  8. android log 码率,webrtc之Android视频质量提升:保帧率降码率
  9. GaiGai----1
  10. 自定义Flash背景的相关设置方法以及其与目录下的文件的对应关系
  11. 网易2020校招数据分析方向正式批笔试题 解析
  12. 标准柯西分布_对柯西分布性质的进一步讨论
  13. 服务器硬盘识别不到d盘,windows10系统本地磁盘找不到d盘如何解决
  14. mdobus传输数据为正接收到为负数
  15. Istio中的流量管理
  16. 海洋cms单本小说网站模板
  17. Python 输入任意整数,打印输入的数字是几位数
  18. myBatis set parameters是提示无效列索引
  19. cs231n-(4)反向传播
  20. 我对社交电商的了解与看法

热门文章

  1. VI/VIM 键盘图 及常规快捷操作
  2. 2012年电脑的声音知识学习
  3. js offsetHeight offsetWidth 解说
  4. 关于晋升全栈工程师,从入门到放弃的神功秘籍,不点进来看一看?
  5. Overleaf:一个记笔记、写论文的神器
  6. BurpSuite使用大全(详解)
  7. 天秀,“手机” 也可以写Python代码了!
  8. Unity独立开发游戏之路
  9. 人工智能搜索策略:A*算法
  10. 6 RabbitMQ幂等性问题