王荣良
摘要:本文引用系统科学的理论与方法分析计算系统的特征、人与计算系统的关系以及设计计算系统的思维过程,阐述了建模与构造在计算系统的设计与应用中所发挥的作用,以及系统科学的思想方法运用于计算思维经历从数学思想到工程实施的过程。
关键词:系统;系统科学;计算系统;计算思维;系统性构造
中图分类号:G434 文献标识码:A 论文编号:1674-2117(2023)12-0022-04
计算思维这一概念进入我国中小学已10年有余,教师对计算思维的认识也在不断地深化,即从最初盲从地认为使用电子地图就是培养计算思维,到普遍认同算法设计与编程实现是计算思维的重要体现。那么,是否计算思维一定要设计算法?从本质上来讲,计算思维是用于解决可计算问题的,并通过可计算实现自动化。可计算问题是在计算系统中解决并最终实现的,算法是计算系统在时间维度上构造的自动化操作序列,但支持可计算不局限于算法,如计算机网络是从空间维度建立了计算系统实现自动化的结构。因此,建立计算思维的系统观,从计算系统视角分析计算思维,有助于我们走出算法与编程的局限,多视角认识计算思维。
人与系统:系统的结构、行为及环境
系统无处不在。太阳系是一个天体系统,人是一个生命系统,个人、群体和组织可以组成社会系统,城市有排水系统,大楼有新风系统。有的系统是天然形成的,有的系统是人工制造的。那么,人与系统是如何相处的?通过对这种问题的探讨,可以清晰认识什么是系统。
简单地说,系统指由相互联系、相互作用的若干构件组成的、具有特定功能的统一整体,其中构件可称为元素。例如,太阳系就是由太阳、八大行星以及小行星等构件所组成的。很容易理解,系统是有结构的,就是指系统内各组成部分,即元素之间的相互连接、相互作用的规则框架,系统内的元素按照这种规则装配组合,便成了系统。例如,计算机硬件系统就是由运算器、控制器、存储器以及输入设备、输出设备这五项元素所构成,称为五大逻辑功能部件。这五项元素按一定的规则相互连接和相互作用的关系就构成了系统的结构。
那么系统外部是什么呢?是环境。一个系统之外的一切与它相关联的事物构成的集合,称之为该系统的环境。任何系统都是在一定的环境中运行、延续、演化的,不存在没有环境的系统。环境与系统之间的相互关系是系统的外部规定性。系统从环境中获取生存资料而得到发展,并随着环境或自身的改变继续进行物质、能源和信息的交换,以提高系统对环境的适应性。例如,作为生命系统的人,会通过与外界环境发生物质、能量等交换,进行新陈代谢活动。显然,系统是有边界的,就是能把系统与环境分开的东西。例如,大楼新风系统可以在系统边界采集空气质量等数据,实施空气交换行为,以及向人呈现系统当前的状态参数,并接受人发布的指令。其中,外部空气和人都是新风系统的环境。
系统是有行为的。系统的行为是指系统相对于它的环境所表现出来的一切变化,行为属于系统自身的变化,又反映环境对系统的影响和作用,系统行为的外部表现就是功能。正因为系统是有功能的,所以大部分的人工系统都属于工具类系统,人们制造这些工具,是为人类服务的。人们设计系统,就是设计系统的结构与行为,以实现系统对环境所表现的功能。
一般而言,对于一个受人操控、为人服务的工具类系统,人属于该系统的环境,而不会是系统中的一个元素,否则很难理解人作为系统内部的一个元素,可以制造系统以及使用系统提供功能为人服务。例如,作为运载工具的汽车系统是在人的驾驶控制下通过物理位移为人提供服务,因此,人是汽车系统的环境,是接受服务的对象。
人与计算系统:计算系统的特征
计算思维是运用计算科学的思想方法解决现实问题的思维表现,虽然计算思维不局限于使用计算机,但制造或使用计算机或以计算机为核心的应用系统即计算系统,是计算思维最为典型的应用场景。计算科学和系统科学的思想方法都作用于计算系统制造与使用,并会影响计算思维。
信息处理原本是人的智能,计算机的诞生宣告了人类对自身智能机理有了初步的认识,并且实现了人处理信息的智能可以部分地由人造物代替。计算系统是一种以计算机为核心的、通过计算和处理数据来完成特定工作的系统。它可以包括计算机系统、信息存储系统、数据通信系统等,计算系统能够完成计算和处理、自动化控制,以及以此为核心的各种应用。
系统与环境的相互作用、相互联系是通过交换物质、能量、信息实现的,一个系统,只有对环境开放,同环境相互作用,才能生存和发展。与一般系统相比较,计算系统最大的特點就是该系统与环境交换的主要是信息。计算系统通过边界的感知设备以机械或者光、电等形式获取环境信息,进行数据计算处理等相关行为,然后通过边界呈现数据,或者由执行机构完成对外部环境的控制。计算系统的另一个特征则是系统内部各元素对信息的加工处理是按预设的命令序列自动地进行的,即系统内部元素依据结构规则在命令序列的控制下协同地完成相关工作,表现出自动化特征。
值得注意的是,上述两种控制有着不一样的概念,一个是系统对外部环境的控制,如计算机典型应用中的工业控制,另一个是系统内部元素的控制,是实现系统内部各元素的协同工作,不应把计算系统内部控制器的功能与系统对外部环境控制服务功能混为一谈。
基于以上两个特征,可以推断人与计算系统的关系:人是计算系统的环境而不是计算系统的元素,被计算系统服务的物理对象也是系统的环境,否则系统的边界就会被无限扩大,人与计算机交互成了系统内部通信,即有可能出现系统没有环境,也没有输入输出的现象。
系统科学是以系统为研究和应用对象的一门科学,是探索系统的存在方式和运动变化规律的学问。系统科学方法是用系统的观点来认识和处理问题的各种方法的总称,系统观念是关于一般系统的整体论科学思维。系统所体现的最大的优势就是涌现性,即多个元素组成系统后,出现了系统组成前单个元素所不具有的性质,或者说,系统的价值将会大于系统各元素所创造的价值之和。例如,多台计算机组成的互联网具备了单台计算机所不具备的功能,并且其价值远远超过各单台计算机所能创造价值的总和。因此,整体性原则是从系统出发思考并解决问题的重要原则,该原则要求人们在研究系统时应从整体出发,立足于整体来分析其部分或部分之间的关系,进而达到对系统整体更深刻的理解。
计算思维的系统观反映的是用系统科学方法认识、设计、制造、运用计算系统解决实际问题所采用的思维方法。计算思维系统观的关注点在于解决与计算有关的系统类问题,需要通过构建一个系统来解决的问题。
原型与模型:计算系统中系统科学方法的运用
人的能力是有限的,通过创造工具和使用工具可以产生更大的效力,这就需要将复杂的问题转化为人类大脑可以处理的、相对简单的问题。给对象实体以必要的简化,用适当的表现形式或规则把它的主要特征描绘出来,这种方法就是模型化方法。
模型化方法,是系统科學的重要方法。经过对对象实体模型化以后得到的模仿品称为模型,而被研究的对象实体称为原型。通常,原型是复杂的,模型相对简单,采用模型化方法可以通过模型研究原型,有助于人们抓住核心内容,认识客观事物。例如,一台计算机实体,用运算器、控制器、存储器、输入设备和输出设备所描述,该五项构件和它们之间的相互关系形成了计算机实体的模型,计算机则为该模型的原型。通过模型,可以研究该原型即计算机的行为和功能。
实现模型化的过程称为建模,建模的主要工作就是提炼出实体对象的核心元素以及元素之间的相互关系与规则,也就是采用抽象的方法建模。模型是对原型的简化,压缩了一切可以压缩的信息。抽象是实现模型化的重要手段,抽象建模既是解决现实问题的一种数学方法,也是计算学科中设计自动化工程实现的重要步骤,是计算思维的组成部分。
在构造模型时,客观性、有效性是对建模的首要要求,反映原型本质特性的信息必须在模型中表现出来,通过模型研究能够把握原型的主要特征。对于同一对象原型,基于不同的研究立场和应用目标,可以有多种模型来表征。例如计算机硬件系统,也可以描述成输入、计算、输出三部分,其优点是模型简单,可以简洁地反映系统与环境的信息交换关系,其缺点则是过于“黑箱”化,不能反映计算机的典型特征和独特的原理性,符合这一模型结构的原型也会有很多,不利于通过模型对原型的研究。
由此启发,适当地降低系统内构件的数量以及构件之间关系的复杂度,可以降低系统的复杂度,其有效的办法就是将一个大系统划分为若干小的子系统,最终使人们易于理解与交流。
元素是系统组成的最小单位。当一个系统元素很少、彼此差异不大时,系统可以按照单一的模式对元素进行整合。当系统的元素数量很多、彼此差异不可忽略时,就需要划分不同的部分,分别按照各自的模式组织整合起来,形成若干子系统,再把这些子系统组织整合为整系统。例如,计算机系统可以分为硬件系统和软件系统,而硬件系统和软件系统还可以继续分解。分层就是整合子系统的一种有效方法。
因此,系统是有层次的。最简单的系统由元素层次和系统整体层次组成。复杂系统从元素层次开始,由低层次向高层次逐步整合、发展,最终形成系统的整体层次。其中,低层次隶属或支撑高层次,高层次包含或支配低层次。例如,计算机网络是一个复杂的计算系统,需要高度协调的工作才能保证系统的正常运行。其中,定义网络中数据交换的规则即网络协议就相当庞大和复杂,ISO采用系统科学方法,定义了七层互联协议,从而促进了计算机网络技术的发展。
建模与构造:系统视角下的计算系统构造
计算机程序解决问题的方法是将描述物理世界和数学世界的各种公式和方程离散化、数字化,并将连续时间变成离散的步骤,让求解这些公式和方程的计算过程能够自动执行。从系统科学的视角出发,就是用计算机程序定义模型,明确构成系统的元素,把元素间的相互关联方式提炼成行为规则,并以计算机程序表示出来,便可以通过计算机的数据计算来模仿系统运行演化。上述的行为规则,可以用算法来描述。因此,我们需要找到或构造出有效的方法,即算法,通过执行特定的计算过程来解决问题。
算法的执行过程就是精准的信息变换过程。计算思维的要义在于精准地描述信息变换过程的操作序列,并有效地解决问题。一个人用计算思维解决问题的过程则是:抽象—形式化表达—构造—自动化,即用抽象的方法建立模型,提炼行为规则,形式化地描述演化过程,然后用可执行的指令系统构造执行序列,最后可以得到计算系统的自动化执行。
构造是计算思维中的关键环节。构造发生于建模之后,即在经过抽象与形式化表达建立清晰的模型表征以后,构造则是将数学特征的模型描述转化为计算科学的工程实现。通过算法构造并由程序实现自动化,可以称之为程序性构造,即在时间上通过有序操作实现问题解决。
更一般化地,系统科学方法指导人们可以用模型化方法将复杂的问题化解为简单问题,简洁并清晰地表述系统,将存在的但不可见的系统以可见或可理解的方式呈现出来,以及用构件有效地构造系统。以时间为序列用程序来实现的演化系统是这样,在空间中的系统构造也是这样,经历的过程是通过对现实世界待解决问题的分析与描述以后,用一个个对象或构件组成系统,通过系统建模,从空间上构造一个计算系统来实现自动化,这样的构造可称为系统性构造。
例如,网络系统就是由很多计算过程所需要的多个部件连接在一起形成一个计算系统,这些部件可以称为节点,这个计算系统就是由多个节点连接通信而形成的计算机网络。计算思维的要义体现在网络计算系统中的每一个节点都是确定的,规范各节点关系的协议所具备的基本要求是无歧义地、足够精确地描述网络连接与通信的操作序列,而且每个基本动作都是可行的。
系统是具有演化性的,计算系统也一样,程序支持了计算系统的演化。系统是有结构的,计算系统可以由各种运算节点、控制单元、存储单元等构件构成。设计及制造计算系统的经历过程与计算思维是一致的,即经历“抽象—形式化表达—构造—自动化”的过程。其中,无论是程序性构造,还是系统性构造,都是从时间或空间上将计算模型或方案进行准确的自动化行为实现。
几点启示
计算学科与数学学科紧密相关,凡是可以用计算机来处理的问题及过程,都可以用数学来描述,凡是可以用构造性数学描述的问题,只要其涉及的论域是有穷的,都可以用计算机实现。计算学科又具有工程属性,计算的相关理论需要用工程的方法来实现。与此对应的计算思维,蕴含了数学、技术、工程等多样化的思想方法。
同样,系统是人们看待世界中的事物的一种有效方式,系统科学的思想方法有其通用性,很多学科都是用系统的观点来分析问题和表达问题的,计算系统也不例外。计算系统的相关教学,也应该渗透系统科学的思想方法。学会用系统的观点分析计算系统,可以清晰认识系统内部控制和系统对环境控制的不同,可以正确理解人与计算系统的关系。从系统的视角认识计算思维,可以避免把计算思维的应用局限于算法设计与编程以及把编程教育等同于计算思维教育,可以丰富计算思维教育的内涵。当然,开展计算思维教育,其系统科学方法的教学需要关联计算系统,具有计算学科特征。
作为一个计算系统,从系统外显的目标行为出发,与信息的获取、传输和处理相关联,则是一种反馈控制系统;从内部数据加工过程分析,则是一种处理信息的物理符号系统。这是人类智能的部分物化,计算系统这一人造物承担了人类部分的智能工作。对于两个同构的系统,可以通过一个系统来研究另一个系统,如布尔代数与数字逻辑电路同构,则可以用数字逻辑电路来表示布尔代数,也可以用布尔代数来研究数字逻辑电路。但是对于非同构系统,就不能简单地或随意地用一个系统的行为与功能去推断另外一个系统的行为与功能,如不要用计算系统的智能机制来简单地推测人的智能,也不建议用计算系统类推某个社会系统的性质。严谨、理性是系统科学研究的基石,也是计算思维的特质。