CalciteM Team
|
3e5c856d86
|
hash: 哈希表大小由64M调小为32M
* g++ 编译后运行不再提示 std::bad_alloc
* 运行速度反而提升 5%
|
2019-08-01 22:50:09 +08:00 |
CalciteM Team
|
8d050479fd
|
Node 结构体裁剪
将部分成员改为仅在启用树调试时才使用
|
2019-08-01 22:28:58 +08:00 |
CalciteM Team
|
a22c06018a
|
新增 StackAlloc 不过暂未启用
|
2019-08-01 01:02:45 +08:00 |
CalciteM Team
|
51be7b9490
|
使用内存池用于 Alpha-Beta 搜索树结点的存储
提速 19%自对弈一盘棋从 251s 缩短到 205s。
|
2019-08-01 00:17:46 +08:00 |
CalciteM
|
1cf6f524ab
|
关闭 RAPID_CHESS
|
2019-07-31 01:44:43 +08:00 |
CalciteM
|
e52021d80b
|
每一着的停顿时间由100ms改为500ms
|
2019-07-31 01:43:15 +08:00 |
CalciteM
|
2dfc52bf71
|
新游戏时不播放声音
|
2019-07-31 00:13:35 +08:00 |
CalciteM
|
496e510689
|
增加 RAPID_CHESS 启用后摆棋阶段缩短到1min以内
|
2019-07-30 23:51:41 +08:00 |
CalciteM
|
780c448f0b
|
算出最佳着法后延迟100ms才执行
|
2019-07-29 23:25:39 +08:00 |
CalciteM
|
476dc231b0
|
新增 MESSAGEBOX_ENABLE 宏用于控制棋局结束是否弹框提示
|
2019-07-29 22:58:40 +08:00 |
CalciteM
|
ef77a5d061
|
network: 启动时不再显示服务器的端口号
|
2019-07-29 00:53:03 +08:00 |
CalciteM
|
6c5a81e176
|
network: Client 读取间隔由 100ms 修改为 10ms
|
2019-07-29 00:47:23 +08:00 |
CalciteM
|
720906b0ad
|
network: 修复 connect 错误问题
|
2019-07-29 00:26:10 +08:00 |
CalciteM Team
|
4e5170caf8
|
network: 能自动在30001/30002端口之间选择
|
2019-07-28 19:45:49 +08:00 |
CalciteM Team
|
d10cc44d3d
|
network: 客户端每隔100ms自动读取一次着法
|
2019-07-28 18:38:18 +08:00 |
CalciteM
|
0b2b043f96
|
network: 将 Server/Client 实例改放到 AI 线程类
|
2019-07-28 12:42:14 +08:00 |
CalciteM
|
6b8a22e528
|
Network: AI走完后将着法放到服务器的发送列表中
|
2019-07-28 10:51:27 +08:00 |
CalciteM
|
c00287db45
|
network: 将 Client/Server 类实例由 ninechesswindow 移动到 GameController
并将 actions 调整为 action
|
2019-07-28 10:19:01 +08:00 |
CalciteM
|
afab1be637
|
network: 固定连接 localhost:33333
|
2019-07-28 09:15:19 +08:00 |
CalciteM
|
29b537296b
|
network: Replace Qt network example to ours
|
2019-07-28 08:56:49 +08:00 |
CalciteM
|
3afd2a7900
|
network: 点击网络对战时弹出网络设置对话框
|
2019-07-28 08:21:09 +08:00 |
CalciteM
|
e6c4a55aa4
|
Add Qt network example source files
|
2019-07-28 07:47:04 +08:00 |
CalciteM
|
66491abb91
|
增加版权声明文件头以及 LGPLv3 & GPLv3 协议本文
|
2019-07-28 02:42:30 +08:00 |
CalciteM
|
c2e366c50b
|
从走子阶段开始或上次吃子起的步数超过50算和棋
|
2019-07-27 12:28:22 +08:00 |
CalciteM
|
79dbab4eaf
|
WAR: 默认50步未决出胜负则和棋
是从摆棋阶段开始算
有吃子不会清零
待修改
|
2019-07-27 11:56:50 +08:00 |
CalciteM
|
8b092ad2ca
|
出现三次重复局面判为和棋并添加和棋盘数显示
|
2019-07-27 11:32:47 +08:00 |
CalciteM
|
563c5bea05
|
depth: 因性能问题将开局的深度调低
|
2019-07-25 01:49:46 +08:00 |
CalciteM Team
|
1ca61b7f4c
|
BOOK: 叶子结点才记录开局库并且几乎所有局面都记录到开局库
|
2019-07-21 19:51:26 +08:00 |
CalciteM Team
|
f400e5be7f
|
Book: 行棋阶段不检索开局库
|
2019-07-21 18:28:40 +08:00 |
CalciteM Team
|
044991678f
|
Book: 启用开局学习并实现将开局库导出到文件的特性
|
2019-07-21 16:30:49 +08:00 |
CalciteM Team
|
6f60b425c8
|
Book: 只记录摆棋阶段最后一着的局面
并将 Book 大小调小到 16M 个项
|
2019-07-21 15:19:23 +08:00 |
CalciteM Team
|
18c5749b7c
|
HASH: zobrist 数组由随机生成改为预定义
|
2019-07-21 15:01:24 +08:00 |
CalciteM Team
|
5899b14f92
|
修复开启 BOOK_LEARNING 宏后编译不通过的问题
|
2019-07-21 13:59:54 +08:00 |
CalciteM Team
|
58d42fb8ba
|
关闭水平线效应处理
相应地添加开启 HASH 并关闭水平线效应处理的深度表
顺带修改未关闭时的深度表
|
2019-07-21 04:05:06 +08:00 |
CalciteM Team
|
bfcd719d99
|
去掉比分冒号前后空格
|
2019-07-21 00:26:27 +08:00 |
CalciteM Team
|
995f965d61
|
depth: 启用哈希时将走子阶段深度上调到10
|
2019-07-21 00:25:42 +08:00 |
CalciteM Team
|
b4fd1adcfa
|
depth: 摆子阶段将前两着深度降低并把中段深度提升
原因:
开局阶段算太深无意义,且可能未走到星位上
中段提升有助于提升胜率
|
2019-07-21 00:24:52 +08:00 |
CalciteM Team
|
ba097dedf4
|
msvc: 修改编译选项 MultiThreadedDLL -> MultiThreaded
|
2019-07-20 21:52:58 +08:00 |
CalciteM Team
|
791ea6d3a8
|
代码清理
|
2019-07-20 21:42:44 +08:00 |
CalciteM Team
|
2aaa3d276b
|
search: 调整部分语句位置
对性能优化极为轻微
|
2019-07-20 21:19:18 +08:00 |
CalciteM Team
|
922206b3ab
|
node->children vector 预留空间由48改为24,
节省了空间,但对效率几乎没有影响。
|
2019-07-20 20:56:33 +08:00 |
CalciteM Team
|
284c1c29cb
|
msvc: 连接器添加 /LTCG 选项提升链接性能
|
2019-07-20 20:42:29 +08:00 |
CalciteM Team
|
19d23eb7b8
|
HASH: 哈希结点个数由128M下调到64M
提速6%,并且无冲突出现。
实测 64M/32M 相差不大,16M会出现冲突影响计算结果。
|
2019-07-20 20:34:53 +08:00 |
CalciteM Team
|
28096b97c2
|
HASH: HashValue 中无需保存 hash 值,去除后提速 3%
|
2019-07-20 20:18:04 +08:00 |
CalciteM Team
|
6744c31a1f
|
下完棋后左下角信息栏的信息加上比分
|
2019-07-20 19:32:05 +08:00 |
CalciteM Team
|
87ba471531
|
代码清理
|
2019-07-20 19:19:28 +08:00 |
CalciteM Team
|
5aff5d8d29
|
Merge branch 'book'
合并开局学习相关提交,但暂不开启宏,因未完善 (棋力越下越弱)
|
2019-07-20 17:36:04 +08:00 |
CalciteM Team
|
3c24f6bce2
|
因开启哈希故将走子阶段深度提升
|
2019-07-20 17:02:36 +08:00 |
CalciteM Team
|
75fa2f83c7
|
HASH: 哈希返回的结果会决定结点是否是剪枝过
|
2019-07-20 17:02:36 +08:00 |
CalciteM Team
|
a6a1923163
|
HASH: 把最优着法插入首位而非和首位交换
|
2019-07-20 17:02:36 +08:00 |
CalciteM Team
|
081342bd89
|
HASH: 记录最优着法并在排序时将最优着法换到首位
|
2019-07-20 17:02:36 +08:00 |
CalciteM Team
|
7bb69cc561
|
HASH: 同样深度或更深时才替换
|
2019-07-20 17:02:36 +08:00 |
CalciteM Team
|
a77f6b6c95
|
HASH: 棋力和非HASH相当了但是效率无提升
|
2019-07-20 17:02:36 +08:00 |
CalciteM Team
|
d200ccad55
|
HASH: 记录哈希时不再记录 alpha/beta
|
2019-07-20 17:02:15 +08:00 |
CalciteM Team
|
7c1aec240f
|
IDS: 只有启用迭代深化时才有必要排序子节点
|
2019-07-19 23:15:41 +08:00 |
CalciteM Team
|
7fd982c1fc
|
book: 完成开局库学习的初版
|
2019-07-17 02:02:10 +08:00 |
CalciteM Team
|
d75feb9eea
|
实现开局库
|
2019-07-16 23:57:41 +08:00 |
CalciteM Team
|
98522a8267
|
加入 Book Learning 和 hash 相关的代码
Book Learning 功能待后续添加
|
2019-07-16 22:39:05 +08:00 |
CalciteM Team
|
7cfda4a015
|
增加 BOOK_LEARNING 宏
|
2019-07-16 21:55:30 +08:00 |
CalciteM Team
|
89476b6de3
|
Revert "HASH: 临时 提交"
This reverts commit 14e9d68288 .
|
2019-07-16 02:03:42 +08:00 |
CalciteM Team
|
bcda7d77fd
|
HASH: 每次做AB搜索前都清空哈希表
|
2019-07-16 02:02:21 +08:00 |
CalciteM Team
|
14e9d68288
|
HASH: 临时 提交
|
2019-07-15 00:55:00 +08:00 |
CalciteM Team
|
0ec8aa77f3
|
HASH: 先确保自我对战结果和未开HASH相同
|
2019-07-15 00:26:48 +08:00 |
CalciteM Team
|
ab06ad7716
|
HASH: 新增 probeHash 函数 (相关代码未完成)
|
2019-07-15 00:23:19 +08:00 |
CalciteM Team
|
3e0c23a669
|
HASH: 仅当从hashmap中读取的为确切值才应用value
棋力恢复回关闭hash的水平但耗时约大一倍
|
2019-07-14 22:51:46 +08:00 |
CalciteM Team
|
4a60435a38
|
目前HASH棋力弱存在Bug故关闭
|
2019-07-14 22:35:45 +08:00 |
CalciteM Team
|
3bf5381afd
|
HASH: 下第二盘时不明原因变慢故新开局时清除哈希表 (WAR)
|
2019-07-14 21:53:12 +08:00 |
CalciteM Team
|
e4ea2851c2
|
HASH: 哈希表扩大到128M
效率看不出差异
|
2019-07-14 21:45:35 +08:00 |
CalciteM Team
|
ecebd39347
|
HASH: 彻底去除哈希桶
|
2019-07-14 21:03:20 +08:00 |
CalciteM Team
|
35df7d3e6c
|
HASH: 去掉next指针以清理更多哈希桶代码
|
2019-07-14 20:11:53 +08:00 |
CalciteM Team
|
dfcbc2283e
|
HASH: key 直接转换为地址而非经过 std:hash 换算
|
2019-07-14 20:04:33 +08:00 |
CalciteM Team
|
08f50641df
|
HASH: 计算哈希地址时 % 改为 & 运算
实测效率几乎没有影响
|
2019-07-14 19:46:04 +08:00 |
CalciteM Team
|
86b9443c2f
|
HASH: 哈希表大小调整为16M
|
2019-07-14 19:35:24 +08:00 |
CalciteM Team
|
850738d529
|
HASH: 新增 DISABLE_HASHBUCKET 宏供用于禁用哈希桶
|
2019-07-14 19:35:02 +08:00 |
CalciteM Team
|
d602a1df10
|
HASH: 哈希表大小上调到 1M
|
2019-07-14 17:31:23 +08:00 |
CalciteM Team
|
acda6db11b
|
HASH: alphaBetaPruning 基本修改完成
|
2019-07-14 17:03:28 +08:00 |
CalciteM Team
|
6a7c8d1d59
|
pro文件增加哈希头文件
|
2019-07-14 15:10:16 +08:00 |
CalciteM Team
|
4b1f3bba48
|
updateHash和revertHash函数完成调用
|
2019-07-14 14:49:01 +08:00 |
CalciteM Team
|
30fabb7a4c
|
完成 updateHash 函数
|
2019-07-14 13:56:36 +08:00 |
CalciteM Team
|
113aca04b5
|
部分适配 findHash 和 recodeHash
|
2019-07-14 11:17:15 +08:00 |
CalciteM Team
|
e89be5e883
|
hashmap cpp 换为 h
|
2019-07-14 11:04:51 +08:00 |
CalciteM Team
|
e55eee77a6
|
哈希模块替换为 kshk123/hashMap 但还未适配
|
2019-07-14 10:06:15 +08:00 |
CalciteM Team
|
8faa9baa38
|
去除部分语句的方式链接通过,暂时先这样处理
|
2019-07-14 02:01:38 +08:00 |
CalciteM Team
|
0421fa0494
|
HASH: 编译通过链接仍失败
|
2019-07-13 21:39:06 +08:00 |
CalciteM Team
|
a3301d19d0
|
IDS: 深化迭代步长由1改为2 (WAR)
原因:
对于以下棋局
r2 s000 t00
(2,4) 00:00.000
(2,8) 00:00.487
(2,6) 00:46.657
(2,5) 00:00.976
(2,2) 00:49.176
(2,3) 00:02.488
(3,6) 00:55.784
(1,6) 00:03.387
(1,4) 01:09.749
(3,5) 00:03.758
最后一步 (3,5) 而非封堵 (3,4) 最终输棋
调试时发现在迭代深度为5时 之前 (3,4) 排第1的顺序被打乱
故迭代为偶数以跳过5
和原来的程序对战结果 2:5-3.5, 所以这种改法为 WAR 方案
|
2019-07-13 21:12:32 +08:00 |
CalciteM Team
|
527fec2856
|
添加未完成的Hash代码但暂时关闭宏
|
2019-07-13 19:47:30 +08:00 |
CalciteM Team
|
702a562bbd
|
添加哈希表部分代码
编译通过,链接不通过
|
2019-07-13 18:09:07 +08:00 |
CalciteM Team
|
03294e1557
|
临时调整 config.h 以后续调试 Hash 用
|
2019-07-13 15:04:03 +08:00 |
CalciteM Team
|
88fec0b8bf
|
hash改名为hashCheckCode以免和后面添加的真正的hash值名称冲突
|
2019-07-13 14:59:22 +08:00 |
CalciteM Team
|
0d5306514a
|
删除部分无用代码
|
2019-07-13 14:42:38 +08:00 |
CalciteM Team
|
4e43de6663
|
去除一处被反复调用的 setTips 以提高性能6%
|
2019-07-13 13:56:31 +08:00 |
CalciteM Team
|
87ff9a3927
|
Qt: 将 config.h 加入 Qt 工程
|
2019-07-13 11:07:23 +08:00 |
CalciteM Team
|
fe87db7666
|
调试完成故重新启用随机走子
|
2019-07-13 11:05:22 +08:00 |
CalciteM Team
|
30d458a76a
|
生成合法着法前先给 children 数组扩容到48
i7 CPU 上,自对战再提速 18%,耗时由 109s 缩短到 90s
|
2019-07-13 11:01:31 +08:00 |
CalciteM Team
|
bf26f291a1
|
Node子节点不用list改用vector使得提速20%
i7 CPU,自我对弈从 136s 缩短到 109s
sortLegalMoves CPU性能占用率从13%下降到2.3%
|
2019-07-13 10:34:08 +08:00 |
CalciteM Team
|
332f3c181b
|
Disable rand move
|
2019-07-13 09:05:13 +08:00 |
CalciteM
|
006a548d69
|
吃子优先级和摆子优先级相反
|
2019-07-12 01:15:46 +08:00 |
CalciteM
|
ff1d7dce84
|
优先级表调整为内圈十字架优先于外圈十字架
|
2019-07-10 23:16:58 +08:00 |
CalciteM
|
ffa742881a
|
自动生成的棋谱后缀改为 .txt
之前只能用命令
ls *.log | awk -F'.' '{print $1}'|xargs -i -t mv {}.log {}.txt
把 log 批量改为 txt
|
2019-07-10 23:02:41 +08:00 |
CalciteM
|
eb2121046d
|
每下一着之前才重新随机生成着法候选列表以提升效率
|
2019-07-10 02:05:33 +08:00 |