遗传算法与易算算法
一、引 言?
从伏羲画卦到《连山》易的出现,即有象的观念,数已开始萌芽,数与筮联系即有筮数,主要用于占卜。春秋时期,“象”和“数”同时出现在《管子·七法》篇中:“则,象,法,化,决塞,心术,计数。”但象数在春秋初期仍是两个松散联系的概念。到春秋末期,象与数的概念联系比较密切,在《周易·系辞传》中提到“极数定象”,已初步出现象数理论。这时,《系辞传》中只初步论及象数的内在联系,并未详细谈到象数理论的程序。孔子在教书时六艺教学大纲“礼乐射御书数”中的数,是当时日常用的实用数。到孟子时代,即到战国末期,象数理论乃大备,历法推步术也成熟。当时的不少学者会推步术,而星命学为孟、荀二位大儒所不齿。孟子所说的“苟求其故,千岁之日至可坐而致也”,是谈的历法推步术;荀子说:“善为易者不占”。这时,在古算经算法和历法推步术之外,已有经典术数如“三式”等的出现和应用。这两类数的算法,在后汉徐岳《数术记遗》中有提要式的概括总结。对其中提出的14种算法,没有明确指出何者为历法推步术算法,何者为术数算法程序。亦可能是综合的、浑元一体的算法程序。总的看来,有数必有算,有算必有法。形成古算经算法和术数算法是很自然的。在古代可能有互补的趋势。《周易》大衍之数很可能与古六历所用的算法程序有关。唐代张遂的大衍历以及宋秦九韶《数书九章》均涉及大衍算法,而秦汉时期的《九章数学》中则对大衍算法避而不谈。这可能是由于古代大儒亦是视大衍之数带有神秘内容,不敢与正规的应用数学算法相提并论。实际上,大衍之数只是一种现代所说的“不定分析”而已!阮元论曰:“推步之法至大衍备矣,……后来算造者未能及也。然推本易象,终为傅合,昔人谓一行窜入于《易》以眩众,是乃千古定论也”。[1]由此可知,就算法而论,推步术自为推步术,数术自为数术,各成系统,不相涉也。然而,这并不意味着数术算法程序中无合理内容。英人李约瑟常提到术数“内算”很有用。[2]但未作深入探究。宋秦九韶《数书九章》序中论内外算,涉及经典术数三式,其论颇正:“今数术之书尚三十余家,天象历度,谓之缀术。太乙壬甲谓之三式,皆曰内算,言其秘也。九章所载即周官九数,系于方圆者为镚术,皆曰外算,对内而言也。其用相通,不可歧二”。[3]以上所论均涉及数字信息。?
21世纪已成为信息时代,信息与象数息息相通。故《系辞传》象数思维应当在今后大放光芒,与西方计算机文化成就携手并进,逐渐融汇成一体。《周易·系辞传》“天地之大德曰生”,“生生之谓《易》”,强调生命演化思想;卦爻的设置上采取乾坤六子的形式,这都与西方新近兴起的遗传算法的精神与具体计算步骤内容相近。?
二、遗传密码与象数?
近些年来,国内外对于科学易感兴趣的学者,无不重视生物遗传密码的研究成果,并展开《周易》象数与遗传密码细部结构对比的探讨。这方面,尤以已故著名科学易学家潘雨廷教授的研究具有代表性。潘先生博古通今,既深钻过象数理论,又熟悉分子生物学和遗传密码的生物化学含义,他在“科学易”一文中以DNA(脱氧核糖核酸)和RNA(核糖核酸)为例,来考察其分子结构的变化情况,及其化学键的“象数”。[4]?讨论结果如下表所示(暂略):
为了使读者深入理解象数与生物遗传学及遗传密码的对应关系,有必要将有关科学名词加以扼要的解释:?
1、遗传密码: DNA(脱氧核糖核酸)中核苷酸顺序和蛋白质中的氨基酸顺序之间的关系称为遗传密码。遗传密码是由碱基的三联体(相当于《易经》八卦的三爻),可在DNA分子上顺序读出,且互不重迭)。DNA是一切生命形式的普遍遗传物质。DNA有四种不同的碱基:两种嘌呤,即腺嘌呤和鸟嘌呤,以及两种嘧啶,即胸腺嘧啶和胞嘧啶。DNA的结构呈双螺旋结构形式。?
由三联体密码重迭,可形成与六十四卦相对应的符号系统。这并非出自偶然,而是自然物的发生和演化合乎易数的自组织作用造成的。潘雨廷教授在《周易纵横录》论文中已作了详细的象数论述,可以参看。?
2、核苷酸:上述四种碱基之一与脱氧核糖结合,叫作核苷。核苷的磷酸酯衍生物称之为核苷酸。DNA分子是由核苷酸构成的,许多单元接在一起就形成了多核苷酸长链。?
3、核糖核酸(RNA):RNA和DNA一样,都是长链分子,亦是由重复的核苷酸单元组成。RNA的构成单元有两点与DNA不同。首先,RNA的糖组分不是脱氧核糖,而是核糖。其次,四种碱基中虽然有三种,即腺嘌呤、鸟嘌呤和胞嘧啶,在RNA和DNA中都一样。但第四种,即胸腺嘧啶,在RNA中为尿嘧啶所代替,它少了一个甲基。在三种RNA类型的一种类型中,还偶尔出现别的碱基。?
4、信使核糖核酸(mRNA):〖HTSS〗mRNA在把密码翻译成专一性蛋白质时起模板作用,并且能把遗传密码的信息从细胞核的DNA运送到细胞质,以便促进合成蛋白质的作用。携带着所需要的信息,以决定一个蛋白质分子的整个多肽链的mRNA的长度,称为作用子。某些mRNA分子携带着不仅合成一个蛋白质分子的信息,这样的mRNA称为多作用子。在合成过程中,当密码由DNA转录到mRNA上时,后者即离开细胞核,通过核膜进到细胞质中。在细胞质中它移动到蛋白质合成的场所,即转移到核糖核蛋白体处。核糖核蛋白体由DNA和蛋白质组成。?
5、转移核糖核酸(tRNA):〖HTSS〗其作用是把细胞质中的氨基酸转移到核糖核蛋白体上蛋白质合成的场所。因此,tRNA是在特定氨基酸与对它编码的mRNA三联体之间起媒介物或转接分子的作用。每个氨基酸都有其互不相同的、专一的tRNA分子。每种tRNA含有大约80个核苷酸。?
6、反密码子:tRNA分子上与mRNA连接的一定部位是一个由三个碱基组成的顺序,与mRNA上的密码子互补,称为反密码子。?
7、简并密码:试验表明,虽然任何特定氨基酸密码子的开始两个字母总是不变,然而第三个字母有时却不同。例如,编码丝氨酸的不仅是AGU,也有AGC。因此,Crick 1966年提出“摇摆”假设,这种摇摆在于第三对碱基之间的配合与前两对碱基的精确要求相比多少有些松弛。凡是同一个氨基酸有不同的密码者,这种密码称为简并密码。?
三、遗传算法概要?
在遗传算法中,可以将模型的一个参数表示为一个二进制数码,全部参数用许多串联在一起的二进制数码组成的字符串(类似一个染色体)代表。从一组初始模型,即一些具有不同染色体的个体组成的种群开始。[5]??
遗传算法的基本思想正是基于模仿生物界的遗传过程。它把问题的参数用基因代表,把问题的解用染色体代表(在计算机里为字符串),从而得到一个由具有不同染色体的个体组成的群体。这个群体在问题特定的环境里生存竞争,适者有最好的机会生存和产生后代。后代随机化地继承了父代的最好特征,并也在生存环境的控制支配下继续这一过程。群体的染色体都将逐渐适应环境,不断进化,最后收敛到一族最适应环境的类似个体,即得到问题最优的解。值得注意的一点是,现在的遗传算法是受生物进化论学说的启发提出的,这种学说对我们用计算机解决复杂问题很有用,而它本身是否完全正确并不重要(目前生物界对此学说尚有争议)。?
遗传算法的基础思想是在本世纪50年代初,由于一些生物学家尝试用计算机模拟生物系统演化时而提出的。?
遗传算法是模拟生物通过基因的遗传和变异,有效地达到一种稳定的优化状态的繁殖和选择的过程,从而建立的一种简单而又有效的搜索方法。它运用随机而非确定性的规则对一族而非一个点进行全局而非局部地搜索,它仅利用目标函数而不要求其导数或其它附加限制,它虽然在特定问题上效率也许不是最高,但效率远高于传统随机算法,是一种普遍适用于各种问题的有效方法。遗传算法的主要思路有:?
1、繁殖(reproduction):繁殖是根据现有各个体的目标函数值,确定其生存概率,模拟生物界的自然选择,劣者淘汰,适者生存。在遗传算法中,我们人为地保持种群包含的个体总数不变。比较优秀的个体(模型)有较大的生存概率,并可能繁衍,比较差的个体(模型)可能会淘汰。这样产生的下一代的个体,一般都具有较大目标函数值,因而有较大的生存概率。
2、交配(crossover):从种群中随机地选择两两一组的双亲,分别随机地交换部分染色体,各自产生两个新染色体。?
3、变异(mutation):染色体按一定概率(一般很小)可随机地产生变异。?
遗传算法能够解决的问题不仅限于最优化问题,但无论哪种问题,都要解决两个关键问题:(1)必须能将问题的解答用一组二进制数码表示,即建立解答与二进制数码间的映射(mapping)关系。(2)定义一种对最佳解的定量量度,即适度函数。
四、自然DNA“计算机”的“硬件”与软件——象、数?
算盘由木框、竹棍、算珠构成,其各类珠算口诀和规则是计算程序。算盘建立了一个珠算空间;易算卦爻,杭辛斋称之为卦材、爻材,相当于易算硬件,《系辞传》所论“八卦成列,象在其中矣”,是八卦空间。《序卦》所论相当于宏观程序。“蓍之德圆而神,卦之德方以智”等有关卦爻功能的论述,相当于基因染色体数的作用。?
遗传算法所取法的自然DNA的“硬件”(象)经生物化学家多年进行的DNA结构分析的研究,相当 图1 DNA四种碱基糖环系统及其原子标准指数(暂略)于高分子结构式所表示的原子结构。[6]具体化到DNA,则是双链螺旋结构的形象。DNA的参数有化学边界距离(以旋转角度表示),边界角(两相邻化学边界间的夹角),扭力角(DNA螺旋的扭转角度,0~360°)。然而,前二者是常量。只有扭力角是时常变动的变量。遗传算法主要利用扭力角变量。今将遗传算法所取法的象数——碱基结构式及DNA中轴(只表示一个核苷酸单位)扭力角分布等叙述如下:?
图1表示DNA四个碱基系统及其原子标准指数,图2(暂略)上部表示基本环,其扭力角为χ?i,其下表示糖环,其扭力角为P(i),γ?n(i),碱基系统的全过程是自由的,原则上沿单个化学边界“摆动”,就这样与DNA糖环连接起来。意即基本环与糖环沿公共边界而“摆动”。这种摆动可能是在传递信息。沿化学界面在糖环上的内循环扭力角χ在空间上受到制约,因为糖环需要闭合。已发现每一核苷酸单位都有八个主要结构参数:χ,ν?m,P,α,β,γ,ε,ζ(2),〖JP〗这八个参数都限制在一个有限的距离内,原则上,扭力角α,β,γ,ε,ζ(2)及χ位于0~360°之间;δ是中轴和糖环的一部分,这里把δ叫做ν?3,δ是一种冗余信息。P,ν?m距离可以推导出。典型的距离分别是150°~225°,25.0°~50.0°(距离用扭力角变化值表示)。如果DNA的8个结构参数已知,则排列位置已知的DNA,包括其中所含的N个核苷酸即可完全确定。?
DNA探针:这种探针(图3)(暂略)在探测环境信息方面,从最原始的单细胞生物变形虫原生质中就存在其原始形态。这种探针机构随宇宙和生物演化而逐渐变得复杂起来。瑞士学者方迪《微精神分析学》一书把这种探针式的尝试作用叫做“伊德”。[7]“伊德”在心理学界受到重视。DNA的探针是一种复杂的综合体,在生物分子结构研究方面享有广泛的盛名,称之为DNA探针级的研究。探针综合体一部分是由于其核苷酸自补偿作用而出名的。DNA探针由一个双链杆和一个环组成。探针最重要的部分是这个环。探针在演化过程中非常守恒(稳定),因此具有重要的生物功能。探针形成于细菌噬菌体最原始的重复功能。DNA染色体组存在有复杂的相互作用。这种作用能被其他生物分子所识别、利用,亦可由原生质来识别。?
DNA相当于一个微观世界,其细部结构和功能远未认识到。可以预料,它作为遗传算法的自然样板,其有用信息,取之不尽,用之不竭。要想改进遗传算法,一定要先取得自然DNA的新探索成就。最近对DNA的假结点的观测,对DNA三叉结构的观测就属于这方面的新探索。DNA双链结构相当于太极生两仪,两仪生四象,一分为二的浑沌二分叉结构。将来对DNA三叉结构的认识可能引导到对《太玄经》一分为三,中医“三阴三阳”的认识。这并非遥远的呓想,可能是不久的事情了。?
五、易算程序问题?
易学象数理论自战国形成后,由于社会制度与士大夫意识形态的原因,易数不能走西方公理化的道路。徐岳《数术记遗》积算、太乙算、九宫算都有比较独立的算法。其余不一定有独立的算法。其中提出的14种算法是:积算,太一算,两仪算,三才算,五行算,八卦算,九宫算、运筹算,了知算,成数算,把头算,龟算,珠算,计算(心算)。对每种算法的叙述,只有三言两语,看不出所以然。迄今尚未有人作深入研究。原因是“文献不足故也”。要想恢复14种算法的原样,只有走到基层农民和隐居型的知识分子那里作调查。可惜多少年来无人问津,所以困惑一直未解。我认为调查重点主要是山东半岛蓬莱,镠罘沿海一带山区农村。?
《九章数学》“寓理于术”,文中的“术曰”会有算法理论和程序背景。?[8]现在唯一可了解的就是珠算算法,此已有全国珠算学会在研究。其中不少口诀规则,堪称算法。可从此入手以及从历代历法推步术的演化中追索易算算法。古有《缀术》,为南北朝祖冲之所创,用于五星的推步(宋秦九韶《数书九章》第三卷天时类有“缀术推星”章)。《缀术》在《算经十书》中有名无书,书已失传。?
总之,恢复古代易算程序的研究是一大课题。南京大学天文系朱灿生教授曾拟研究恢复缀术。究竟古代易算详细内容如何,尚待考证恢复。秦汉前后出现的三式(太乙、六壬、奇门)经典术数的推演中可能有易算算法程序的影子。其中既含科学因素,又有不少神秘内容,今后应作开发研究。?
六、象数思维与遗传算法的比较?
本人研究科学易多年,研究遗传算法已有七、八年,迄今已初步得出易的象数思维基本上等价于遗传算法的性质与功能的初步看法。所谓象数思维主要是包含在孔子及其弟子所作的《易传》中,且主要是《系辞传》。经对比发现,无论用自然遗传过程,生物演化观念,整体观或根据实际观测来认识自然,在问题优化,生物遗传基因交配、变异,以及在溯往和预测问题上都表现了象数思维与遗传算法的相似性。《诗经·小雅》说:“唯其有之,是以似之。”意即两种事物相似的根本原因是二者之间有共同的东西。这亦是《内经》“贤者察同,愚者察异”之意。今将二者比较如下:?
1.遗传算法(以下用GA简写表示)和《易》都重视生命现象,特别是遗传过程。《系辞传》说“生生之谓易”,“天地之大德曰生”。?
2.GA和《易》都重视演化,重视从混沌到有序的观念,而认为确定不变的存在是暂时的。实际上,GA和《易》都有逼近论思想。
3.二者都有整体观思想:GA用相当染色体的种群(population)数作为基础,用相当基因的二进制数串输入计算机运算。所用数的设计都是一个集合,而不是用单个数。易算用大衍之数50(虚一不用)作为演算基础,亦是整体观。?
4.二者都是以实际观测为研究根据。GA是西方实测方法的继续,自不待言。伏羲氏是根据仰观俯察、远取近取进行比较后而画八卦的,不是凭空臆造。?
5.GA以求得问题优化解见长。孔子谓《易》是寡过之书,趋吉避凶之书,从广义上看也是一种优化。元吉(大吉)为全局优化,吉或悔而后吉是局部优化。 特别是《易》有《既济》、《未济》二卦作为纲领卦。《既济》乃优化的结果,《未济》也设法使其转变,向《既济》发展,很多卦爻辞字里行间,多有此意。?
6.二者重事物之间的相互作用和关系。GA用交配来表达此意,《易》则以“天地镮?,万物化醇,男女构精,万物化生”;“天气下降,地气上腾”(《礼记·月令》)来表示。?
7.二者均重视质变,GA谓之变异,《周易·系辞传》则说:“穷则变,变则通。”?
8.二者均涉及数学空间的理论和应用。GA常用结构参数空间,《易》则有八卦空间:“八卦成列,象在其中矣”;“乾坤成列而易立乎其中矣”。?
9.《系辞传》说:“神以知来,智以藏往”。GA既能探索已往解决问题,又能用于地震预报。?
GA的作者提出算法的改进问题,主要是深入挖掘DNA结构的潜力。而东方思维则有“巢居知风,穴居知雨”的说法,这种说法是科学的,即鸟类和昆虫类(如蚂蚁)均有预测天气变化的功能。如能开发鸟类和蚂蚁体内信息大分子结构奥秘,可以用以改进GA算法的功能。?
附注:已故学者刘绍光一元数理论的研究是根据易学象数发展出的一种易算数学分支。这一分支后继乏人或无人。关于一元数理论已出版《一元数理论初探》?[9]一书,其中不少与GA有相通之处,如其中提出的位元、序元、结元三个计算程序理论概念,以及磁子、电子、声子、光子、热子、引子、张子等开阖角的问题。均可与GA相互作用,而创造新的算法。
此文为帝村算命网文章,转载需注明出处!