新手的行为过程,基本上和通用问题解决程序的过程相同,其主要办法是把想要求得的东西列成表,然后用一个方程式来进行计算。在计算中把所要解决的每一个项目作为因变量,如果其他变量已知,那么,通过这个点就可求得未知变量,而把要求得的东西从表中消掉。假定我们要求新手计算时间,他一看就知道距离是已知条件,平均速度是未知条件,于是他就先求平均速度,并把平均速度列到表上。
我们编写的程序和新手解决问题的过程几乎相同,看能否把这个问题用产生式加以解决。这个产生式的有些变量已知,有些变量未知。产生式是列出一些方程来计算已知的数和未知的数。例如在求平均速度 $\bar { V }$ 的产生式中,已知 $V _ { 0 }$ 与 $V _ { v }$ ,就利用方程式 $\bar { V } { = } \frac { { V _ { \mathrm { 0 } } + V _ { \mathrm { t } } } } { 2 }$ 求出 $\bar { V } _ { \circ }$ 实际上,产生式的程序是模拟的人的行为。
专家的行为有一个重要方面与新手不同。开始时,专家不去注意哪几个变量是未知的,而注意哪些变量是已知的。假如首先知道 $V _ { 0 }$ 和 $V _ { t }$ ,就要从已知量中去推算出其他变量。专家与新手解决问题的不同点就在于,专家不是从目标往回走,而是扩展已有的知识去解决问题。我们分析专家的口述记录,发现他们不是寻找要求得的东西,而是从已知的东西往前走。这一发现使我们惊讶。因为在教书时总要求学生去发现题目问的是什么,为了得到答案去利用已有的知识。这种教法表面上合理,好像是有的放矢,可这是新手解决问题的办法。专家是根据已有的东西,想办法加以利用。只有当专家遇到难题时,他的解题步骤才与新手相近。我们按以下方式解释这一现象。
第五章 语义丰富领域
185