目前最先进的计算机国际象棋相当复杂,但所有这些都涉及到核心非常简单的盲计算。
让我们假设你从一个为游戏开始而设置的棋盘开始。每个玩家有16个棋子。假设白色开始。白色的有20种可能的动作:
- 白棋手可以将任何棋子向前移动一到两个位置。
- 白方玩家可以用两种不同的方式移动任意一个骑士。
白棋从这20步棋中选择一步并成功。
对于黑人玩家来说,选择是一样的:20种可能的移动。黑棋选择一步棋。
现在白色又可以移动了。下一步棋取决于白棋选择的第一步棋,但在当前棋盘位置下,白棋可以走20步左右,然后黑棋可以走20步左右,以此类推。
这是计算机看待国18新利最新登入际象棋的方式。它在一个“所有可能的动作”的世界里思考它,它做出了一个很大的树对于所有这些动作,像这样:
在这棵树中,白棋有20种可能的走法。黑棋有20 * 20 = 400种可能的走法,这取决于白棋的做法。然后是白色的400 * 20 = 8000。然后黑色有8000 * 20 = 160,000,以此类推。如果你要把所有可能的棋法完整地发展成整棵树,棋盘位置的总数大约是1,000,000,000,000,000,000,000,000,
000000000000000000000000000000000000000000年,
000000000000000000000000000000000000000000年,
000000000000年,或10120,或多或少。这是一个很大的数字。例如,只有10个26纳秒以来大爆炸。据说只有10只75整个宇宙中的原子。当你考虑到银河系包含数十亿个太阳,有数十亿个星系,你可以看到这是一大堆原子。这一数字与国际象棋可能的走法数量相比相形见绌。国际象棋是一种相当复杂的游戏!
没有计算机能计算出整棵树。国际象棋计算机试图做的是在未来的5步,10步或20步后生成棋盘位置树。假设任何棋盘位置都有大约20种可能的走法,一个五级树包含320万个棋盘位置。一个10级树包含大约10,000,000,000,000(10万亿)个位置。计算机可以计算的树的深度是由计算机玩游戏的速度控制的。最快的国际象棋计算机每秒可以生成和评估数百万个棋盘位置。
一旦生成了树,计算机就需要“评估棋盘位置”。也就是说,计算机必须查看棋盘上的棋子,并决定棋子的排列是“好”还是“坏”。它的方法是使用评价函数。最简单的函数可能只是计算每条边的棋子数。如果计算机下的是白棋,而某个棋盘位置有11个白子和9个黑子,最简单的评估函数可能是:
显然,对于国际象棋来说,这个公式是道路太简单了,因为有些部分比其他部分更有价值。所以这个公式可能会对每种类型的棋子施加一个权重。随着程序员的思考,他或她通过添加诸如棋盘位置、对中心的控制、要检查的国王的脆弱性、对手皇后的脆弱性以及大量其他参数,使评估函数变得越来越复杂。然而,无论函数变得多18新利最新登入么复杂,它都被浓缩为一个代表该棋盘位置的“好”的数字。