时隔多年,重启象棋ai算法
本人纯自学,未受过任何专业算法训练,很多东西皆可能不入流,还请见谅
象棋算法ai分析
1,算法通识
象棋算法同其他棋类一样,主要由搜索,盘面估计,最终决策组成。
对于盘面估计,如果一个盘面估计函数能最准确的估计盘面,那么搜索不需要层数,仅仅遍历一层就可以得出结果。
对于搜索,搜索的下一层应该仅仅展开值得搜索的分支,而值得搜索的分支又是盘面估计函数分数最高的分支。
对于决策,显然训练盘面估计函数的决策应该是搜索层数最可能深的决策,而对于已经训练的模型而言,显然取盘面估计函数最高分的决策。
2,设计算法
基于以上认知,可以一开始使用简单估计函数作为对手,当盘面估计与简单估计函数对弈,每一局的结果反向传递回到盘面估计函数
直到盘面估计函数总是优于简单估计函数是,我们将对手换成函数本身。对弈过程中,总是使用分数作为权,权转为为概率,用概率代替搜索算法的决策
而其反向传导的所有盘面作为训练数据,对局结果的盘面当前分数加减1作为盘面分数。
算法按照搜索的概率直接走棋很容易出现循环走棋,而不能结束搜索导致无法训练数据,其搜索算法必须避免循环走棋,可以在概率上适当增大分数差异,提交高分被选概率。
3,模型估计
象棋盘面共90个点,每个点一共15个值(0 和 正负种类棋子),所以算法深度不应该超过90层,单层节点不应该超过2^15点,
模型不超过90个点作为输入,只有一个输出
4,编码设计
O1:棋盘类,棋盘数据,棋盘数组正则化
O2:搜索类,权转换概率:
O3:算法模型
软件设计思路日志
0619:对于象棋,很显然,如果给每个字取个编号,一共32号,90个点取一个编号,一共90个位置,一副棋盘就变成32个点了,即一共64个整数,然后如果32个棋子总是按照1-32排列,那么数据就会变成32个整数的排列,而且取值只能在0-90之间,故原棋盘数据将会压缩成32个byte数据。
(对于走子策略,由于搜索总是消耗大量计算,搜索结果也可以用模型记录,模型的输出如果可以包含下一步走子和走子概率将可以进一步加强搜索深度,使得搜索与模型相辅相成,故模型的输出表达走子和走之后盘面分数。再看搜索结果,应该是一个子和点,所以模型将输出三个数据整数,一个表示子,一个表示移动的点,一个表示移动到这里的盘面分数,模型总是输出10个这样的结果。模型将输出10*3。损失函数应该是,最高位权最大,向量不同则固定高额损失,盘面分数不同则低损失。
然而其损失函数不好计算,忽略)
对于模型最简单的,总是计算盘面分,然后用搜索的深层的盘面分代替当前盘面分,这样模型就可以一直优化下去。输入盘面,用深层搜索后的盘面分代指标签,用盘面分结果差值代指损失,不断更新盘面分模型。
设计次模型时,可以先用五子棋来替代,尝试训练算法。
---------------------------------
旧版声明
五子棋核心算法包括:
深度搜索。当前层数5层(电脑上7层,手机cpu太慢)
Alpha-Beta剪枝。
点分启发。
估值函数优化为计算搜索的影响分。
数独核心算法:回溯法,数据结构模拟人思考
采用队列可能值等方法减少可能回溯的次数。
搜索最大节点数不超过2的7次
速度非常快,解为所有解
拼图核心算法:A*算法
f由实际代价*系数+估值距离*系数+逆序数*系数组成。
加入逆序数系数,比普通A*算法效率高出4倍。
没有合适的资源?快使用搜索试试~ 我知道了~
AI算法,包括五子棋数独拼图,后期可能会有象棋等。wuziqi.zip
共127个文件
java:61个
xml:27个
png:16个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 84 浏览量
2024-05-12
17:13:01
上传
评论
收藏 672KB ZIP 举报
温馨提示
五子棋游戏想必大家都非常熟悉,游戏规则十分简单。游戏开始后,玩家在游戏设置中选择人机对战,则系统执黑棋,玩家自己执白棋。双方轮流下一棋,先将横、竖或斜线的5个或5个以上同色棋子连成不间断的一排者为胜。 【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python、web、C#、EDA、proteus、RTOS等项目的源码。 【技术】 Java、Python、Node.js、Spring Boot、Django、Express、MySQL、PostgreSQL、MongoDB、React、Angular、Vue、Bootstrap、Material-UI、Redis、Docker、Kubernetes
资源推荐
资源详情
资源评论
收起资源包目录
AI算法,包括五子棋数独拼图,后期可能会有象棋等。wuziqi.zip (127个子文件)
gradlew.bat 2KB
.gitignore 135B
.gitignore 7B
.gitignore 7B
build.gradle 1KB
build.gradle 546B
build.gradle 497B
build.gradle 227B
settings.gradle 48B
gradlew 5KB
gradle-wrapper.jar 52KB
Qipan.java 13KB
CChessQipan.java 12KB
ChinaChessPanel.java 11KB
WuziqiPanel.java 9KB
Sousuo.java 9KB
Shudu.java 8KB
PingStatue.java 7KB
MainActivity.java 5KB
Test.java 4KB
PlayChess.java 4KB
Canju.java 4KB
MMSousuo.java 3KB
CCQiZipao.java 3KB
TurnBaseGame.java 2KB
CCQiZixiang.java 2KB
Pingtu.java 2KB
LinkAction.java 2KB
MMRole.java 2KB
CCQiZima.java 2KB
CCQiZishuai.java 2KB
TwoQI.java 2KB
Handler.java 2KB
CCQiZiche.java 2KB
TwoJuMian.java 2KB
CCQiZi.java 2KB
CCQiZibing.java 2KB
TurnRole.java 2KB
Looper.java 1KB
CCQiZishi.java 1KB
CCAction.java 1KB
ShuduTest.java 1KB
HistoryZhuofa.java 1KB
UserRole.java 1KB
Position.java 1KB
CChessImpl.java 1KB
MessageQueue.java 1KB
Zoufa.java 977B
Game.java 905B
TwoAbstractRole.java 831B
Shu.java 819B
JuMian.java 742B
ExampleInstrumentedTest.java 736B
RandomRole.java 735B
Qi.java 733B
Message.java 708B
Line.java 685B
ATurnBase.java 568B
CCJuMian.java 471B
B.java 407B
ExampleUnitTest.java 387B
PingtuTest.java 353B
MainActivity.java 337B
QiPan.java 288B
Action.java 273B
QiJu.java 240B
Boyi.java 235B
ActionListener.java 175B
QI.java 172B
Role.java 152B
UserOperateListener.java 141B
QiZi.java 112B
bg.jpg 205KB
bg.jpg 205KB
LICENSE 11KB
ic_launcher.png 24KB
stone_w2.png 21KB
ic_launcher_round.png 15KB
ic_launcher.png 12KB
ic_launcher_round.png 10KB
ic_launcher.png 9KB
ic_launcher.png 7KB
ic_launcher_round.png 7KB
ic_launcher.png 6KB
stone_b1.png 5KB
ic_launcher_round.png 5KB
ic_launcher.png 4KB
ic_launcher.png 4KB
ic_launcher.png 3KB
ic_launcher_round.png 3KB
ic_launcher.png 2KB
proguard-rules.pro 751B
gradle.properties 730B
gradle-wrapper.properties 233B
manualType.properties 10B
gradle_models.ser 162KB
build_file_checksums.ser 637B
readme.txt 4KB
import-summary.txt 2KB
系统.txt 7B
共 127 条
- 1
- 2
资源评论
枫蜜柚子茶
- 粉丝: 6863
- 资源: 5108
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功