象棋AI有多强,普通棋手还赢得了吗?
本页的答案复述的是本站开源引擎所实现的规则。该引擎遵循亚洲象棋联合会(WXF)规则,行棋、将死与重复局面的两条判定都已实现:用长将或长捉逼成重复局面的一方判负,不是判和。长捉的判定还没有经过官方判例集的校验。凡是答案提到具体局面的,该局面都在所链接的参考页上,由构建过程在发布之前逐一校验。
直接回答
顶尖的象棋引擎已经明显强过人类最强的棋手,这一点和国际象棋一样,没有争议。但“赢不赢得了”问的其实是难度:调低难度的引擎会算得浅、会故意走次优着,业余棋手赢它很正常。真正值得关心的不是能不能赢,而是你在哪一档上学得最多——那一档通常是你赢四成左右的那一档,赢九成或者输九成都学不到东西。
引擎强在哪里,弱在哪里
强在算。它不会漏掉三步之内的任何变化,不会因为紧张走错,不会在赢定的局面里松手。业余对局里绝大多数失误是这一类,所以引擎在这一类上几乎不可战胜。
相对弱的是长程判断:什么样的阵形在二十回合之后好,这类问题需要更深的搜索或者更好的评估函数才能看清。不过这个“弱”是相对顶尖人类而言的,对业余棋手来说它在任何阶段都足够强。
难度是怎么调出来的
三个旋钮:搜索多深、每步想多久、以及有多大概率不走最好的一着。最低几档靠的是后面那个——它看得见好棋,只是不总是走。这就是为什么低难度的引擎有时会走出很难看的一步,那不是它算错了。
知道这一点会改变你的用法:低难度的对局不要用来检验开局,它的回应不代表正确回应。要检验开局就把难度拉满,或者直接用复盘。
该选哪一档
选你赢得动但赢得不轻松的那一档,大约十局赢四局。赢得太轻松说明它没在考你,赢不了说明它在考的东西你还没学到,两头都是浪费时间。每往上升一档,通常要在原地待一两周。
相关问题
AI会不会因为我下得差而放水?
难度档位是你设的,它不会自己变。这一点比动态调节更诚实,也更好用来衡量进步。
和引擎下多了会不会养成坏习惯?
有一个:引擎不会犯错,所以不会教你怎么抓住对手的错。真人对局要照样下。
象棋被计算机完全解决了吗?
没有。残局的一部分算清了,整盘棋的完全解法远远超出现在的算力。