第九十二章 一块不该存在的砖
    第二天,那个让程序去找程序的笨东西,江临终于给它取了个正经名字。

    微程序搜索器(MPS)。

    听着像上个世纪的产物,但对江临来说,这就是个愿意把所有蠢办法都撞一遍,而且永远不会嫌烦的赛博苦工。

    在量化这头,它现在已经能帮江临干不少脏活了。

    帮他揪出那些藏在系统里,单次不起眼但每天被循环几千万次的热路径。

    它还是个冷酷的质检员,新找出来的每一套做法必须和旧流程逐项比对,只要有一项输出对不上,立刻判死。

    今天是五个数排名,明天可能是十六个数分桶。

    而且,江临很快意识到,这玩意儿最有价值的地方还不是快那么一点点。

    而是它在逼着自己变得更加严谨。

    因为他在使用这个搜索器的时候,想要让它工作起来更加顺利,就必须明确告诉它。

    什么算对,什么算错,什么边界绝对不能碰,什么动作看似捷径,实则是把未来的债挪到了现在?

    这简直就是最硬核的自学过程。

    以往他学个新概念,总得在脑子里左右互搏。

    一个状态压缩会不会丢信息?

    一个递推是不是偷偷混进了未来数据?

    一个看起来精妙无比的证明,会不会在某个极端边界上一脚踩空?

    现在,相当于身边多了一个没有智商,但体力无限的死脑筋助教。

    江临在终端里敲下一行测试:“这个说法在十个元素以内有没有反例?”

    MPS不懂为什么,它只会把所有情况像翻抽屉一样全倒出来。

    如果没有,它告诉你在这个小范围里没找到。

    如果有,它会把那个血淋淋的反例直接拍在你脸上。

    足以让江临省下大把时间,去验证自己的直觉是不是错的。。

    五个数的排序,代码跑得欢快。

    六个数,后台打印的痕迹开始变得杂乱。

    等到八个数,以及更大的数时,为了找出那条最短、最稳、最不容易出错的动作串行,它必须在海量比较顺序里试探。

    机箱里的风扇一下子开始狂转,发出沉闷的嗡嗡声。

    任务管理

    路太多了。

    所有可能的动作串行像决堤的洪水一样漫出来,直接把这个体力无限的工人淹死在了内存里。

    靠剪枝撑出来的生机,在指数级的爆炸面前不值一提。

    江临听着机箱的轰鸣,捏了捏眉心。

    这是结构性的绝症。

    已经不是多挂机几个小时能解决的问题了。

    要让这套工具链成为内核,他必须解决更底层的逻辑。

    哪些状态可以合并?

    哪些死路可以提前砍掉?

    以及砍掉之后,怎么在数学上证明自己没有误杀真正的最优解?

    江临切回日志文档,敲下几行字。。

    写完,他停了一下。

    光标在末尾有节奏地闪铄。

    他又补上一行。

    需要数学语言:局部规则,状态转移,全局约束。

    这几个词,不知怎么地,就在他脑子里意外置上了另一条线。

    让他想起了一个更老的问题。

    如果一块型状的物理边界,就是一种天然的局部规则?

    如果两次图形的严密拼接,就是一次状态转移?

    错误接法会自动走进死路,而正确接法会被迫像长晶体一样,蔓延成越来越宏大的结构。

    这跟他在机箱里让MPS疯狂试错,本质上没有什么区别。

    江临重新把光标放回搜索框。

    这一次,他没搜代码,而是敲下了一行英文。

    local rules force global structure

    回车。

    几秒钟后,页面上跳出了几个词:tiling(铺砌)、substitution(替代)、aperiodic(非周期)。

    他顺着链接一路点进去。

    Penrose 铺砌、Wang tiles(王氏砖)、准晶体。

    最后,在一篇学术综述的边角处,他看见了那个如针尖般锐利的词。

    notile(单一瓷砖)。

    江临盯着这个词看了足足半分钟,眼神发亮。

    随后在搜索框里重新输入:aperiodic tiling notile。

    ……

    下午,江临去了江大图书馆,借了四本书。

    一本有限自动机,一本组合优化,一本符号动力系统。

    以及一本封皮都有些卷边的离散几何

本章未完,请点击下一页继续阅读>>