最近业余时间在开发一个象棋的微信小程序----【飞琪象棋】。自己写的一个js引擎,棋力还算过得去。
但受小程序和手机计算能力的限制,很难再提高棋力。怎么样才能最大限度的提升一下棋力呢?
首先我们来看看小程序对AI的限制有哪些:
1. 手机计算能力比电脑差很多,而微信内的js引擎性能更是差过chrome的V8。
2.手机内存有限,没法用大内存的交换表。
3. 小程序只能用js开发,js语言是一个解释型的编程语言。先天计算能力就比C++这种强类型的要差几个档次。
4. 小程序的大小受限,没法使用大型的开局库和残局库。
要想在有限的资源下,尽可能的提高棋力,只能是优化引擎的算法了。现在优秀的国际象棋引擎,在js下也能达到大师级的棋力。中象在这方面就差得较远。下面是我正在研究的优化方向,但水平有限,再加上业余时间也没有很多精力,进展不大。
1. 优化搜索算法,主要是优化裁剪方面。怎么合理高效的裁剪掉无用的局面,让搜索层次更深。
2. 评估函数的优化。更精简和准确的为局面打分。
3. 考虑把引擎放在服务器端,这样要求服务器的性能非常高,不然没法支撑高并发的请求。
如果大家有什么好的建议,欢迎分享。
但受小程序和手机计算能力的限制,很难再提高棋力。怎么样才能最大限度的提升一下棋力呢?
首先我们来看看小程序对AI的限制有哪些:
1. 手机计算能力比电脑差很多,而微信内的js引擎性能更是差过chrome的V8。
2.手机内存有限,没法用大内存的交换表。
3. 小程序只能用js开发,js语言是一个解释型的编程语言。先天计算能力就比C++这种强类型的要差几个档次。
4. 小程序的大小受限,没法使用大型的开局库和残局库。
要想在有限的资源下,尽可能的提高棋力,只能是优化引擎的算法了。现在优秀的国际象棋引擎,在js下也能达到大师级的棋力。中象在这方面就差得较远。下面是我正在研究的优化方向,但水平有限,再加上业余时间也没有很多精力,进展不大。
1. 优化搜索算法,主要是优化裁剪方面。怎么合理高效的裁剪掉无用的局面,让搜索层次更深。
2. 评估函数的优化。更精简和准确的为局面打分。
3. 考虑把引擎放在服务器端,这样要求服务器的性能非常高,不然没法支撑高并发的请求。
如果大家有什么好的建议,欢迎分享。