自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Broken Geeker

无论怎么走,走不出数字世界;无论怎么逃,逃不出一零乾坤。

  • 博客(15)
  • 资源 (3)
  • 收藏
  • 关注

原创 基于博弈树的开源五子棋AI教程及源码分享[开篇]

五子棋是一个老少咸宜,复杂度相对较低游戏,本篇教程便是使用传统的博弈树的知识和一些棋类AI的经典算法来实现一个有一定算力AI。AI可以使用QT编写,在6核的家用笔记本在分支因子(搜索窗口的宽度)为10的情况下,6层深度可以在1s内搜索完成,8层深度可以在4s内完成。这里优先给出一个其中使用到的关键技术,

2023-12-20 22:10:15 1169 1

原创 八数码问题-A*(AStar)算法实现

八数码问题可以说得上是搜索问题中比较经典的,可以有很多种搜索策略,比如说有最常见的BFS,DFS,此外,A*也是一个比较普遍的搜索算法。在八数码问题A*往往可以得到最优的求解路径。

2018-03-28 19:18:13 54183 27

原创 基于博弈树的开源五子棋AI教程[7 多线程搜索]

多线程加快搜索速度这一认知是经受住实践考验的。博弈树搜索的并行搜索方式有很多种,例如叶子并行,根并行,树分裂等算法。笔者给出一种实现起来比较简单的根并行算法。在是实现时需要注意两点,第一,怎么安全的剪枝;第二,如何进行线程间的通信。对于AB剪枝有三点发现可以指导我们设计多线程的并行算法:

2024-01-14 08:31:20 563

原创 基于博弈树的开源五子棋AI教程[6 置换表]

置换表是记忆化搜索技术的应用,置换表保存了某一盘面的搜索结果。当博弈树搜索遇到相同的局面时可以调用这些信息来减少重复搜索。那么如何设计一个置换表的节点就显得比较重要,本文在经典的置换表节点增加一个显示当前玩家的字段,这一字段补足了zobrist hash单向函数的缺点,如果节点需要使用更浅深度的信息,可以通过迭代的方式来求解,丰富了置换表的信息。

2024-01-14 08:30:13 656

原创 基于博弈树的开源五子棋AI教程[3 极大极小搜索]

极大极小搜索是博弈树搜索中最常用的算法,广泛应用于各类零和游戏中,例如象棋,围棋等棋类游戏。算法思想也是合乎人类的思考逻辑的:博弈双方轮流决策,并且认为双方都是理性的,都希望自己的利益最大化或者对手利益最小化。

2024-01-12 23:13:48 1357

原创 基于博弈树的开源五子棋AI教程[5 启发式搜索]

启发式搜索的姿势千奇百怪,本文只讨论一下几种置换表启发,历史表启发,杀手表启发。

2023-12-22 12:36:04 1111

原创 基于博弈树的开源五子棋AI教程[4 静态棋盘评估]

静态棋盘的评估是棋力的一个很重要的体现,一个优秀的基于博弈树搜索的AI往往有上千行工作量,本文没有做深入讨论,仅仅写了个引子用来抛砖引玉。评估一般从两个角度入手,一个是子力,另一个是局势。

2023-12-22 11:51:06 1076

原创 基于博弈树的开源五子棋AI教程及源码分享[2 Zobrist散列]

Zobrist Hashing由阿尔伯特·Zobrist于1970年提出,是一种用于棋类游戏的哈希技术。它通过为棋盘上的每一个可能状态分配一个唯一的哈希值,来有效地识别和储存不同的游戏状态。

2023-12-20 23:23:30 540

原创 基于博弈树的开源五子棋AI教程[1 位棋盘]

一般而言一组二维数组就可以充分的表示棋盘信息,但是在后续棋盘静态评估的需求中发现,本文需要对棋盘的四个方向上评估出基础棋型。因而从不同角度冗余的描述棋盘信息就是必要的。

2023-12-20 22:51:51 1238

原创 交通标志的检测与标定

限速标志的基本特征(外边框为红色且为圆形),本文利用颜色空间的方法,先提取出红色区域,在通过图像的开闭运算,膨胀腐蚀操作进行预处理,最后在利用不同区域是目标的可能性进行逐一筛选。这里要指出目标的可能性这一说法,是指该区域类圆的概率以及该区域的面积的加权和。最后,针对一些红的目标可能重叠的情况,进行最后的加工。紧接着提取标志中的数字,通过对给定的图像进行统计,可以发现如果是限速标志,其直方图通常是双峰,一个峰为目标区域,另一个则为背景。这样就可以分理处数字了。

2018-12-06 00:56:53 7411 9

