中医学理论计算机仿真初探
关键词:计算机仿真;复杂系统;中医学;面向对象程序设计
1 计算机仿真技术提供了适合中医学理论的实验室
科学技术的不断进步,推动着整个人类社会的发展,计算机的出现,使人类社会由工业社会向后工业社会——信息社会过渡。我国著名的科学家钱学森说:“我们所设计的信息体系简直可以包括全部人类千百年来创造的、而且还在不断创造的精神财富。而这全部精神财富可以由我们每个人随手调用和享受。这不但是从旧的脑力劳动中解放出来,而且是获得一个伟大的世界,从来未有的高度文化的世界。……人将变得更为聪明,人类的前进步伐更将加快。”这位大科学家以前所未有的高度论述了由计算机引起的这场技术革命。随着计算机技术的发展,一种崭新的学科——仿真学诞生了,从新药品的仿真测试到行星和星系的创生模型,以及计算机化培养皿中生长的数字生命形式,这是一种新的方法,不是基于直接的观察和实验,而是基于从真实空间向虚拟空间的映射。虽然这项工作仍处于起歩阶段,但已足以让每一颗好奇的心欣喜若狂。在这样一个伟大的时代,古老的中医学面临着前所未有的机遇和挑战。怎样将计算机科学与技术融入中医学领域,是一个值得深思和大胆尝试的问题。值得庆幸的是,计算机仿真是建立在复杂系统理论基础上的,而中医学理论所描述的正是这样一个复杂系统。
当伽俐略第一次拿起望远镜仰望太空时,他为人类创造了科学方法,即用实验来检验关于世界如何成其为世界的种种假说。于是有了拥有试管、曲颈瓶和本生灯的化学实验室,用来探测物质内核的价值连城的粒子加速器,以及在任何生物实验室都能看到的解剖青蛙和用显微镜观察植物细胞。然而,这些都是仅适用于简单系统中物质结构研究的实验室。现代理论物理学家薛定谔(Erwin Schrodinger)在《生命是什么?》一书中写道:“只要我们涉及活物质的结构,我们就必须面对这样一个事实:它是以不能还原成通常的物理学定律的方式起作用的。原因不在于某种‘新的力’或某种类似的东西支配着活的机体中的一个个原子,而是其结构不同于任何我们已从试验室研究中认识的东西。”[1]也正因如此,尤其是对于与西医学思维方式大相径庭的中医学理论,实验室研究一直是一筹莫展,经络实质的研究无功而返,各种“证”的实验模型设计令人啼笑皆非,中药的研究几乎与中医理论毫不相干……中医学所构建的庞大而复杂的系统难以在简单系统的实验室中得到验证,这是不难理解的。计算机仿真学的出现真值得每一位中医界的同仁为此干上一杯,因为这一方法的出现能使中医学多年的“科学梦”成为现实!虽然计算机仿真学正在起步,而这对中医学来说却是难得的机遇,不仅可以揭开其古老而神秘的面纱,而且有望为中医学打开一扇新的大门,开拓更为广阔的发展空间。
而将计算机仿真技术运用于中医学,面向对象程序设计是一个关键环节,下面将面向对象程序设计作一简要介绍。
2 面向对象程序设计(OOP)概述
面向对象程序设计简称OOP,是Object-Oriented Programming的缩写。面向对象是与面向过程相对而言的,传统的程序设计语言,如C语言,是面向过程的结构化程序设计语言,这种语言在20世纪80年代非常流行。随着软件业的发展,软件的规模越来越大,导致软件的生产、调试、维护越来越困难,因而发生了软件危机。人们期待着一种效率更高,更加容易理解,更加符合人类思维习惯的程序设计语言,OOP就是在这种情况下应运而生的。在20世纪90年代,OOP异军突起,成为最有希望,最有活力的程序设计方法。
①面向对象与面向过程的区别
计算机没有思想,人必须明确地告诉它如何运算,每一步做什么。站在这种计算机的角度进行程序设计,就是面向过程的方法。如:用计算机模拟一只猫捉老鼠的过程,程序员必须告诉计算机每一步猫的具体的动作。如果用面向对象的程序设计方法来做,就可以把猫作为一个独立的对象,猫会奔跑,猫会捉老鼠,这些是它的固有属性,被封装在猫这个对象之中,所以,只需给出老鼠出现的信息,猫就会自动去捉。与面向过程相比,面向对象的方法更符合人的思维习惯。
②对象与类的概念
对象与类是面向对象方法中的两个基本概念。客观世界中实体的抽象构成对象,任何事物都可以作为一个对象,如一个人、一辆汽车、一个窗口、一个按钮、一座建筑、一项贷款等等。对象的划分和定义是灵活的,视需要而定。具有相同属性和行为的一个或多个对象的集合成为一类。类有层次之别,类下可以有子类,类上可以有父类。如:人可分为男人和女人,男人又可以分为儿童、青年、成年、老年等等。类是对象的抽象,对象是类的实例。类的划分也是灵活的,依需要而定。子类可以作为父类的对象看待。
③对象的特性
对象有以下基本特性:
封装性:对象是相对独立的单元,与之相关的数据和操作被封装在内部,对外是不可见的。对象和对象之间通过信息交换进行联系。如一只花猫,它是一个相对独立的个体,它的机体内包含复杂的结构,而这些结构是不可见的。
继承性:每个对象都从它所属的类中继承共性。如一只花猫,它从猫这一类中继承了猫的共性。
多态性:每个对象都有其特有的属性,使之区别于其它对象。如一只具体的猫,它与其它猫是不同的,有不同色泽、脾气、体重等。
④面向对象方法可以用下列方程式来概括:
OO=Objects+Classes+Inheritance+Communication With Messages
即:面向对象=对象+类+继承+信息交换
在这里值得注意的是,上面的方程式也可以用作系统的描述,而且容易从中看出简单系统与复杂系统的区别:简单系统通常是少量的个体对象,它们之间的相互作用较弱,甚至可以忽略不计,故而可以作为独立的个体进行研究;而复杂系统中涉及中等数目的对象,不仅如此,对象通常具有智能性与自适应性,它们可以按照各种规则作出决策,随时准备根据接收到的新信息修改自身的行为规则,故而每一个对象不能独立的看待,这正符合了中医学的整体观。
3 运用面向对象程序设计进行中医学的计算机仿真
①面向对象方法与中医学具有相似的思维方式
假使我们想用传统的面向过程的方法来完成中医学理论的计算机仿真,不仅是一件难以想象的事,而且是不可能的事,对计算机发出人体生理、病理等过程的每一步指令,既使是在分析还原思维方式指导下对人体结构分解得极细,对人体生化过程了解得极为透彻的西医学也无能为力,更何况中医学本身就只重整体,不重结构。而面向对象方法,因其与中医学在思维方式上有惊人的相似之处,使之运用于中医学成为可能,成为对中医学进行计算机仿真的基础。其相似性体现在中医学的整体观与黑箱方法和OOP中的对象的特性及其信息交换上。可以将上文中面向对象方法学的方程式用下图表示: 而这正是黑箱方法的图形表达。黑箱方法典型地表现在中医学的藏象学说中。藏象学说是关于人体脏腑功能的学说。古人虽然知道“八尺之士,可以剖而视
之。”(《灵枢·胀论》)但又认为“藏府之在胸胁腹里之内,若匣匮之藏禁器也。”(同上)更重要的是,基于不同于西方的思维方式,中国古代对于整体性和运动性的强调,使得中医学未从解剖入手,分析人体的结构、成分,而是以极简单的解剖为基础,构造出了以象为内容的有机的学术体系。由“藏象”之名可知,中医是以现之于外的象来把握藏之于内的脏的,即“执其见功处见其形”,即黑箱方法。对此《灵枢·顺气一是分为四时》中论述道:“内外相袭,若鼓之应桴,响之应声,影之似形。”例如《素问·六节藏象论》对心的描述是这样的:“心者,生之本,神之变也;其华在面,其充在血脉,为阳中之太阳,通于夏气。”其它四脏与此相仿。由此可以看出,这里的心己不是解剖学中的有一定形态结构之心,而是一系列相关 《中医学理论计算机仿真初探》