什么是抽象?复杂的抽象是一种思维操作,它是从大量的事物、现象中提取出最本质的、具有普遍特征的东西的操作。复杂抽象的结果是产生一些概念,因此也把这些概念叫做抽象的概念。通常也把从大量现象中提取出反映本质的概念的操作叫做抽象。
很显然,前两种表述说法不大相同,但是指的是一回事。
复杂抽象操作显然包括太多不易用计算机实现的东西,因此我们不能从模拟复杂抽象开始我们的工作。但是在“离散编程法”中我提出一个元操作的概念,我们能不能从“抽象操作”的元操作开始我们模拟抽象的工作?
下面我们就做这个尝试。
什么是简单抽象?简单抽象不能讲什么“本质的”、“普遍的”这样的标准,它只要能够从一大堆东西中找到共同的东西就成。而我们就以字符串处理为例,编写一个程序,看它如何从一大堆字符串中找到共同的东西。找的结局是什么?又意味着什么?
在我的这个程序中,使用到的操作为:
(1)计算机元操作:“字符串长度统计操作”。
(2)计算机元操作:“字符串长度比较操作”。
(3)大脑元操作:“比较检索操作”。
(4)大脑后代操作:“假设量替代操作”
我们看下面一些语句:
我用“分词操作”从“我是北京人。”中找到了“北京”。
我用“分词操作”从“我爱研究人工智能。”中找到了“智能”。
我用“分词操作”从“人工智能是一门计算机科学”中找到了“科学”。
我用“分词操作”从“姐姐去台湾旅游。”中找到了“台湾”。
我用“分词操作”从“爸爸来了”中找到了“爸爸”。
下面我们这样处理这些字符串:
(1)用“比较检索操作”处理这些字符串可以找到它们的第一个共同之处:
我用“分词操作”从“………………”中找到了“……”。
注意:这里的和后面的“………………”和“……”不是程序中使用的符号,程序中使用的是实际字符串。我们这里仅仅是为了叙述方便做出的书面表达。)
(2)用“字符串长度统计操作”统计各个语句字符串“………………”和字符串“……”的长度。再用“字符串长度比较操作”比较两个字符串的长度,得出“………………”长度大于“……”的长度,为第二个共同点。
(比较大小后,这个处理过程程序归纳出第一个规律:有两个长度不一样的字符串,一个长,另一个短)
(3)在用“假设量替代操作”,设“………………”=长字符串;“……”=短字符串,代替后的新得到的字符串为:
我用“分词操作”从长字符串中找到了短字符串。
(这里的这个“替代操作”就完成一次“简单的抽象操作”,它用“长字符串”、“短字符串”做为一些实际的字符串的抽象概念。)
(4)使用假设量替代操作,设“用‘分词操作’从长字符串中找到了短字符串。”=分;得出:我分
(这里的“替代操作”就又完成一次“简单抽象操作”,把“用‘分词操作’从长字符串中找到了短字符串。”抽象为“分”这个新概念。这个新概念显然又是一个操作。于是在总结规律中,程序又发现一个新操作——“分操作”)
在上面的表述中。我在每个程序过程后面,用括号()作了说明,指出了这个字符串处理意味着什么。其中就出现了“归纳”、“规律”、“抽象”这些字样。这些说明告诉我们,这样的对字符串处理,已经实现了简单归纳、简单找规律、简单抽象的功能。
在完成这样一系列字符串处理后,我们看到,简单归纳、归纳出简单规律、简单抽象已经被我们模拟出来了。程序运行的事实向我们表明:几个处理字符串的操作,对几串字符串的处理,就意味着更高级的功能(“归纳”、找“规律”、“抽象”)已经在这个过程中产生了。
后一个的归纳和后一个的抽象意义更加重大。它们使得我们从这个规律中抽象出新操作——“分操作”。以后程序调用“分操作”,程序就会根据这里归纳的规律,从长字符串中切割出短字符串来。做出最原始的“分操作”。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。