基于NetLogo软件创建多主体行为系统(Multi-Agent System),高清复现2 132年(秦汉至明清)社会历史演化过程。基于仿真模拟的过程数据(精确到年),提取朝代信息。反复仿真找到最佳匹配参数,即王朝周期律的ABM最优解。
(一)搭建多智能体行为系统
Netlogo软件中,存在动态与静态两类行为主体,都称Agents。静态主体为Patch(地板、嵌块等),用来模拟建筑、山川、环境、地貌、河流、栅栏、草木等客观的物体,不可移动但存在属性的变化。动态主体为Turtles(海龟),用来模拟微粒、分子、原子、动物、个人、汽车、星体等可移动物。设定 Patch静态主体为草的形象。草(Grass)具有能量属性 EG(初始值EG0 )与可再生属性,功能是生产能量、供养羊群。在某地,草被吃完之后以一定的速率再生。设定动态行为主体 Turtles,并细分为虎、狼、羊三类,其现实含义参照表1。羊(Sheep)拥有能量属性SE,其行为是吃草与繁殖。羊通过吃草获得能量,羊生存需要维持能量消耗,羊每繁殖一次需要消耗较多能量。狼(Wolf)也拥有能量属性WE,行为是捕食与繁殖。狼以捕食羊为生,从羊身上获得能量。狼生存需要能量维持,其运动与捕食也需要能量。虎(Tiger)能量为TE,行为是伺机吃狼,获得能量转移。用生态系统的行为演化,刻画社会系统的历史演化。在传统社会,农民生产的社会财富,处于用于生存和再生产,大部分向上输送供养统治阶级。以生态系统中的能量转移,刻画社会财富转移。草就是土地,生产能量(社会财富)供养整个生态系统(国家)。源头上产自草(土地)的能量,首先流向羊(农民),然后流向狼(政府)。最后,如果国家被外敌灭亡,将会流向虎(外敌)。首要目标是拟合前221年(秦始皇统一,t=1)到1912年(宣统帝逊位,t=2 132)期间2 132年农业帝国兴衰更迭的历史进程。设置仿真运行2 132次迭代(Tick),即总Ticks=2 132。其他参数设定为:(1)系统世界大小。多主体行为发生在社会系统中,用世界(World)代表总体的社会有机体系统。不妨设为正方形,总面积33×33=1 089(Patch2)。边界上下联通、左右联通;(2)草的参数设定。初始阶段(Tick=0)草在世界以50%的概率随机分布。每一个Patch都有50%的概率长草。总草量544块(Patches)。草的再生时间(grass-regrowth-time)决定能量生产速度,是影响所有行为体的重要全局变量。1~100年范围内随机取值。初始化,区间内随机取值。草被吃后消失,并按照再生时间原地恢复;(3)羊的参数设置。初始数量在0~100之间随机生成。羊有吃草与繁殖两类行为。古代的农民生活比较艰难,“吃上顿没下顿”甚至“吃来年种子”等情况不绝于史书,尤其是饥荒年间。嘉靖三十六年,山东巡按御史周斯盛的奏疏详细描述了辽东饥荒的惨状,“大水以后、一望成湖、子粒未获,远近居民家家缺食,鬻妻弃子……始则掘食土面,继而遂至相食,壮者肆行劫掠,无所顾忌,法禁不能止,积莩狼藉,不忍见闻”。因此,仿真应反映此基本史实,设定羊的能量在低水平。引入权重系数ws∈[ 0, 2 ],限制生活的丰裕程度。初始能量为SE0=ws∆s。其中,∆s是吃草一次所获能量(sheep-gain-from-food)在0~10之间随机取值。反映生活的艰难,即种地1年只能维持1年左右的生活,维持在温饱线上。羊就近吃草,每吃一个单位,就会获得能量∆s。一只羊代表一个农民家庭,以一定的0~1之间随机概率(sheep-reproduce)繁殖,反映被统治阶级的社会再生产过程。繁殖后则失去一半能量传给下一代,刻画农户分家;(4)狼的参数设置。狼吃羊是天性,狼群与羊群之间的关系是动态变化的。狼的数量不能超过羊,否则会带来系统的崩溃。初始数量在1~50之间随机取值。初始能量为WE0=ww ∆w。其中∆s是一次吃羊获得的能量(wolf-gain-fromfood),在0~100之间随机取值。狼与羊一样,权重系数在ww∈[ 0, 2 ]区间,均值为1年。为刻画地主收租的贪婪性、国家税收的年度性,2~3年不交租、不纳税是特殊情况(天灾等)。狼同样以一定概率繁殖(wolf-reproduce),也要分掉 50% 能量给下一代。这是为了刻画历史上统治阶级的再生产与皇家人口的膨胀,具体可以设想汉朝推恩令与明代宗族人口的膨胀;(6)虎的参数设置。作为外敌,虎的数量小于狼,虎是永远的敌人。虎不繁殖,设置为常量即1个。初始能量为TE0=wT∆T。其中∆T是虎每吃一次狼获得的能量(tiger-gain-from-food)在0~100内随机取值。同狼羊不同,虎的权重系数ww∈[ 0, 4 ],均值2年。因为外敌不是每年都犯边,通常抢一下管几年甚至十几年。例如明朝的鞑靼犯边记录为:嘉靖六年(1527)拥骑兵十余万入侵杀虎口;嘉靖八年(1529)入侵大同、应州、朔州等处;嘉靖十三年(1534)俺答首次提出向明朝入贡未获明政府答复;嘉靖十九年(1540)七月再次入侵杀虎口,杀伤甚多。平均入侵间隔3年多、最长不超过4年。

