<<AI入门(3)>>(C)

原创 2000年12月29日 08:42:00
盲目搜索的效率很低,耗费很多时间和空间,如果我们能找出一种用于从排,及选择最有希望的节点.我们称这种搜索为"启发式搜索"或"信息搜索". 进行这种搜索需要有关的信息,这信息称为启发信息,它可以分为3种: 1.用于决定哪个为最有希望的节点,以免盲目的搜索 2.决定从排的顺序. 3.决定那些节点应从搜索树中丢弃. 我们下面就讲一讲第一种,也就是判断哪个为最有希望的节点: 有序搜索:又称为有最好优先搜索(best-first search). 尼尔逊(Nilsson)提出了一个有序搜索的基本算法:估价函数f是这样决定的:一个节点的希望越大,其f值越小.算法如下: 1.把起始节点S放入OPEN表中,计算f(S),把值和S节点连结 2.如果OPEN为空表,则无解,退出. 3.在OPEN表中选择一个f值最小的节点,如果有多个节点满足要求,当其中有目标节点时,选择目标节点,否则随便选择一个,作为i 4.把i从OPEN表中移去,加入CLOSED表中. 5.如果i是目标,则成功退出,有一个解 6.扩展节点i,生成全部后续节点,对于每个后续节点j: a..计算f(j). b..如果j不在OPEN表和CLOSED表中,则加入OPEN表,并产生一个指向i的指针,以便求解答路径. c..如果j以在OPEN表或CLOSED表.则比较刚计算的f(j)值和以前的值,如果新值小:以新值取代旧值,从j指向i,如果在CLOSED表中则把其从CLOSED表中移回OPEN表. 7.转向2. 有一个好的估价函数能使它工作的更好!求最短路径的例子是A*算法. 下面我们用8数码难题来做说明: 我们取估价函数为:f(n)=d(n)+w(n) //d(n)是n的深度,w(n)是放错了的棋子的个数. 假设起始节点如下: 目标节点: 2 8 3 1 2 3 1 6 4 8 4 7 5 7 6 5 第一步有三中情况,我们选择其中f(n)最小的: 2 8 3 1 4 7 6 5 其它依次类推.最后用了6步得出了结果. 我们下一节讲一讲A*算法

Python与AI之一_入门

Python与Java, C, C++并列为全球4大最流行语言. 从C到C++,到Java再到Python, 细节越来越少, 让开发者把更多的精力放在”做什么”, 而不是”怎么做”. 早就听说Pyt...
  • xieyan0811
  • xieyan0811
  • 2017年02月28日 09:33
  • 10924

算法竞赛入门经典(第2版)习题3-6 纵横字谜的答案 Crossword Answers UVa232

写这题用了一上午,样例数据都过了后提交发现WA。 反复jianch
  • archya
  • archya
  • 2014年07月11日 12:23
  • 1799

初学者如何从零开始学习人工智能?看完你就懂了

链接:oschina.net/news/78629/beginners-how-to-learn-from-zero-artificial-intelligence 此文是想要进...
  • sd19871122
  • sd19871122
  • 2017年03月09日 10:06
  • 5937

lua游戏AI编程入门-3

  • 2017年07月01日 20:20
  • 38.67MB
  • 下载

H5+C3+JS实现五子棋 - AI篇

新增全局变量 //所有赢法总和 var count = 0; //容纳所有赢法的三维数组 var allWin = []; for(var i =0; i ...
  • qq_27905183
  • qq_27905183
  • 2016年12月30日 15:46
  • 266

libevent代码阅读(3)——入门例子“hello-world.c”的学习

/* * 一个很好的入门例子 * 当客户端链接到服务器的时候,服务器简单地向客户端发送一条“Hello, World!”消息,然后等待客户端关闭 * 服务器不接受客户端发送的数据 */ #i...
  • NB_vol_1
  • NB_vol_1
  • 2015年11月06日 09:40
  • 1018

S3C2416裸机开发系列二_汇编入门代码以及sd卡启动

S3C2416裸机开发系列二 汇编入门代码以及sd卡启动 象棋小子   1048272975   学习了arm,笔者认为就有必要学习arm的汇编语言。对于软件出错调试,往往需要跟踪c编译器生成的汇编代...
  • huang20083200056
  • huang20083200056
  • 2014年03月13日 15:03
  • 3060

Unix/Linux环境C编程入门教程(3) Oracle Linux 环境搭建

安装CentOS C/C++软件开发环境1.CentOS 与Redhat系出同源,功能差不多,为何要用CentOS,因为Free,Redhat需要付费Redhat无法在线安装2. 无法在线安装,并无法...
  • yincheng01
  • yincheng01
  • 2014年06月24日 13:46
  • 1119

换主页轮播的主题图片(3、保存添加)---轻开电子商务系统(企业入门级B2C网站)

整理完整的文件名 把名称、链接地址、文件URI插入数据库 保存文件 如果操作者没有权限,则提示并返回 添加成功后返回...
  • tx18
  • tx18
  • 2015年06月22日 00:22
  • 4035

Linux C进程与多线程入门—(3)信号

本文出自http://www.wenbanana.com/?p=421稻草人博客,欢迎访问! 概念          信号是系统响应某些状况而产生的事件,进程在接受到信号时会采取相应的行动。信号可...
  • wen294299195
  • wen294299195
  • 2013年01月29日 21:05
  • 1049
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:<<AI入门(3)>>(C)
举报原因:
原因补充:

(最多只允许输入30个字)