舞蹈链算法(Dancing links)实例讲解 前面的文字介绍了舞蹈链,这里就不详细描述什么是舞蹈链了,舞蹈链(Dancinglinks)是一种数据结构,可以用来实现X算法,以解决精确覆盖问题。本篇的内容主要把舞蹈链Dancinglinks应用于实际问题,通过实践才能帮助大家更好的理解,片面的了解理论知识,最终不能落到实处,也就没有意义了。 搜索算法 2022年05月09日 228 点赞 0 评论 109584 浏览
舞蹈链算法(Dancing Links)运用及执行过程 舞蹈链(Dancinglinks)实际上是一种数据结构,可以用来实现X算法,以解决精确覆盖问题。什么是精确覆盖(ExactCover)问题呢?维基百科上对精确覆盖的定义如下:在一个全集X中若干子集的集合为S。S*是S的一个子集,当且仅当X中的每一个元素在S*中恰好出现一次时,S*称之为一个精确覆盖。 搜索算法 2022年03月01日 119 点赞 0 评论 83620 浏览
Minimax算法(极小化极大算法)及实例讲解 计算机科学中最有趣的事情之一就是编写一个人机博弈的程序。有大量的例子,最出名的是编写一个国际象棋的博弈机器。但不管是什么游戏,程序趋向于遵循一个被称为Minimax算法,伴随着各种各样的子算法在一块。本篇将简要介绍minimax算法,并通过实例分析帮助大家更好的理解。 搜索算法 2022年02月26日 239 点赞 0 评论 131632 浏览
Alpha-Beta剪枝搜索图文讲解 本篇将简要介绍α-β剪枝,这是一种基于剪枝(α-βcut-off)的深度优先搜索(depth-firstsearch)。一、什么是α剪枝?(1)将走棋方定为MAX方,因为它选择着法时总是对其子节点的评估值取极大值,即选择对自己最为有利的着法;(2)将应对方定为MIN方, 搜索算法 2022年01月25日 118 点赞 0 评论 100381 浏览
最优化算法实例讲解 DFS(深度优先搜索)是一种常见的算法,我们平时遇到的大部分题目都可以用DFS解决,但是一般情况下,这都是骗分算法,很少会有爆搜为正解的题目。因为DFS的时间复杂度特别高。一、定义DFS(深度优先搜索)定义上的深度优先搜索的思路与树的先序遍历非常相似, 搜索算法 2022年01月22日 173 点赞 0 评论 82420 浏览
图文解析图论BFS(广度优先搜索) BFS全称是BreadthFirstSearch,中文名是宽度优先搜索,也叫广度优先搜索。是图上最基础、最重要的搜索算法之一。所谓宽度优先。就是每次都尝试访问同一层的节点。如果同一层都访问完了,再访问下一层。这样做的结果是,BFS算法找到的路径是从起点开始的最短合法路径。 图论 2022年04月11日 112 点赞 0 评论 100070 浏览
图文解析图论DFS(深度优先搜索) DFS全称是DepthFirstSearch,中文名是深度优先搜索,是一种用于遍历或搜索树或图的算法。所谓深度优先,就是说每次都尝试向更深的节点走。一、图搜索GraphSearch的分类(1)BFS广度优先(宽搜)(2)DFS深度优先(深搜)二、深度优先搜索DFS(1)深度优先遍历DFS, 图论 2022年02月27日 117 点赞 0 评论 133016 浏览
C++代码浅谈IDA*算法 本篇简述一下IDA*算法,并列出代码帮助大家理解。(1)算法简介IDA*(IDA*)算法是一种启发式搜索算法,他是采取了迭代加深的A*算法,使用了深度优先搜索的方式。相对于A*算法,IDA*算法主要解决了:1.A*算法需要判重,对优先级排序的问题。 搜索算法 2022年05月15日 144 点赞 0 评论 68736 浏览
C++代码浅谈迭代加深搜索 本篇简述一下迭代加深搜索,并列出了伪代码帮助大家理解。迭代加深是一种每次限制搜索深度的深度优先搜索。(1)本质:它的本质还是深度优先搜索,只不过在搜索的同时带上了一个深度d,当d达到设定的深度时就返回,一般用于找最优解。如果一次搜索没有找到合法的解,就让设定的深度+1,重新从根开始。 搜索算法 2022年02月03日 145 点赞 0 评论 123175 浏览
图文解析A*搜索算法 A*算法是启发式搜索算法,是根据Dijkstra算法改进而来。一、定义:是一种在图形平面上,对于有多个节点的路径求出最低通过成本的算法。它属于图遍历和最佳优先搜索算法,亦是BFS的改进。二、如何更好的理解A*算法?如下图所示,S为起始(start)节点,G为目标(goal)节点。 搜索算法 2022年01月12日 296 点赞 0 评论 160542 浏览