搜索

C++代码浅谈IDA*算法

C++代码浅谈IDA*算法本篇简述一下IDA*算法,并列出代码帮助大家理解。(1)算法简介IDA*(IDA*)算法是一种启发式搜索算法,他是采取了迭代加深的A*算法,使用了深度优先搜索的方式。相对于A*算法,IDA*算法主要解……

结合实例解析深度优先搜索(DFS)搜索

结合实例解析深度优先搜索(DFS)搜索当你从一个顶点开始,沿着某条路往下走,一直走到底,如果走完后发现不能达到目标解,就回溯,返回到上一个节点,换条路,然后继续走到底,如此往复,直至所有可能的结果都被搜索完。通俗理解就是不撞南墙不回头这种……

图文解析图论DFS(深度优先搜索)

图文解析图论DFS(深度优先搜索)DFS全称是DepthFirstSearch,中文名是深度优先搜索,是一种用于遍历或搜索树或图的算法。所谓深度优先,就是说每次都尝试向更深的节点走。一、图搜索GraphSearch的分类(1)BFS广……

结合实例解析宽度优先搜索(BFS)搜索

结合实例解析宽度优先搜索(BFS)搜索本篇将会结合实例解析宽度优先搜索(BFS)。一、BFS概念宽度优先搜索算法(又称广度优先搜索)是最简便的图的搜索算法之一,这一算法也是很多重要的图的算法的原型。Dijkstra单源最短路径算法和Pri……

图文解析图论BFS(广度优先搜索)

图文解析图论BFS(广度优先搜索)BFS全称是BreadthFirstSearch,中文名是宽度优先搜索,也叫广度优先搜索。是图上最基础、最重要的搜索算法之一。所谓宽度优先。就是每次都尝试访问同一层的节点。如果同一层都访问完了,再访问……

Alpha-Beta剪枝搜索图文讲解

Alpha-Beta剪枝搜索图文讲解本篇将简要介绍α-β剪枝,这是一种基于剪枝(α-βcut-off)的深度优先搜索(depth-firstsearch)。一、什么是α剪枝?(1)……

结合实例解析双向搜索

结合实例解析双向搜索本篇将会结合实例解析双向搜索。一、双向搜索当给出了起点状态与终点状态时,使用普通的搜索从起点向下搜索,则效率会很低,搜索树会非常庞大;所以,可以使用双向搜索,及从起点与终点同时向中间搜索,搜索到同一个……

Minimax算法(极小化极大算法)及实例讲解

Minimax算法(极小化极大算法)及实例讲解计算机科学中最有趣的事情之一就是编写一个人机博弈的程序。有大量的例子,最出名的是编写一个国际象棋的博弈机器。但不管是什么游戏,程序趋向于遵循一个被称为Minimax算法,伴随着各种各样的子算法在一块。……

什么是启发式搜索?

什么是启发式搜索?本篇将会结合实例解析启发式搜索,帮助大家更好理解。启发式搜索(英文:heuristicsearch)是一种改进的搜索算法。它在普通搜索算法的基础上引入了启发式函数,该函数的作用是基于已有的信息对搜索的……

舞蹈链算法(Dancing Links)运用及执行过程

舞蹈链算法(Dancing Links)运用及执行过程舞蹈链(Dancinglinks)实际上是一种数据结构,可以用来实现X算法,以解决精确覆盖问题。什么是精确覆盖(ExactCover)问题呢?维基百科上对精确覆盖的定义如下:在一个全集X中若干子集的集……