原创 Linux版 Wine/QQ(2018年版)安装

Linux版Wine/QQ安装前言最近几日在Github发现了一个可以吹爆一年的东西,Linux版的QQ和Tim,这一版直接内置了Wine,而且速度更流畅,安装便捷,对于中度使用Linux系统人简直是福音。下载与安装项目已经开源到Github[askme765cs],,下载完成只需两步就可以轻松搞定。修改权限进入Tim安装包目录cd "安装包目录"chmod 755 *直接运...

2018-11-17 12:08:50 3451 1

原创 二叉树的基本操作与树形目录形式打印(C++ 模板类)

本例实现了基本二叉树的先序创建,前序遍历,层次遍历,以及目录结构式的打印。这篇文章竟然沉了,不是很甘心,上回说到目录形式打印,这次再丰富一下(挣扎下)。博主从网上观察了一下,虽然有横向打印树的,但总不是很完美,这次更新着眼点就在这边。

2018-09-08 08:55:17 2460

原创 基于UDP的dos多人聊天室

前言聊天室优点与可拓展功能优点:可拓展功能实测登陆界面注册聊天群聊私聊退出(左边为sender退出,右边为receiver退出)编译环境后记下载入口前言\qquad这学期正好有门TCP/IP 编程,乘机写了个dos下的聊天室,去年这个时候用Java写了个带GUI的多人聊天室,不过整体来看这次在对网络编程有了一定的理论基础后,这次用c+...

2018-03-27 12:45:12 3332

原创 c/c++ 环境(MinGW + vs code )搭建与使用指南

前言环境搭建MinGW下载VS Code配置说明对比与心得前言\qquad这次又是一次工具分享篇,上次写了一篇GCC/G++ + sublime text3 + powershell在windows使用指南的分享,这次又带了一个新的生产工具——vs code(此次仅针对windows,其实linux配置也是相近的,而且会更简单),至于vs code,sub...

2018-03-25 14:32:08 17713 1

原创 Java paint与paintComponent的区别与联系

在上学期,做了一些简单Java程序,做了一个GUI矩阵运算器,还有像什么基于C/S模式的销售管理系统, 聊天室这种东西,都是些组件做的。但这次准备入手做一些用Graphics绘图做的东西。刚入手就发现了这个问题,Java中paint与paintComponent在使用还是存在很多差异的。先把本文讨论主干问题列上:1)联系 2)区别 3)在程序中表现出的异同 4)本次test中发现的有趣的问题与

2017-09-25 21:43:38 8487 3

fail-soft AB search的论文

fail-soft AB search的论文

2024-01-01

fail-soft AB search的论文

fail-soft AB search的论文

2023-12-28

交通标志的检测与标定

通过查阅相关资料,主流的交通标志的检测方法分成两类。一类是利用机器学习算法,通过端对端的网络识别与标定交通标志,通常需要一定规模的训练数据。本文拟用第二类的方法,通过图像的基本操作与图像的特征来提取标志。 通过对给定样张的分析,可以发现,限速标志做为警告示标语,边框通常常用红色,而且标识框均为圆形。本文以此为基础将一步步分析如何提取限速标志以及提取过程遇到问题(针对这20张样张,并没有对其他数据进行测试)以及解决策略。 通过上文给出限速标志的基本特征(外边框为红色且为圆形),本文利用颜色空间的方法,先提取出红色区域,在通过图像的开闭运算,膨胀腐蚀操作进行预处理,最后在利用不同区域是目标的可能性进行逐一筛选。这里要指出目标的可能性这一说法,是指该区域类圆的概率以及该区域的面积的加权和。最后,针对一些红的目标可能重叠的情况,进行最后的加工。 紧接着提取标志中的数字,通过对给定的图像进行统计,可以发现如果是限速标志,其直方图通常是双峰,一个峰为目标区域,另一个则为背景。这样就可以分理处数字了。其中遇到的一些问题将会在后续的小节中展开。 --------------------- 作者:BrokenGeeker 来源:CSDN 原文:https://blog.csdn.net/lishang6257/article/details/84846030 版权声明:本文为博主原创文章,转载请附上博文链接!

2018-12-06

C++GUI QT4编程,闫峰欣译

C++GUI QT4编程, 闫峰欣译;资源包括PDF扫描版和所有章节代码,搬运整合而来

2018-11-12

基于udp的多功能聊天室

1.实现了基本的聊天功能,包括群聊与私聊 2.用户注册时使用文件做过渡,用户退出登陆时仍可保留用户信息 3.封装消息传递时格式,包括消息的生成与解析 4.友好的操作逻辑 5.多方位错误提醒

2018-03-27

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除