图1 系统世界建构与行为体设置
本文目标是用仿真拟合史实、寻找内在的核心机制,一定程度的简化与抽象具有必要性。其一,参数具体取值没有意义,但参数的组合以及参数之间的相对关系,具有理论与现实意义。王朝周期律正是由一组变量与参数的组合模拟的,每一个组合就是一套仿真参数的集合。拟合度最高的一套参数取值,被定义为仿真模拟的最优解。其二,仿真模拟是为获得不间断的国家兴衰与朝代更替的进程。具体的参数初始值,以能够实现相同现象的系统涌现为要。随机设置参数初始值,有利于呈现宏观系统这种随机但有规律的涌现。其三,在已经涌现周期性更替的基础上,以逼近史实为原则,不缩小参数范围,搜索更加合适的参数取值组合。除固定值(土地面积等)外,其他参数的初始值均应在一定范围内随机取值。
在羊吃草、狼吃羊、虎吃狼等行为规则设计的框架下,各社会主体即智能体(Agents)进行自主行动。系统启动动态演化过程,目标是涌现完整的朝代生命周期过程。在历史长河中,朝代的生命周期规律是:早期和中期属于强盛时期,国力蒸蒸日上;中期之后步入衰败期,日薄西山。在智能体系统中,每一个t时点(年)各类智能体的状态(各阶级态势)不同,代表内部的社会矛盾程度不同,导致群狼的整体力量强弱与荣辱境遇也起伏不定,决定了政权是强还是弱。
基于历史考察,设置多智能体的行动规则:(1)虎的行为逻辑。历朝历代,游牧民族都是中原王朝的劲敌,一直长期存在,虎被设置为不死状态。但不是每年都入侵。在很长时期内,中原王朝均占据优势,对四方保持压制态势。只有当外敌强大或中原内乱导致力量对比发生重大变化时,才会伺机入侵。因此,虎需要等待机会、积蓄力量。虎每一年积累2个能量,总能量达到群狼50%之后,开始入侵并攻击群狼(移动和觅食)。否则,按兵不动、蛰伏待机。(2)狼与羊的互动。每一年,狼(k)与羊(i)都要移动一次(觅食),移动距离均为1。但羊移动一次消耗能量1、狼移动一次消耗0.5。这是为了反映历史上的羊(农民)比狼(地主阶级)更辛苦。不论能否找到食物,都要消耗固定的能量。如果能量消耗完毕,羊狼都会死亡。
按照上述规则,系统将会涌现出朝代的生命周期过程。为了拟合史实数据,需要在仿真数据中识别、提取出完整的朝代生命周期数据。为此,引入两个概念:(1)生命周期函数。生命周期与峰值规律具有普遍性,任何个人、事件、组织等都会经历一个生命周期过程(筹备—成长—峰值—衰退),概莫能免。如图2,在朝代存续期(Span)之内,每年t政权生命力态势即Life (t )不同,称为国家(政权)生命周期函数。针对农业社会,狼代表统治阶级即国家政权,某年 t狼群的数量变化,动态刻画了当年 的 国家政权生命力Life (t )。因此,生命周期函数能够用于刻画朝代的生命周期过程与过程动力学机制;(2)国祚寿命Span。筹备期(谋划与逐鹿)或长或短、或明或暗,不算朝代时间,算混乱割据时期。王朝从立国开始算起到正式灭亡的完整过程如图2所示。国力从立国(To)一直成长到峰值前期,属于成长期。随后进入不可避免的衰退期,其间可能会有一两次中兴,但无法摆脱被新的朝代替的命运。生命周期函数的存续时间,是一个年代区间即t∈[ To, Tv ]。国祚、寿命即跨度为Span=To-Tv+1(年)。
图2 典型的王朝寿命周期过程
(四)系统演化动力学与朝代涌现提取原则
模型的重点工作是观测狼群的数量(能量)的动态过程数据,并提取出完整的政权生命周期过程数据,以拟合2132年中多个朝代的生命周期过程。模拟发现,在多智能体系统的演化进程中,能够涌现出生命周期过程。部分的朝代信息与改朝换代过程是清晰的(例如秦、汉、唐、明、清等大一统王朝),相对容易区分。但朝代之间的起始时间存在重叠现象,需要特殊考虑。从2132年(ticks)的模拟数据中识别并提取朝代信息,除了要基于历史,还有几个操作细则:(1)正常提取。模拟数据中,连续两年统治阶级数量(狼的数量)为零,视为改朝换代。对此,大多数朝代都可以进行比较清晰的提取;(2)判断王朝中兴还是新朝建立。峰值回落的幅度超过原高点70%以上,随后在较短时间再次产生一个新峰值,且新峰值高度接近前一次峰值水平。模拟数据将其解读为大动荡,定义为社会大动荡与朝代更替。否则,定义为社会动荡反映的社会矛盾总体可控,反映为朝代的中兴(第二次延续);(3)割据时期的主要朝代选择。在割据时期,多个政权并存,这是最为复杂的情况,需要综合各种考量选择最具有代表性者,一是要能代表中原政权,二是要以农耕文明为主体,三是以汉民族为主体。例如在东晋灭亡与隋唐建立之间的南北朝时期,选择宋、齐、梁、陈(南方)作为对象。唐灭与北宋兴起的五代十国时期,选择中原的五代政权(梁、唐、晋、汉、周)为对象;(4)暂时不纳入一些政权。新莽是西汉政权的和平政变,不改变社会矛盾,将其隶属西汉晚期。在五代十国时期,对非中原政权的十国不予纳入,以中原国力的弱小进行数值匹配。辽、金、夏等朝代属于游牧民族,本次不纳入,因为同时期并存的农耕文明政权(南北宋)已经纳入。大理政权在南宋的西南方向,不是汉民族为主体,不具备代表性与正统性,同样本次没有纳入。
(五)考察模拟—历史拟合度求解最优参数解
基于多智能体行为规则、系统实现涌现现象之后,需要将提取到的历史朝代模拟数据,与真实历史数据进行拟合度考察。每一组参数取值组合,都对应一套仿真模拟结果。通过参数遍历,获取多组参数取值组合之下的多组平行结果。工作流程是:(1)参数谱系化设置。仿真参数在其数值区间内随机取值,形成数据组合谱系与阵列。每一套参数取值的组合,对应一个仿真过程,及其仿真模拟数据,记为 fsim(·);(2)获得仿真模拟结果。每一个仿真过程,每运行一次结果有所不同。在每一组参数组合水平之下,获得单次仿真结果。对其中的朝代进行识别和信息提取,整理朝代国祚年数与生命周期函数Life(t )等核心信息;(3)计算拟合优度。秦汉到明清的大历史进程是一个单次、不可逆的确定性事实,记为freal(·),大历史数据是一种必然性事实结果。ABM仿真得到的结果,是一种必然性事实结果即fsim(·)。由于存在多个仿真模拟结果,因此二者的拟合是典型的“一对多”问题。需要从多个仿真模拟结果(多个或然性事实)中,寻找对一组事实性结果freal(·)的最优拟合。这实际上是非常有挑战性的工作,很难找到让所有人信服的结果。许倬云在《说中国》给出了理想化的平滑曲线,综合数据和史料,具有定量和定性研究双重性质。平滑圆润的曲线轨迹并不符合历史进程,本文采用关键时点、关键时期匹配的办法,来解决此问题。即对历史没有争议的盛世、低谷、战乱、中兴等进行基于关键时间节点的匹配性考察,通过了关键点的匹配度考察,就定义为合格的历史拟合;(4)重复系统仿真模拟。某一次仿真过程很难命中目标。因此,需要进行多次循环仿真模拟。每一次都要进行参数调整,选择新的一组参数进行。仿真进行了3000次,考察3000组参数组合;具体按照三个原则计算拟合优度,求解最优参数:(1)涌现数初筛。每仿真一次,都产生一个时间序列数据。按照前述原则,在每一次仿真模拟中,所识别出来的朝代数量涌现有所不同。如果与历史数量有重大差别,其拟合度很难被保障,将会被初筛;(2)最低拟合准则。朝代生命周期的总体性匹配,是最低准则,也是仿真目标。在某参数取值组合之下,仿真的朝代寿命分布与事实接近者,将会保留。如果高度一致,则找到了满足基本要求的最优解;(3)最高拟合准则。大历史进程的匹配,是本研究的最高准则。不仅要求数量一致,寿命周期分布一致,而且要求全过程一一对应。实现全过程朝代国祚对应的高清模拟还原。经过3000次高密度仿真,找到一组参数组合,能够做到模拟与史实朝代的一一对应,即为最优解。通过不断考察结果输出与历史数据的匹配程度(式3),找到拟合度最高者。 最终找到满足最高准则的一组参数:草的再生时间为14年;羊的吃草获取能量为4,繁殖率为8%,羊的初始数量为40。狼每次捕食获取的能量值为3,繁殖率为12%,初始数量为58。虎捕食狼获取的能量为19。需要指出,这组参数已经满足了最高准则。基于最优解仍然要重复模拟检验(20000次),考察结果稳健性(随机抽取展示100次)。如此,最终认定最优解。按审慎原则,称其为最优解之一。可能存在更多的最优解,有待后续研究的持续发掘。