什么是控制论?
根据创始人维纳(NobertWiener)的定义,控制论(Cybernetics)是“关于动物和机器中控制和通信的科学”,简言之,控制论的中心问题就是控制与通信。维纳的定义中同时声明了控制论的研究对象,即动物和机器。然而广义上的机器这个概念涉及的范围极为广泛,所以控制论这门学科极具普适性。
首先明确什么是机器?不正式的说,机器是这么一个“东西”,它具有一系列状态以及一个(或多个)变换,机器的状态会根据它的变换在某种条件下发生转移。(所谓“某种条件”,一般情况下就是外界对机器的影响,即输入)。
符合这个概念的机器到处都是:一辆自行车是这样一部机器,它有“平衡”和“倾倒”两个状态,在人的作用下互相转换;一只老鼠也是这样的机器,它有“活着”和“死了”两个状态,一只猫或者一条蛇都能改变它的状态;一个国家也是这样一部机器,它可能有“兴盛”,“衰败”和“亡国”三个状态,如果这个国家的子民足够爱国并且聪明又勤劳,那么这个国家就能从“衰败”走向“兴盛”,然而若有强敌入侵,就可能让它“亡国”。
由此可见控制论研究对象的范围之广,它将世间的物质看做具有一集状态的能动系统,并研究这类系统的性质。而研究的目的正如这个学科的名字一般,是为了更好的“控制”(cybernetics这个词来自希腊语,本身有“掌舵”的意思),换言之,控制论实际上就是研究“如何达到目的”的学科。
从同构与同态说起
第一次接触这两个概念是在离散数学课上,遗憾的是我跟它们的邂逅很糟糕:代数系统之间的同构与同态实在是非常晦涩,我险些与两个这么重要的概念失之交臂。
后来意识到同构的重要性首先是在读《集异璧》的时候,侯世达爷爷匠心独具地展示出这个世界存在各种各样的同构让我恍然大悟(一种特殊的同构是一个系统与组成它的子系统同构,就是递归)。所谓同构,就是两个系统之间存在某种“一一对应”的关系,所有的状态只要经过一个统一的变换就能把这一个系统变成另一个,不外如是(这么简单的概念却在离散课上整得我晕头转向)。照片与底片是同构的,摩天大楼与它的设计图纸是同构的,纸质书与它的电子版也是同构的。
同构的要求太过严格,所以很多情况下难以实现,比同构更广泛也更深刻的现象是同态。同态的意义也很简单,如果说同构是相等,那么同态就是相似(这就是一个同态)。同构要求两个系统之间建立“一一对应”的联系,同态只要求两个系统之间建立某种“多一对应”,即要求两个系统某些部分相等,或者忽略某些性质后同构。假如我是一个只能看到红色的红绿色盲,那么我看到的红绿灯与正常人看到的红绿灯是同态,正常人看到的红绿灯经过(红,绿)->红的变换后就与我看到的同构了。
由此可见,建立同态的一个重要手段就是模糊化,忽略一些部分的同时保留重要的性质,将多个状态或者多个部分看成一个,就可建立一个更简单的同态系统。说到这里,那两个字就要呼之欲出了:建模。模型大多是对现实世界的简化,通常情况下是理想的、不会在现实世界中出现的系统,然而却能帮助人们考察研究对象的本质。
控制论的一个重要意义就在于,它能够帮助我们建立这样的同构/同态,方法就是构造带状态的、抽象的能动系统。同构/同态都保留了原象的性质(构造同态的时候一定要将想要研究的性质保留下来),要利用这一点,通过建立与被研究系统同构/同态且易于研究的系统,去研究“那个系统”的性质。这便是同构/同态的意义。
其实这个思想的背后还有更深刻的意义。波利亚(GeorgePólya)在《怎样解题》中始终在强调一个技巧在解题过程中的重要性,那就是在碰到一个问题的时候,首先问问自己“这个问题以前遇到过吗?”,即使乍看之下没有见过,都要想法子使用各种技巧把题目变成自己见过的形式。这个技巧对解决一个领域内的问题相当管用,因为某一个领域随着它的发展,碰到的问题大多都是已经被解决了的。然而这个技巧之所以重要还因为它对跨学科也是管用的。一个领域内的某个难题如果以另一种形式出现在另外一个领域中,并且被完美地解决了,那么显然可以用“那个领域”的方法来解决这个领域内的难题。战斗机出现之前,“捕捉看不到的物体的位置信息”这个问题人没有遇到过,但是蝙蝠遇到过,于是雷达也出现了。
关键就在于建立不同领域之间概念上的同态,甚至是同构,这便是更深刻的意义。这既可以促进各个学科的发展以及它们之间的合作,又能帮助人们去发现世间万物缤纷多彩的背后的本质和共性。维纳在创立控制论的时候就把它界定为边缘学科,即处于各个学科之间的边缘地带。
特大系统
什么样的系统才算是特大系统?这个概念要求特定的观察者与观察对象,如果一个系统复杂到它的观察者无法对其作出完全的判断和控制,那么这个观察者就不幸碰上了一个“特大系统”。
这种特大系统多得很,多到每个人身上都有:人的大脑就是一个极其复杂的特大系统,现有的科学水平还不能对其做出完全的研究(但愿永远也不要吧)。
说一个系统“大”,可能指是它的体积很大,但对于观察者而言体积不是问题,真正的难题是它的可能作出的区分数目太大,大到超出了观察者能力范围。
碰上这种特大系统时,观察者虽然举步维艰,但还不至于无能为力,控制论总结出了一些一般性方法,帮助人们面对现实:在明知道不可能完全了解系统的时候,怎么办?
首先要明确的是,对于这个系统,观察者真正想了解的是什么?换言之必须要有明确的目标。明晰的目标经常能大大缩小实际要研究的范围,虽然不能完全研究整个系统,但是仍有可能掌握某些子系统的性质。
当观察者不能对一个系统知根知底的时候,这个系统的输出在观察者看来很可能是杂乱无章、毫无规律的,但是注意到控制论总是关注“一批”现象,所以第二个方法就是想办法获取系统的一大批输出,观察系统的输出是否具有某种统计性质,概率论与统计学在应付这类特大系统的时候非常有效,然而这也是无奈之举。
上面的方法能够帮助观察者研究系统的性质,也是调节特大系统的基础:必须有足够的信息才能去控制。如果调节特大系统的目标是为了保持它的稳定,那么有两种特定的干扰是比较容易调节的。
第一种是纷杂的干扰中存在约束的情况。假如一个系统要应付1000种干扰,但是其中999种总是同时出现,那么真正要应付的干扰实际上只有2个。尝试去发现干扰中的约束情况。
第二种情况是重复干扰。如果干扰总是以重复的形式出现,那么也只需要反复地调节,每一次抵抗有限的干扰即可。
当然更有效和根本的方法是发展第一生产力,提高观察力和调节力。
稳态
上面说到调节特大系统的目的可能是为了保持它的稳定,现在就来说说这个概念。培尔曼说“稳定性这一为人所滥用的字眼具有不稳定的定义”。但是说一个系统稳定,必然存在某些不变量,所以稳定系统的行为是可以预测的。说一个经济系统稳定,可能是指它的某项指数不怎么变;说金比铁稳定,可以解释成在相同条件下铁会发生氧化而金还是金,没有变化。
注意到稳定必须是指一段时间内一系列状态的变化范围,单就某一瞬间的状态来断定系统是否处于稳态通常没有意义(但如果已经掌握了这个系统的全部变换和状态,那么确实可以根据瞬态来断定稳态)。
一个系统的稳定性依赖于其变换的封闭性,比方说一个系统只有A、B、C三种已知状态(将变换看成一个映射,已知状态就是指属于原象集合的状态),若它的变换把它变成D状态,系统就呈现出不稳定的状态了,因为它此时进入未知的状态,行为无法预测。如果想保证一个系统的稳定,就要尽可能预测它的所有状态,并设计出针对所有这些状态的变换,让它们最终都能恢复到稳态,这是设计稳定系统的基本原则。
干扰是不稳定的来源,保持系统稳定绝大多数就是指抗干扰,这个问题留到下一个话题再讨论。
与稳定相对的是突变,突变的一瞬间打破了稳态,但是量变和质变之间的明确界限一直存在争论和疑问(这是一个哲学问题…),法国数学家瑞内·托姆(ReneThom)为突变行为建立了数学模型,创立了突变论,这个问题也得到一些改观。关于稳定和突变的进一步研习,可参考托姆的《结构稳定性与形态发生学》。
反馈
假设机器A要支配机器B,A控制B的同时接收B的输入,并根据这个输入决定下一轮的调节。这时就称B对A有反馈,A与B的这种控制过程也称作反馈调节。带反馈的机器最有趣…反馈调节是最常用也是最实用的控制手段。
根据(A)调节目标(B)与(B)当前状态的差距分为正反馈和负反馈,负反馈使当前状态与目标状态之间的差距越来越小,正反馈反之。负反馈调节几乎是控制论中最重要的控制手段,注意到负反馈调节并非一蹴而就,而是根据目标当前状态进行持续不断地调节,就能累积多次调节的效果,最终达到目的。古人愚公移山,就是如此。
负反馈调节对维持稳态同样有效,尤其适合抵抗重复干扰。重复干扰地累积对系统稳定不利,负反馈调节则根据系统当前状态连续地抵消干扰,以防系统突变成失控之势。司机开车的时候不断调整方向盘,就是如此。
反馈调节总是慢半拍,如果调节器调节了系统,那肯定是发现系统已经受到干扰了。最理想的情况是“防患于未然”,调节器处于干扰源和受保护系统之间,此时调节器根据干扰做出反应,那么干扰根本就不能影响受保护的系统。这种调节虽然效果最好,但不是最常见,原因是实现起来难度太大,成本太高。生物体内的内稳器大多都使用反馈调节的方法,外界干扰源种类繁多,千变万化,与其根据每一种干扰进化出一种调节机制,不如进化一套根据自身状态进行调节的机制,以不变应万变,经济又实惠。
信息论
控制论既研究控制,也研究通讯(实际上二者是统一的)。申农(ClaudeE.Shannon)创立了信息论,这个理论给我们今天的生活带来了翻天覆地的变化(这话我怎么看着这么熟悉)。对于一个给定的机器,控制论并不关心“这个机器某一瞬间的状态如何”,它关心的是“这台机器总体上具有什么样的性质”。正因为如此,信息论对控制论中的问题具有重大的意义,因为信息论正是研究“一批”可能性的学科,所以我们就从可能性开始说起。
假设A和B通信,A每次只能说一个“Z”,无论B跟A说什么,A都只能回复“Z”,那么A无法向B传递任何有效信息。这就是信息论的基本原理:可能性只有1的时候根本无法通信。
回想一下“知道”是什么意思?我们有十二生肖,每一年的生肖有12种可能,若“我知道今年是龙年”,那么可能性减少到1种,所以所谓“知道”什么,就是可能性的减少。像“今年要么是龙年要么不是龙年”这种不能减少可能性的话被我们叫做~“废话”。一集消息的可能性必须大于1才有减少的可能。
申农发现了通信背后的本质,天才地把信息量化了。他的做法是取可能性数目的对数作为信息量的度量,通常以2为底,单位是比特(bit),称作变异度。计算一次通信过程的信息量就只需要将通信前后的变异度相减即可。回到生肖年的例子,通信前的变异度是,通信后变成,这一次通信的信息量就是,即。可能性只有1种的时候,信息量就是,刚好等于0。用这种方法度量信息非常方便,申农简直就是神农啊。
两个系统之间的通信必然要经过某种信息通道,信道一次所能传输的最大信息量称为信道容量。信道是个广泛的概念,只要一个系统能引起另一系统可能性的减少,就可以说这两个系统之间存在信道。现实生活中的通信常常要传递远大于信道容量的信息量,解决方法也很简单,就是反复利用信道,若要传递变异度为100的信息,而信道容量只有1,那么至少要传输100次才能全部传完。一次完整的信息传输必须满足公式:
信道容量×传输次数≥信息量
信息依赖于一组可能性,如果可能性只有1个,变异度为0,那就不能构成信息了。信息论为通信奠定了坚实的理论基础,控制论又将这个理论一般化,许多事情都可以看做信息的传递。著名的称球问题就可以利用信息论的原理轻松解决。
有n个外观一模一样的小球,其中n-1个质量都相同,还有1个小球可能比其它球重,也可能比其它球轻,问最少称几次能找出这个小球,并且知道它是轻了还是重了?
这个问题本质上就是一个通信问题。假设n=12,那么总共有24种可能,要把这24种可能减少到1种,传输的信息量就是。信息通过什么传输呢?天平。天平能向人传递3种信息:左重右轻、左轻右重、平衡,所以天平作为信息通道的容量是。根据刚才的不等式,假设称的最少次数是k,k就是满足不等式的最小值。对于12个小球,最少只需3次就能称出结果。
当然信息论只能确定最少称球次数,具体怎么称就靠你自己去发现吧(参考书目有称球问题的详尽讨论)。
控制论与科学
科学的目的是什么?拯救世界!哈哈哈哈!
科学是试图去发现事物规律并且利用这些规律的过程,这是所有学科的共通之处,也是科学的本质。科学的两个基本过程都被控制论捕捉了。
(一)
对于探索和发现的过程,控制论有一套黑箱理论……名称很形象,适用于不能“打开”研究对象的情形,科学中有很多这种情况,比如医生检查病人的身体状况(随着核磁共振等技术的出现,这种情况得到很大的改观)。这种时候只能通过给研究对象以输入并观察输出来推断它的性质。最重要的是要找出规律,只出现一次或杂乱无章的事实没有利用价值(量子物理遇到的困难)。若研究对象总是呈现出不确定性,那么有两个常用的方法作进一步研究。第一个是考察这个研究对象是否有“记忆”,如果一个确定的状态会在同样的外界条件下转换到不同的状态,那就把这一状态与它的历史联系起来,也许能找出规律。第二个方法在说特大系统时提到过,就是获取大量数据,并分析它的统计性质。
当然这个箱子黑不黑是相对的,一方面取决于观察者的信息是否充足,另一方面取决于观察者的视角。一般人看计算机是黑箱,如果一个程序员看计算机也像个黑箱,那他该补课了;生物学家说生物是黑箱,细胞学家说细胞是黑箱,物理学家说都不是,原子才是黑箱。
(二)
在对科学事实加以利用的时候,控制论也能帮上忙,因为这就是一个控制的过程,本质就是依据事物规律,让事情朝着人们设定的方向发展。方法前面已经说过,此处不再赘述。
(三)
再从信息论的角度考察一下科学的两个基本过程,即发现事实和利用事实。发现事实意味着,原本这个事物的性质有许多可能,人们不能确定;但经过研究后明确了,这个物质的性质就是这样,不确定性减少了。至于利用事实,原本事情顺其自然发展,它的未来也有许多种可能,人们利用它的规律对其加以控制,使其朝着一个确定的、理想的方向发展,不确定性也减少了。可见“知”和“行”在本质上是完全统一的,都是不确定性趋于减少的过程,同时也都是通讯的过程(能从这个角度重新理解这个事实,我太兴奋了!!!)。所以说中国的先哲实在是了不起,王守仁竟然在(将近)六百年前就发现了知行合一的道理。
为什么我们(计算机工作者)学习控制论尤其有意义?
(一)
计算机科学,或者说计算科学,跟控制论有一个共同点:它们都是抽象的学科,都“为他人做嫁衣”。尤其是计算科学,本身毫无价值,只是一堆符号游戏,但这些符号能够与现实世界建立联系,这才为人类创造出巨大的价值。在计算机中模拟现实世界,通过解决计算问题来解决现实问题,这就是——同构。
控制论中有大量关于抽象和同构的理论,可以帮助我们更好的建模。学习控制论对我们而言就像练内功,不能直接给我们带来财富,却能够提升内力。
(二)
大家公认的计算机之父是图灵(AlanTuring)和冯·诺依曼(VonNeumann),实际上维纳对现代计算机的发明也做出了很大的贡献,来看看他在二战期间提出的计算机五原则:
(1)在计算机中心部分,加法和乘法装置应当是数字式的,如同通常的加法机一样,而不是基于量度的,如同布什微分分析机那样。
(2)这些实质上是开关装置的机件应当由电子管来做,而不要由齿轮或机械开关来做,以便保证更快速的动作。
(3)根据贝尔电话研究所的现有装置所采用的方针,加法和乘法采用二进位制比十进位制来,在装置上大概会更为经济些。
(4)全部运算序列要在机器上自动进行,从把数据放进机器的时候起到最后把结果拿出来为止,中间应该没有人的干预。为此所需的一切逻辑判断都必需由机器自身作出。
(5)机器中要包含一种用来储存数据的装置,这个装置要迅速地把数据记录下来,并且把数据牢固地保存住,直到清除掉为止;读出数据要迅速,清除数据也要迅速,而且又要能够立刻用来存储新的材料。
维纳长期致力于研究动物与机器的共同之处,“很久以来我就明白,现代超速计算机在原理上是自动控制装置的理想的中枢神经系统”。在创建控制论的过程中,维纳与图灵和冯·诺依曼都有过当面的交流,尤其与冯·诺依曼友谊深厚(他们都在美国)。如今广为人知的冯·诺依曼计算机是深受维纳影响的。
对于未接触过控制论的人,这是个重新认识并加深理解计算机的机会。
(三)
有一门新兴的学科,叫软件控制论(SoftwareCybernetics),软件工程与控制论的结合几乎是必然的,我很奇怪为什么这个学科到近几年才出现。但是软件工程中有一个很不利于控制的因素就是经常目标(需求)不明确,目标不明确就很难检测当前状态与理想状态的差距,检测不了差距就没办法调节。
目前比较有总结性的资料是一篇2004年的论文《AnOverviewofSoftwareCybernetics》,几位作者分别来自北航、德州大学达拉斯分校和普度大学。软件控制论主要研究两个问题,一个是将软件本身看做一个自控系统,另一个是将这个理论用于软件开发过程,主要技术就是反馈机制。总的来说,看上去似乎很有前景,实际上还在理论阶段,不过有一些成果是可以直接拿来用了。
如何学习控制论?
(一)阅读
《控制论》
奠基之作,出自创始人维纳。虽然内容权威,但我认为带有相当强烈的个人色彩,且门槛较高,不适合入门。深入研究控制论必看书籍(但是中译版的序言让我极为反感,愤青勿看)。
《控制论与科学方法论》
金观涛老师的著作,中西结合,通俗易懂,是一本很好的控制论初级读物,对反馈、稳态以及称球问题均有较深入的讨论。
《控制论导论》
个人认为最好的入门书,阐述控制论基本原理的同时巧妙地避开了深奥的数学证明。作者艾什比(RossW.Ashby)教授是一位医学家,因此这本书体现出作者对生物系统尤其感兴趣。另外本书蕴含许多深刻的道理,令我大为受益。
《CommunicationTheoryofSecrecySystems》
这是一篇非常重要的论文……作者申农。
《系统化思维导论》
借回来有一阵子了,但是一直没读完……作者就是大名鼎鼎的温伯格(GeraldM.Weinberg)。之所以推荐这本书,原因是书中的内容和原理与控制论密切相关,并且温伯格本人应该接受过艾什比的教导(见此书前言)。
《系统设计的一般原理》
上一本书的姊妹篇,主要介绍设计稳定系统的一般原理。
(二)实践
学而不思则罔,思而不学则殆,实践提供了最好的“思”的机会。在生活中、学习中、工作中遇到难以解决的问题时,尝试从控制论的角度去分析,并根据控制论的一般原则设计解决方案,知行合一。
疑问
对于这门比较神奇的学科,我有不少疑问。同样是具有普适性的学科,为何控制论没有像心理学和思维科学那样流行?一个原因可能是控制论对数学有更高的要求,但是其中的思想并非建立在数学的基础之上,所以艾什比才能写出不需要高深数学知识的教材。另一方面,控制论本身是很抽象的理论,它提出的方法必须跟其它比较贴近实际的学科相结合才能发挥作用。
而稳定的背后,不确定性减少的背后,是不是还隐藏着什么更深刻的道理?
总结
控制论研究系统的时候不考虑能量,只考虑信息和动态,(这一点与计算机软件一样),从事物的状态和改变来观察它们的本质,从这样的视角能看清很多现象,归根结底,很多事情都成了传递变异度的过程。
有人说“人人都该学点心理学”,我觉得嘛,人人也都该学点控制论,至于为什么……