第十三天。
凌辰在裂缝营地的沙地上画了一整天的图。
不是灵波道基的公式,不是热力学的能量流,也不是材料力学的应力分析。他画的是一棵树。
一棵倒过来的树。
树根在最上面,只有一根,标注着。从树根往下,分出两根树枝,标注着条件A条件B。每一根树枝再往下分,再分,再分。最后,这棵树有几十根末梢,每一根末梢都标注着一个具体的动作。
这棵树,是他根据小天昨天给他讲的一个概念画出来的。那个概念叫做决策树用树状结构来描述一个决策过程中所有可能的分支。
凌小辰,你今天怎么忽然对编程这么感兴趣了?小天的声音在他脑子里响了起来。经过了十三天的相处,凌辰已经完全习惯了这种脑子里突然冒出一个小男孩声音的感觉。
因为我想搞清楚一件事,凌辰说,手里的树枝点在了沙地上那棵树的树根上,星海联盟的灵械机器人,执行命令的方式是这样的:收到指令,执行动作,收到下一条指令,执行下一个动作。你知道这种模式在地球的编程语言里面叫什么吗?
叫什么?
本座不知道。本座的编程知识是arm64机器码层面的,没有学过这种分类。
凌辰其实也不知道。但他昨天看到小天的知识库里有一个叫做流程图的东西,用箭头和方框来表示程序执行的步骤。星海联盟的灵械机器人执行模式,用流程图来表示,就是一条没有分支的直线。
一条直线。从头走到尾。遇到任何情况都不会拐弯。
如果巡逻机器人在巡视的时候,左边的传感器检测到异常灵力波动,它会怎么做?它会继续沿着直线往前走,直到把预定的路线走完,然后才报告。
如果机器人在执行焊接任务的时候,灵钢的熔池温度忽然升高了五十度,它会怎么做?它会继续焊,焊到预定的坐标点为止,然后才报告熔池温度异常。
为什么不能在中途停下来?
因为星海联盟的灵械指令,是一张固定的指令清单,不是一段。
小天,凌辰开口说,我给你描述一个场景。你帮我用你说的的方式,重新设计机器人的应对逻辑。
好呀,本座最喜欢做题了。
一个维修机器人,正在矿船的引擎室做例行巡检。它的巡检路线是沿着引擎室外壁走一圈,检测八十六个检查点。走到第四十三个检查点时,它的温度传感器检测到引擎冷却液管道表面温度超出正常值三十度。在星海联盟的指令系统里面,它会怎么做?
继续走完剩下的四十三个检查点,小天不假思索地说,然后生成一份温度异常报告,提交给中央工作站。
但如果用程序逻辑呢?
那就简单了。用条件判断,如果温度超标,立刻停止巡检,切换为冷却液管道故障诊断子程序。子程序包括三个步骤:定位温度异常的精确位置,检测管道是否有裂缝,评估冷却液泄漏扩散范围。三步做完,生成诊断报告,然后根据诊断结果决定是继续巡检还是直接切换到管道抢修模式。
凌辰在沙地上画了两条线。
第一条线是直的,标着指令清单:检查点1→2→3→...→86→生成报告。
第二条线是弯曲的,有很多分叉,标着程序逻辑:检查点43→条件判断→分支A(继续巡检)/分支B(切换诊断)→...
他看着两条线,在心里面做了一个估算。如果按照第一条线的方式,从发现温度异常到生成报告,大约需要走完剩下的四十三个检查点,耗时大约半个时辰。等到中央工作站收到报告,再派人去排查,至少还需要半个时辰。总计一个时辰的响应延迟。
如果按照第二条线的方式,从发现异常到完成诊断,不超过一刻钟。
小天,他慢慢地说,你觉得星海联盟的人,为什么不用第二种方式?
本座觉得小天的声音拖长了调子,可能不是因为做不到,而是因为没想过。你想想看,你的灵波道基理论,如果没有人教,你自己能想出来吗?
想出来了。
你是例外。大部分人,从小到大被灌输的都是灵力流,就不会想着把它变成灵力波。同样的道理,星海联盟的灵械工程师,从小到大被灌输的都是指令清单,就不会想着把它变成条件判断+循环。思维框架一旦形成了,想跳出它,比掌握一项新技术难得多。
凌辰沉默了。小天说的话,让他想起了热力学里面那个的概念。思维框架,也是一种状态,稳定、自洽、不容易改变。要打破一个思维框架,需要外部的输入。对于凌辰来说,那股就是天问号带来的地球科学知识。
你继续给我讲编程,凌辰说,下一个是。
小天的显示屏亮了起来。
循环,简单来说,就是让一段程序重复执行。不是重新发一次指令,而是程序自己在到达循环末尾之后,自动跳回到循环开头,再来一遍。循环次数可以是固定的,也可以由一个条件来判断,条件满足的时候继续循环,条件不满足的时候退出。
凌辰听到自动跳回这四个字的时候,手臂上的汗毛竖了一下。
自动跳回。
他在矿船上做维修的时候,最头疼的就是焊接长缝。焊接机器人有一条六米长的焊缝要焊,每焊接五十厘米,焊笔的温度就会升高到需要短暂冷却。每次需要冷却的时候,机器人就会停在原地,等焊笔温度降下来,然后,人就得上场了。因为机器人不会自己重新启动,必须由操作员手动发出一条继续焊接的指令。
如果它自己会自动跳回呢?
如果焊接编程不是焊五十厘米→停→等操作员发指令→再焊五十厘米,而是焊五十厘米→如果焊笔温度过高→等待十秒→跳回开头再焊五十厘米
那操作员就可以去做别的事了。不,不只是做别的事。一台操作员可以管理的不再是一台焊接机器人,而是五台、十台。因为操作员不需要盯着机器人,他只需要在机器人遇到循环之外的异常时才介入。
如果星海联盟的灵械机器人都用循环来控制,凌辰说,矿船上的维修部可以减少一半的人手。
不止一半,小天说,而且被减少的人手都是做重复劳动的低级技师。高级技师反而会更忙,因为他们需要处理那些循环之外的、真正需要判断力的异常情况。
凌辰的脑子里,浮现出了星海联盟矿船上那六个维修技师的面孔。赵平、方伯、魏长河……他们都是好技师,但他们大部分的时间都花在了按按钮上,每隔一段时间就去按一下继续焊接,每隔一段时间就去按一下继续巡检。这些按按钮的动作,不需要任何技术知识,任何一个练气一层的修士都能做。
但三级技师、四级技师在做。
不是因为必须三级技师才能做,而是因为机器人自己不会。
凌辰在沙地上,画了第三张图。这一次,他不是在分析已知的问题,而是在设计一个新的东西。他画的是一个方框,方框里面写了四个字:灵械操作系统。方框外面连着三条线,分别标注着条件判断循环函数调用。
函数调用是今天他学的第三个编程概念。它的意思很简单,把一段可以重复使用的指令封装起来,取一个名字,以后需要用它的时候,只需要这个名字,不需要重复写一遍。
灵波道基理论里面也有类似的概念,凌辰说,五个核心公式,每一个都可以被看作一个。我在修炼的时候,不是每一次都重新推导一遍波动频率和能量的关系,而是直接调用第一个公式。
对。这就是函数调用的本质。把知识封装成模块,用的时候直接调用,不用的时候它就在那里存着。
凌辰盯着那张图看了很久。
星海联盟的灵械技术,和地球的编程语言,讲的是一回事,都是关于如何精确地控制一个系统的行为。只不过,星海联盟用的是指令→执行的一次性模式,地球用的是条件判断→循环→函数调用的模块化模式。
一个是一张清单。一个是一个程序。
哪一种更强大,不言而喻。
但这个结论引出了一个新的问题。如果编程思维这么强大,星海联盟为什么不采用?是没有接触到这个概念,还是有什么制度性的阻力?
凌辰在矿船上做了三年维修,他很清楚星海联盟的灵械设备是怎么被设计出来的。灵械设备的控制核心是一块叫做灵控晶核的晶体,里面预烧录了一套固定的指令集。指令集的设计者通常是星海联盟的灵械工程师,他们用一种叫做灵纹刻录的方法,把指令直接刻在晶核的晶体结构里。一旦刻完,指令就不能再修改了。
如果要把条件判断循环引入灵械控制系统,那就意味着灵控晶核的指令集不再是一张,而是一个。刻录的难度会成倍增加,因为灵纹刻录是物理过程,不是软件编程,不能像写代码一样随时修改,刻错了就得报废整块晶核。
小天,他说,地球上最早的计算机,是不是也用物理方式来存储程序的?
对。第一代计算机用的是打孔纸带。每一条指令都是一排孔,孔的位置决定了机器执行什么操作。改程序就是重新打一排孔。听起来很原始对吧?但地球的程序员们用了不到十年就从打孔纸带进化到了汇编语言,又用了不到十年从汇编语言进化到了高级语言。你知道为什么这么快吗?
不知道。
因为程序是可以自我迭代的。当你用第一代编程语言写出了第二代编程语言的编译器之后,你就可以用第二代语言来写第三代语言。每一代语言都比前一代更强大、更简洁。而星海联盟的灵纹刻录,本质上和打孔纸带是一个水平的,但它从来没有进化过,因为灵纹刻录是一种,不是一种。工艺可以优化,但不能自我迭代。
但他的灵波道基修炼法,还没有到需要和条件判断的程度。因为他现在只是在自己的丹田里试验,一个人,一次只做一件事。但如果有朝一日,他需要同时控制多个灵械设备,或者需要在战斗中实时调整灵力波的参数,
那编程思维,就是必不可少的能力。
他在沙地上,给那张灵械操作系统的图加了一行标注:未来建设方向。需要更强的灵力控制能力和更稳定的灵智状态。
然后他把那棵倒过来的树,那棵决策树也重新看了一遍。树上的每一条分支,都代表着一个选择。每往下走一层,选择的范围就缩小一圈,直到最后,只剩下唯一的行动方案。
这就是条件判断的力量。不是靠直觉,不是靠经验,而是靠一层一层的逻辑筛选,把无限的可能性收敛到一个确定的决策。
小天,凌辰说,如果我用决策树的方法,来分析暗紫色灵气的问题
本座已经在做了,小天的声音里带着一种被抢了台词的委屈,本座从昨天就开始做了。结论是:最优方案是找到暗紫色灵气的精确低频波动频率,然后用反相位灵力波进行破坏性干涉。你已经知道这个方案了。
还有没有备选方案?
备选方案有三个。第一个,远离暗紫色灵气浓度最高的区域,也就是离开这颗星球。你做不到。第二个,用高浓度纯净灵力持续冲刷经脉,相当于给你全身的经脉做一个连续的清洗。你需要大量的高阶灵植,现在没有。第三个,降低全身的新陈代谢速率,减缓灵力流动,从而降低侵蚀速度。这个你可以做到,有一种叫做龟息术的星海修炼功法,可以让修士进入极低代谢状态。但副作用是,你的思考速度也会同时下降。
凌辰把三个备选方案都记在了沙地上。每一条后面都标注了可行性。
第一个,做不到。第二个,暂时做不到。第三个,可行,但副作用太大。
最可行的,还是反相位干涉。
我知道了。他说。
暗红色的天幕,和过去的每一天一样,没有任何变化。但凌辰知道,他的脑子里面,有些东西已经变了。不是灵力储量增加了,不是灵智恢复了,而是思维的方式,被一种叫做的东西,打开了另一扇窗。
他躺下来,闭上眼睛。睡着之前,脑子里回响着小天今天说过的一句话。
思维框架一旦形成了,想跳出它,比掌握一项新技术难得多。
但他已经跳了。不是一次,是很多次。
每一次跳跃,都让他离被困在荒古星上的练气九层修士这个身份,更远了一步。