2 计算+存储=电脑?

2

计算+存储=电脑?

这个问题10年前就引起了我的注意,在本书对该问题进行深入展开前,我们先来了解一些基本的概念——什么是电脑,什么是编程?

在现代社会中,电脑是不可或缺的。小到人手一部的手机,大到飞机上的操控系统,生活中有着数不清的电脑装置。但从本质上讲,这些为丰富的活动提供支持、看似功能繁多的电脑装置实际上能做到的只有以下两点。

其一,“单纯的计算”。

在进行加减乘除及其他同级别的运算时,电脑的计算速度非常可怕,简单来说就是计算器的功能。其运作机制虽然简单,但光凭惊人的速度这一点,也足以满足很多需求了。

其二,“存储”。

大家对于电脑强大的存储功能并不陌生,它庞大的存储量可以帮助我们解决很多问题。例如电子词典,仅仅是将英语单词等相关内容存储进电脑,便可使我们的查询效率比翻阅纸质词典时更加高效。

除了不断重复“单纯的计算”和“存储”两大功能以外,电脑基本没有更多的功能了。我们之所以认为电脑有能力完成除此以外的更多任务,是因为程序员通过编写程序给电脑下达命令,使它能够更好地利用这两种功能去解决多样的问题。

那么,拥有此种特性的电脑在面对将棋时,该如何设计其程序呢?记录下所有职业棋手的棋局就可以变强吗?

遗憾的是,答案是否定的。与今天相比,10年前的电脑将棋虽然实力极弱,但要记录下所有职业棋手的对弈过程也并非难事。然而,不论10年前的电脑收录了多少棋谱,它都一直未能击败人类。

对于将棋这样千变万化的复杂游戏来说,即便将过去的棋局毫无遗漏地记录下来,在新的对弈中也会不可避免地出现新的局面。此时,相较于存储力,能够及时作出合适的反应和判断才是电脑更为需要的能力。

(此后我们也会提到,单凭存储能力就可以解决的问题已经不属于人工智能的课题范围。)

如今PONANZA的实力已经超越人类,足以击败世界顶尖职业棋手。10年前那个毫无战斗力的PONANZA为什么能成为今天的赢家?身为程序员的我又下了怎样的功夫,才使得只会简单计算和存储的PONANZA获得了足以打败人类的智能?下面让我们一起来揭开这个谜底。