在局部搜索算法中,我们不再关心从初始节点到目标节点之间的路径,而是考虑从当前节点出发,移动到它的邻近状态,直到到达合理的目标状态。相比于前面所说的无信息搜索算法和有信息搜索算法,局部搜索算法往往能以常数的空间复杂度(不用保存路径)在很大甚至无限的状态空间中找到合理解。

爬山法

爬山法不断向值增加的方向移动,直到到达顶峰。

function HillClimbing(problem) returns a local maximum statecurrent_state = initial_stateloop donext_state = the highest neighborif (next_state is higher than current_state)current_state = next_stateelsereturn current_state

爬山法的问题在于它只能保证到达局部最大值,却不能保证到达全局最大值。

比如我们从C点出发,那么我们会停在局部最大值A点,因此没办法到达全局最大值B点。

模拟退火算法

  模拟退火算法与爬山法类似,只是我们不再一味地往值增加的方向移动,而是以一定的几率容许往值减小的方向移动,从而使得我们有可能从局部最大值A点走出来,并到达全局最大值B点。
  只所以叫做模拟退火,是因为一开始这个几率相对较高,而随着时间的增加,这个几率则像温度一样慢慢减小。

function SimulatedAnnealing () returns a solution statecurrent_state = initial_statefor t = 1 to infinite doT = schedule(t)if T = 0 thenreturn current_statenext_state = a randomly selected neighborE = next_state.height - current_state.heightif E > 0 thencurrent_state = next_stateelse current_state = next_state with probability e^(E/T)

遗传算法

  遗传算法模拟生物中的遗传过程,从初始种群开始,迭代进行一系列杂交和变异直到获得合适的种群,并从中挑选出最佳个体。

function GeneticAlgorithm(population, fitin) returns a solution stateinputs: population, a set of individualsfitness, a function that measures fitness of an individualrepeatnew_population = empty_setfor i = 1 to sizeof(population) dox = RandomSelect(population, fitness)y = RandomSelect(population, fitness)new_individual = Reproduce(x, y)if (a probability) thennew_individual = Mutate(new_individual)add new_individual to new_populationuntil some individuals are fit enough or time has elapsedreturn the best individual in the population
----------------------------------------------------------------
function Reproduce(x, y) returns a new individualinputs: x, y, the parents of the new individuallength = Length(x)mutation_point = RandomSelectIn(1, length)new_individual = Sub(x, 1, mutation_point)+ Sub(y, mutation_point, length)return new_individual

转载于:https://www.cnblogs.com/zhangyubao/p/7016968.html

人工智能中的局部搜索算法相关推荐

  1. 【人工智能】—局部搜索算法、爬山法、模拟退火、局部剪枝、遗传算法

    Local search algorithms (局部搜索算法) 局部搜索算法 内存限制 局部搜索算法 示例:n-皇后 爬山算法 随机重启爬山 模拟退火算法 局部剪枝搜索 遗传算法 小结 局部搜索算法 ...

  2. JAVA用爬山法解决八皇后问题_局部搜索算法.ppt

    局部搜索算法 人工智能原理第2章 搜索技术(下) 本章内容2.1 搜索与问题求解2.2 无信息搜索策略2.3 启发式搜索策略2.4 局部搜索算法2.5 约束满足问题2.6 博弈搜索参考书目附录 A*算 ...

  3. C语言局部搜索算法(爬山法,模拟退火法,遗传算法)求解八皇后问题

    C语言局部算法求解八皇后问题 写在前面 八皇后问题及局部搜索算法 爬山法(hill-climbing searching) 算法介绍 代码实现 退火法(simulated annealing) 算法介 ...

  4. python人工智能-Python在人工智能中的作用

    原标题:Python在人工智能中的作用 Python部落(python.freelycode.com)组织翻译,禁止转载,欢迎转发. 谷歌的AI击败了一位围棋大师,是一种衡量人工智能突然的快速发展的方 ...

  5. python在人工智能应用锁_解读! Python在人工智能中的作用

    人工智能是一种未来性的技术,目前正在致力于研究自己的一套工具.一系列的进展在过去的几年中发生了:无事故驾驶超过300000英里并在三个州合法行驶迎来了自动驾驶的一个里程碑:IBM Waston击败了J ...

  6. 通用局部搜索算法之WALKSAT

    通用局部搜索算法之WALKSAT 设施区位及算法 2009-08-28 20:44:47 阅读29 评论0 字号:大中小 通用局部搜索算法之WALKSAT GSAT 和 WalkSat 是用于求解布尔 ...

  7. 旅行商问题(TSP)与局部搜索算法

    本篇为在University of Birmingham 学习Advanced Nature-Inspired Search and Optimisation课程中的笔记之一 This is one ...

  8. k图着色 局部搜索算法与模拟退火算法的python实现

    文章目录 前言 如何评价一个解? 通过计算出的冲突来找它的邻居解 数据的格式 局部搜索 概述 补充 代码 模拟退火 概述 补充 代码 总结以及不足之处 前言 这两种算法就不详细介绍了,流程思路比较简单 ...

  9. 人工智能中的Web端编程

    Java是当前的主流编程语言之一,常年稳居TIOBE编程语言排行榜前五.Java的使用领域非常广泛,包括了桌面端编程.Web端编程.移动端编程等几乎所有的编程领域.Java是Web端编程使用最广泛的编 ...

最新文章

  1. Linux疑难杂症解决方案100篇(十一)-常用Linux命令,助力工作更轻松便捷
  2. 我把公司当家,老板当爹,结局...
  3. php 内核开发_深入理解PHP7内核之Reference
  4. 【最快人脸检测模型开源】libfacedetection开源
  5. 新建站点的mysql数据库_lAMP下新建维护站点全过程
  6. R40gpio输出无高低电平变化【原创】
  7. php发送http put/patch/delete请求
  8. [转载] 消息中间件学习总结(8)——RocketMQ之RocketMQ捐赠给Apache那些鲜为人知的故事
  9. Java二级知识总结
  10. fireworks8序列号:
  11. 推荐《现在,发现你的优势》
  12. H3C 双线路 nqa 联动
  13. 梯度消失、梯度爆炸产生的原因
  14. 互联网日报 | 京东健康提交赴港上市招股书;荣耀联合美团推出“共享笔记本”服务;携程获第三方支付牌照...
  15. django接入facebook登陆设置
  16. 计算机系统删除一点会怎么样,怎么样清理C盘的多余文件?
  17. 小公司老板的日常管理
  18. 操作系统中cpu如何工作
  19. C/C++宽字符与控制台程序
  20. 2048java设计报告_2048设计报告.doc

热门文章

  1. svg里写入html标签,如何将HTML元素放在内联SVG上
  2. c语言结构体赋值,并输出各种类型变量的值
  3. 零基础学前端开发技术之第七章 浮动塌陷
  4. 安卓Android Studio开发IDE的安装
  5. 取消myeclipse2017的Dashboard页面
  6. java eclipse 注释模板_Eclipse Java注释模板设置详解
  7. 工具|渗透利器之CrimeFlare、waf绕过脚本分享
  8. 学习《apache源代码全景分析》之DSO概念
  9. 剑指offer 菲波那切数列
  10. UITextFeild的基本属性