4570跑了一下买国际象棋棋,大家看看分数正常吗

为什么同是跑国际象棋i5的分数还不如i3_百度知道
为什么同是跑国际象棋i5的分数还不如i3
我有更好的答案
你的象棋版本的问题。概率非常小。其实这些跑分没什么实际的意义,换个CPU-z看看CPU第一,建议你先换个版本试试,这个U能跑出3000分左右的水平正常情况下,如果还是这样,你看见是I5-2320。第二,是四核,其实是商家改的,搞不好是个老U,可能是商家给你上的假冒CPU,但不一定是I5
采纳率:96%
来自团队:
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。国际象棋测试的数据怎么看的?_百度知道
国际象棋测试的数据怎么看的?
国际象棋测试的数据怎么看的?这颗u测试怎么样?
我有更好的答案
看不清楚线程数,测试倍数21倍多大概是三代I5或AMD 6核的整体性能
性能一般,四代i5水平
这分很屌了,至少i7
其他1条回答
为您推荐:
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。用Python编写一个国际象棋AI程序
转载 & & 投稿:mdxy-dxy
在这篇文章中我会介绍这个AI如何工作,每一个部分做什么,它为什么能那样工作起来。你可以直接通读本文,或者去下载代码,边读边看代码。虽然去看看其他文件中有什么AI依赖的类也可能有帮助,但是AI部分全都在AI.py文件中
最近我用Python做了一个国际象棋程序并把代码发布在上了。这个代码不到1000行,大概20%用来实现AI。在这篇文章中我会介绍这个AI如何工作,每一个部分做什么,它为什么能那样工作起来。你可以直接通读本文,或者去下载代码,边读边看代码。虽然去看看其他文件中有什么AI依赖的类也可能有帮助,但是AI部分全都在AI.py文件中。
AI 部分总述
AI在做出决策前经过三个不同的步骤。首先,他找到所有规则允许的棋步(通常在开局时会有20-30种,随后会降低到几种)。其次,它生成一个棋步树用来随后决定最佳决策。虽然树的大小随深度指数增长,但是树的深度可以是任意的。假设每次决策有平均20个可选的棋步,那深度为1对应20棋步,深度为2对应400棋步,深度为3对应8000棋步。最后,它遍历这个树,采取x步后结果最佳的那个棋步,x是我们选择的树的深度。后面的文章为了简单起见,我会假设树深为2。
生成棋步树
棋步树是这个AI的核心。构成这个树的类是MoveNode.py文件中的MoveNode。他的初始化方法如下:
def __init__(self, move, children, parent) :
self.move = move
self.children = children
self.parent = parent
pointAdvantage = None
这个类有五个属性。首先是move,即它包含的棋步,它是个Move类,在这不是很重要,只需要知道它是一个告诉一个起子往哪走的棋步,可以吃什么子,等等。然后是children,它也是个MoveNode类。第三个属性是parent,所以通过它可以知道上一层有哪些MoveNode。pointAdvantage属性是AI用来决定这一棋步是好是坏用的。depth属性指明这一结点在第几层,也就是说该节点上面有多少节点。生成棋步树的代码如下:
def generateMoveTree(self) :
moveTree = []
for move in self.board.getAllMovesLegal(self.side) :
moveTree.append(MoveNode(move, [], None))
for node in moveTree :
self.board.makeMove(node.move)
self.populateNodeChildren(node)
self.board.undoLastMove()
return moveTree
变量moveTree一开始是个空list,随后它装入MoveNode类的实例。第一个循环后,它只是一个拥有没有父结点、子结点的MoveNode的数组,也就是一些根节点。第二个循环遍历moveTree,用populateNodeChildren函数给每个节点添加子节点:
def populateNodeChildren(self, node) :
node.pointAdvantage = self.board.getPointAdvantageOfSide(self.side)
node.depth = node.getDepth()
if node.depth == self.depth :
side = self.board.currentSide
legalMoves = self.board.getAllMovesLegal(side)
if not legalMoves :
if self.board.isCheckmate() :
node.move.checkmate = True
elif self.board.isStalemate() :
node.move.stalemate = True
node.pointAdvantage = 0
for move in legalMoves :
node.children.append(MoveNode(move, [], node))
self.board.makeMove(move)
self.populateNodeChildren(node.children[-1])
self.board.undoLastMove()
这个函数是递归的,并且它有点难用图像表达出来。一开始给它传递了个MoveNode对象。这个MoveNode对象会有为1的深度,因为它没有父节点。我们还是假设这个AI被设定为深度为2。因此率先传给这个函数的结点会跳过第一个if语句。
然后,决定出所有规则允许的棋步。不过这在这篇文章讨论的范围之外,如果你想看的话代码都在Github上。下一个if语句检查是否有符合规则的棋步。如果一个都没有,要么被将死了,要么和棋了。如果是被将死了,由于没有其他可以走的棋步,把node.move.checkmate属性设为True并return。和棋也是相似的,不过由于哪一方都没有优势,我们把node.pointAdvantage设为0。
如果不是将死或者和棋,那么legalMoves变量中的所有棋步都被加入当前结点的子节点中作为MoveNode,然后函数被调用来给这些子节点添加他们自己的MoveNode。
当结点的深度等于self.depth(这个例子中是2)时,什么也不做,当前节点的子节点保留为空数组。
假设/我们有了一个MoveNode的树,我们需要遍历他,找到最佳棋步。这个逻辑有些微妙,需要花一点时间想明白它(在明白这是个很好的算法之前,我应该更多地去用Google)。所以我会尽可能充分解释它。比方说这是我们的棋步树:
如果这个AI很笨,只有深度1,他会选择拿“象”吃“车”,导致它得到5分并且总优势为+7。然后下一步“兵”会吃掉它的“后”,现在优势从+7变为-2,因为它没有提前想到下一步。
在假设它的深度为2。将会看到它用“后”吃“马”导致分数-4,移动“后”导致分数+1,“象”吃“车”导致分数-2。因此,他选择移动后。这是设计AI时的通用技巧,你可以在这找到更多资料(极小化极大算法)。
所以我们轮到AI时让它选择最佳棋步,并且假设AI的对手会选择对AI来说最不利的棋步。下面展示这一点是如何实现的:
def getOptimalPointAdvantageForNode(self, node) :
if node.children:
for child in node.children :
child.pointAdvantage = self.getOptimalPointAdvantageForNode(child)
#If the depth is divisible by 2, it's a move for the AI's side, so return max
if node.children[0].depth % 2 == 1 :
return(max(node.children).pointAdvantage)
return(min(node.children).pointAdvantage)
return node.pointAdvantage
这也是个递归函数,所以一眼很难看出它在干什么。有两种情况:当前结点有子节点或者没有子节点。假设棋步树正好是前面图中的样子(实际中每个树枝上会有更多结点)。
第一种情况中,当前节点有子节点。拿第一步举例,Q吃掉N。它子节点的深度为2,所以2除2取余不是1。这意味着子节点包含对手的一步棋,所以返回最小步数(假设对手会走出对AI最不利的棋步)。
该节点的子节点不会有他们自己的节点,因为我们假设深度为2。因此,他们但会他们真实的分值(-4和+5)。他们中最小的是-4,所以第一步,Q吃N,被给为分值-4。
其他两步也重复这个步骤,移动“后”的分数给为+1,“象”吃“车”的分数给为-2。
选择最佳棋步
最难的部分已经完成了,现在这个AI要做的事就是从最高分值的棋步中做选择。
def bestMovesWithMoveTree(self, moveTree) :
bestMoveNodes = []
for moveNode in moveTree :
moveNode.pointAdvantage = self.getOptimalPointAdvantageForNode(moveNode)
if not bestMoveNodes :
bestMoveNodes.append(moveNode)
elif moveNode & bestMoveNodes[0] :
bestMoveNodes = []
bestMoveNodes.append(moveNode)
elif moveNode == bestMoveNodes[0] :
bestMoveNodes.append(moveNode)
return [node.move for node in bestMoveNodes]
此时有三种情况。如果变量bestMoveNodes为空,那么moveNode的值是多少,都添加到这个list中。如果moveNode的值高于bestMoveNodes的第一个元素,清空这个list然后添加该moveNode。如果moveNode的值是一样的,那么添加到list中。
最后一步是从最佳棋步中随机选择一个(AI能被预测是很糟糕的)
bestMoves = self.bestMovesWithMoveTree(moveTree)
randomBestMove = random.choice(bestMoves)
这就是所有的内容。AI生成一个树,用子节点填充到任意深度,遍历这个树找到每个棋步的分值,然后随机选择最好的。这有各种可以优化的地方,剪枝,剃刀,静止搜索等等,但是希望这篇文章很好地解释了基础的暴力算法的象棋AI是如何工作的。
本文由 伯乐在线 - 许世豪 翻译自 。
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具FX6300的国际象棋跑分
谁能告诉我这分数正常吗 ?比得过i3吗?【amd吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:296,234贴子:
FX6300的国际象棋跑分
谁能告诉我这分数正常吗 ?比得过i3吗?收藏
「天猫情人节」情人节礼物专场,大额店铺优惠券,畅享好礼,&惠&聚浪漫,大胆为爱告白!「天猫情人节」礼遇心动的你!
经常听到吧里大神们讨论象棋得分 所以就去测了一下
但不知道这分数代表什么
这U性能怎么样
又一个刚来a吧的小白。告诉你,默频秒i3(别信i3xxx的),4.3秒i5超到5当e3
超到6(很难)当旧代i7不带k
楼主超到多少了
你拿单线程和i3比肯定那啥啊,
秒了i3无压力        --来自不浪漫罪名
i3 4340(es)
多线程牛就行了
傻帽们一直拿单核性能说事。。请问一下现在出去干架或者找妹子谁不是人多力量大啊。就好比intel一个30岁壮男 给amd 4个10岁+虐成翔的道理一样amd虽然单核不如你 内存性能不如你
但是价位差不多的情况下
核心数比你多啊
性价比比你高啊
装电脑为啥啊?
用啊。。。。又不是拿来跑分的你要是天天打开电脑都要跑跑象棋。。你也快进精神病了
大皇帝页游新区入口,三国SLG战争页游,点击领取礼包,新服送首冲高返利!
单线程强就行了,4个线程够得很了,6核8核干什么,游戏秒了再说。
i3算啥啊?叫你家i5出来比比
正常值在8800左右
象棋算你赢~但是和i3比怎么能不比浮点linx呢
你会发现所谓六核在三线程以上成绩就完全没有提升了~
上个自己的I54570.你们看看正常不?
老实说超了多少
你这个和我8320分数一样啊
吹I3秒全的都是买不起I7
没超频就这么高?厉害,我不超就8000多
没超频6300就是分
我这是什么水平啊
图片来自:图片来自:图片来自:
不超频6线程应该是9000左右吧,你的有点高。
一代i5的单核性能。。。还是本子U
登录百度帐号推荐应用扫二维码下载作业帮
拍照搜题,秒出答案,一键查看所有搜题记录
下载作业帮安装包
扫二维码下载作业帮
拍照搜题,秒出答案,一键查看所有搜题记录
这里有一个高中作文的题目,大家帮我看看该怎么写据报载,一位国际象棋特级大师,在经过了多年的精心准备后,和电脑进行了一场比赛.结果大师输给了电脑.于是,人们开始忧虑,电脑今后是不是将取代人脑?据此材料写一篇作文.不少于800字
作业帮用户
扫二维码下载作业帮
拍照搜题,秒出答案,一键查看所有搜题记录
首先,找到主题.人脑是否真的被电脑说取代但后根据直接的观点举例说明自己的立场最后可以终结观点!~ 作文只要明确了主题,就不容易跑题.一些作文分也就自然而然到手了!~
为您推荐:
其他类似问题
扫描下载二维码}

我要回帖

更多关于 国际象棋胭脂分数 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信