购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

符号人工智能,力图用数学逻辑解决通用问题

我们先来看一下符号人工智能。一个符号人工智能程序里的知识包括对人类来说通常可以理解的单词或短语(即“符号”),以及可供程序对这些符号进行组合和处理以执行指定任务的规则。

举个例子,一个早期的人工智能程序被创建者自信地命名为“通用问题求解器” 15 ,其英文简称为“GPS”。这个首字母缩写的确让人感到困惑,但通用问题求解器的出现早于全球定位系统(global positioning system, GPS)。通用问题求解器可以解答诸如“传教士和食人者”之类的智力游戏题,但这些题目你可能在孩童时期就已经知道如何解决了。在这个众所周知的难题中,3个传教士和3个食人者都需要过河,但一艘小船上只能载2人。如果河岸一边饥饿的食人者的数量超过了“美味的”传教士的话……好吧,你知道会发生什么。那么,他们如何成功地渡过这条河?

通用问题求解器的创建者,认知科学家西蒙和纽厄尔,记录了几个学生在解决这个问题以及其他逻辑难题时“自言自语”的过程。西蒙和纽厄尔随后设计了他们认为能够模仿学生的思考过程的程序。

这里我就不详细介绍通用问题求解器的工作原理了,但是从其程序指令的编码方式中可以看出它的符号性质。为了解决这个问题,人类会为通用问题求解器编写类似以下内容的代码:

         CURRENT STATE:
         LEFT-BANK = [3 MISSIONARIES, 3 CANNIBALS, 1 BOAT]
         RIGHT-BANK = [EMPTY]
         DESIRED STATE:
         LEFT-BANK = [EMPTY]
         RIGHT-BANK = [3 MISSIONARIES, 3 CANNIBALS, 1 BOAT]

上面这组代码描述了这样一个事实:最初,河的左岸(LEFT-BANK)包含了3名传教士(3 MISSIONARIES)、3名食人者(3 CANNIBALS)和1艘船(1 BOAT),而右岸不包含以上这些元素。理想状态表示程序的目标:让他们全部都到河的右岸。

通用问题求解器每运行一步,都会试图改变当前状态,以使其更接近理想状态。通用问题求解器的代码中,有能够把当前状态转变到一个新状态的“运算符”(operators,以子程序的形式存在),还有能够编码任务约束的规则。例如,有一个运算符是把一定数量的传教士和食人者从河岸的一边移动到另一边:

     MOVE(# MISSIONARIES, # CANNIBALS, FROM-SIDE, TO-SIDE)

括号内的单词称为参数,当程序运行时,它用数字或其他单词替换这些单词。也就是说,程序用要移动的传教士的数量来替换“MISSIONARIES”,用要移动的食人者的数量来替换“CANNIBALS”,用“LEFT-BANK”和“RIGHT-BANK”替换“FROM-SIDE”和“TO-SIDE”,这取决于传教士和食人者将被转移到河岸的哪一边,而船随着传教士和食人者一起移动这一信息,是被编码在程序之中的。

在调用运算符和使用特定值替换这些参数之前,程序必须检查其编码规则。例如,一次最多可以移动2人,并且如果该运算符会导致在同一河岸的食人者数量超过传教士的数量,则它不能被调用。

这个案例中的符号表示的都是人类可理解的概念,如传教士、食人者、船只、河岸等,但运行该程序的计算机并不知道这些符号的含义。你可以用“Z372B”或任何其他无意义的字符串替换所有的“MISSIONARIES”,程序也会以完全相同的方式工作,这就是通用问题求解器中“通用”一词的部分含义。对于计算机,符号的意义来自它们之间组合、相互关联和相互作用的方式。

符号人工智能的支持者认为,想要在计算机上获得智能,并不需要构建模仿大脑运行的程序。相反,其观点是,通用智能完全可以通过正确的符号处理程序来获得。我同意这种看法,构建这样一个程序要比构建传教士和食人者这个例子中所使用的程序复杂得多,但它仍然会由符号、符号组合、符号规则和运算组成。

由通用问题求解器所阐释的这类符号人工智能,在人工智能领域发展的最初30年里占据了主导地位,其中以专家系统最为著名。在专家系统中,人类专家为计算机程序设计用于医疗诊断和法律决策等任务的规则。人工智能领域有几个活跃的分支到现在仍在采用符号人工智能,我将在后面的章节中讲述其中的一些例子,特别是在探讨推理和“拥有常识”的人工智能方法的相关章节。 COVuZ7La+hJ2ruHrunh8hvgyFTNHPN7IbNPSy31Nd6JGFlkVtIOAMSn5PZR+idfw

点击中间区域
呼出菜单
上一章
目录
下一章
×