AI实现的基本思路-极大极小值搜索算法 五子棋看起来有各种各样的走法,而实际上把每一步的走法展开,就是一颗巨大的博弈树。在这个树中,从根节点为0开始,奇数层表示电脑可能的走法,偶数层表示玩家可能的走法。 假设电脑先手,那么第一层就是电脑的所有可能的走法,第二层就是玩家的所有可能走法,以此类推。 我们 ...
分类:
编程语言 时间:
2016-10-21 13:37:25
阅读次数:
548
剪枝是必须的 上一篇讲了极大极小值搜索,其实单纯的极大极小值搜索算法并没有实际意义。 可以做一个简单的计算,平均一步考虑 50 种可能性的话,思考到第四层,那么搜索的节点数就是 50^4 = 6250000,在我的酷睿I7的电脑上一秒钟能计算的节点不超过 5W 个,那么 625W 个节点需要的时间在 ...
分类:
编程语言 时间:
2016-10-21 13:35:36
阅读次数:
691
2016-10-11 21:18:45 HDU 1016 A ring is compose of n circles as shown in diagram. Put natural number 1, 2, ..., n into each circle separately, and the ...
分类:
编程语言 时间:
2016-10-12 00:52:59
阅读次数:
197
启发式算法区别于盲目搜索算法,是搜索策略的一种。主要特点是 可以利用问题自身的一些特征信息(启发式信息)来指导搜索的过程,从而可以缩小搜索范围,提高搜索效率。 实际上,启发式算法也代表了"大拇指准则"(在大多数情况下是成功的,但不能保证一定成功的准则)。 启发式算法离不开启发式信息,而启发式信息反映... ...
分类:
编程语言 时间:
2016-10-11 18:30:54
阅读次数:
250
优化算法入门系列文章目录(更新中): 1. 模拟退火算法 2. 遗传算法 一. 爬山算法 ( Hill Climbing ) 介绍模拟退火前,先介绍爬山算法。爬山算法是一种简单的贪心搜索算法,该算法每次从当前解的临近解空间中选择一个最优解作为当前解,直到达到一个局部最优解。 爬山算法实现很简单,其主 ...
分类:
编程语言 时间:
2016-10-06 00:32:50
阅读次数:
150
优化算法入门系列文章目录(更新中): 1. 模拟退火算法 2. 遗传算法 遗传算法 ( GA , Genetic Algorithm ) ,也称进化算法 。 遗传算法是受达尔文的进化论的启发,借鉴生物进化过程而提出的一种启发式搜索算法。因此在介绍遗传算法前有必要简单的介绍生物进化知识。 一.进化论知 ...
分类:
编程语言 时间:
2016-10-06 00:24:54
阅读次数:
216
Lua中的table可以表示其他语言提供的数据结构:数组、记录、线性表、队列、集合等。 在Lua中很少编写搜索算法,因为table本身就提供了直接访问任意类型的功能。 数组 使用整数来索引table即可在lua中实现数组,数组没有固定大小,可以根据需要增长。 通常,在初始化一个数组时,也就间接地定义 ...
分类:
编程语言 时间:
2016-09-01 13:04:30
阅读次数:
219
【问题描述】 给你一个有向图,求从1到n的第k短路。 【解法】 SPFA+A*搜索。 1 A*算法 A*算法在人工智能中是一种典型的启发式搜索算法,启发中的估价是用估价函数表示的: h(n)=f(n)+g(n) 其中f(n)是节点n的估价函数,g(n)表示实际状态空间中从初始节点到n节点的实际代价, ...
分类:
其他好文 时间:
2016-08-31 22:33:40
阅读次数:
408
广度优先搜索(Breadth-first Search)、深度优先搜索(Depth-first Search)算法面试题——LeetCode
分类:
编程语言 时间:
2016-08-27 00:36:52
阅读次数:
321