香书小说

最新地址不迷路:www.xbiqugu.com
香书小说 > 这个学霸疑似巨额知识来源不明 > 第98章 推向全世界

第98章 推向全世界

五月六日到五月十二日。

江大数学学院不少师生发现,c楼二层那间標著c216的討论室最近有些不对劲。

平时,这里只是供研究生开读书班,教授们举行组会,或是小课题组进行头脑风暴的地方。

它的常態是鬆散的充满咖啡味的,甚至是带著一点学术摸鱼的愜意。

但最近,它的门经常关著。

白板从原先零散的几个微积分公式,变成了密密麻麻的几何结构图。

那台老旧的惠普网络印表机几乎陷入了狂暴状態,连续不断地吞吐著a4纸。

陈彦,作为顾南舟教授手下最踏实的直博生,成了这台高速运转机器上的第一个承压轴承。

他每天抱著一摞又一摞散发著热气和刺鼻墨香的材料,在导师办公室、大型伺服器机房和c216討论室之间来回奔波。

第一天,他的神情是兴奋的。

第二天,是凝重的。

到了第四天,他脸上的表情已经退化为物理意义上的麻木。

有时候,路过的同门研究生看著他眼底青黑头髮凌乱的模样,会忍不住拉住他问:“陈师兄,你们组最近在搞什么大工程,怎么连轴转成这样?”

陈彦一开始还会扯动一下僵硬的嘴角,按照顾老板的吩咐敷衍一句:“帮別的院系整理一点交叉学科的材料,跑点数据。”

后来,当睡眠严重不足导致他的前额叶皮层开始罢工时,他连敷衍都懒得敷衍了。

“擦地。”

有一天,他抱著刚打出来的五百页日誌文件,两眼发直地回答。

对方愣住,看了看陈彦手里的文件,又看了看走廊光可鑑人的瓷砖:“什么,顾老板现在开始压榨博士生做保洁了?”

陈彦面无表情地盯著地上的瓷砖拼接缝隙,声音幽幽得像个游魂:“数学意义上的擦地。”

那人更加听不懂了。

陈彦也没打算解释。

因为他自己,也快被那张存在於高维逻辑空间里的地板给磨疯了。

所谓tile j的计算机辅助核验包,在正式进入多节点並行復跑阶段后,陈彦才真正用身体和精神的双重崩溃,明白了那句这是体力活到底是什么意思。

在此之前,陈彦负责列印和整理纸面证明。

那些充斥著复杂的局部补丁定义、群作用分类和层级递推推导的手稿,虽然也不好懂,但至少保留著古典数学的浪漫。

在阅读那些手稿时,陈彦还能感受到一种我在接近宇宙真理,我在凝视上帝的拼图的崇高错觉。

有一种智力上的愉悦感。

然而,核验包的运行,完全是另一回事。

它不像证明那样闪耀著人类智慧的光芒,它更像是一个毫无感情的星际仓库盘点系统。

在证明非周期单砖的过程中,局部强迫规则会產生海量的边界匹配情况。

为了证明没有一种情况可以导致周期性平移,机器必须遍歷所有的局部状態。

一类状態生成,评估,切入下一类状態,再扩展到下一类状態的邻域。

合併同构等价类,给每一种图谱赋予绝对唯一的哈希编號。

发现闭环,標记为死路,记录拓扑矛盾原因。

输出动輒几百mb几个gb的json文件,计算多项式哈希值,生成追溯日誌。

然后:报错,排查,修改脚本,重跑;再报错,再重跑。

江临交上来的这个被称为mps的核验包,代码风格並不花哨。

没有那些大厂程式设计师喜欢搞的炫技般的图形界面,没有错综复杂,动輒需要安装半天环境的外部依赖库,也没有那种看起来运用了各种高级设计模式,实际换一台电脑就因为底层c++编译器版本不同而跑不起来的工程垃圾。

整个文件夹的结构,带著一种极简主义的冷酷。

陈彦第一次在江大数学学院的內网伺服器上解压这个包的时候,心里其实是鬆了一口气的。

作为经常帮导师跑各种祖传屎山代码的博士生,他见过太多惨不忍睹的脚本。

眼前这个包,目录清晰,命名规范,看起来挺乾净。

然后,他敲下了 python3 generate_states.py,开始跑。

第一轮,江大办公室那台配置顶配,装载了双路至强处理器和128g內存的linux工作站,在轰鸣了四个小时,进度条走到57%的时候,突然在一声清脆的滴声后,无情地拋出了大段红色的报错。

陈彦的心提到了嗓子眼。

如果数学模型错了,那意味著过去几天的狂欢只是一场泡沫。

他凑近屏幕,盯著报错信息看了十几秒,忽然有一种想笑,却又想砸键盘的衝动。

不是证明错。

不是逻辑错。

不是內存溢出。

是文件读写错误。

而且原因荒诞到了极点。

工作站之前被另一个院系的老师借用过,系统环境变量的一个临时路径里包含了一个全角的中文用户名。

而江临的脚本在调用底层系统级的相对路径拼接时,没有考虑到非ascii字符的强制转码,导致写入临时日誌时拋出了 unicodeencodeerror。

一个极有可能彻底解决困扰了人类数学界六十年单砖问题的世纪核验包,这锋利无比的第一刀,竟然砍在了中文路径的编码上。

陈彦深吸了一口气,把这个问题截图,附上环境日誌,发给了江临。

仅仅十分钟后,江临就发回了更新后的代码补丁。

他重写了路径处理的模块,加入了强制的utf-8编码声明和异常捕获机制,乾净利落。

第二轮,重新启动。

漫长的六个小时后,跑通了。

屏幕上跳出 plete. all local cases matched expected signatures. 的绿色字体。

陈彦长长地舒了一口气,刚准备站起来去倒杯水庆祝一下。

电脑右下角,邮件客户端弹出了提示音。

是远在南大的林照野教授发来的邮件。

南大数学院为了配合这次覆核,特意腾出了一台专门做代数拓扑计算的高性能集群节点。

但是,那台机器上的python版本是稍微陈旧一些的3.8版本,而底层调用的numpy科学计算库版本也不同。

在处理 tile j 的顶点坐標时,输出表格中的浮点数格式多出了一位极小的误差。

结果本身在拓扑意义上完全一致,並不影响结论。

但是,用於自动化比对的diff脚本却亮起了红灯。

文本对不上。

林照野在邮件里並没有因为这是个高中生就嘴下留情,字里行间透著老牌学者的严谨与苛刻,只写了一句极重的话:“復现说明不能假设全世界的同行都和你用同一台型號的机器、同一个版本的编译器,这是科学的普適性原则。”

陈彦看著邮件,替江临捏了一把汗。

这种吹毛求疵的指责,对一个刚刚做出巨大贡献的年轻人来说,很容易引发逆反心理。

但江临的回信在两分钟后就到了。

“收到。问题確认。已將所有底层的几何坐標比较模块,从浮点数近似比较彻底改为基於代数整数的精確编码,並使用有理数格式输出,新版本 v0.3 已上传。”

第三轮,在北京的邵明棠研究所那边,开始跑用於生成论文附录图谱的关键样例。

运行到第七个小时,又发现了一个致命的格式规范问题。

在处理tile j的翻面读法时,两个本该归入同一等价类的测试样例,输出在日誌里的名称不一致。

一个是按照第一种遍歷算法生成的,叫 mirror_case_b3。

另一个是按照逆向回溯生成的,叫 reflected_b3。

作为研究者,人类的大脑在看到这两个词时,瞬间就能反应过来它们在数学上指的是同一个拓扑结构。

但机器不知道。

对於哈希算法来说,这是两串截然不同的字符。

如果未来的审稿人,那些可能来自普林斯顿、剑桥或者高等研究院的、挑剔到极点的数学家,拿著放大镜来审查你的核验代码时,他们绝对不会大发慈悲地替你猜这其中的关联。

他们只会冷冷地写下一句:“代码逻辑存在歧义,状態空间分类不严谨。”

於是,江临再次修改。

统一了全局的命名空间,引入了严格的规范化命名函数。

接下来的这几天里,c216討论室里说得最多的词,不是天才,不是突破,不是单砖。

空气里漂浮的,全都是枯燥到了极点的工程指令。

“重跑!江大节点二號机重新分配內存。”

“日誌呢?为什么第4470號状態的衍生日誌断掉了?”

“版本號没对齐!你现在跑的是v0.4还是v0.4.1?”

“等一下,这个输出结果对应的是草稿里的哪张图?图索引文件更新了吗?”

“r-44的终端输出和附录编號对不上,差了一个位移向量。”

“別直接改原文件!开新版本分支,我们要保留完整的修改溯源链条。”

“江临,你这个新的readme写得像武林秘籍,只有你自己能看懂,你应该假设你的读者是一个只会敲回车键的白痴。”

陈彦一开始觉得无比痛苦。

他觉得自己像个在流水线上拧螺丝的计件工人,而且拧的还是那种隨时会爆炸的螺丝。

后来,在高强度的机械重复中,他逐渐麻木了,变成了没有感情的跑码机器。

但是,再后来,当版本號推进到 v0.7 时,陈彦在深夜独自盯著闪烁的终端光標,內心深处竟然在这种枯燥中,生出了一丝深深的恐惧。

因为江临改得太快了。

不是那种学生被老师骂后,满头大汗,急匆匆,乱补的快。

那是一种令人毛骨悚然的、仿佛居高临下的“熟练”。

而是你指出一个问题,他像早就知道那个问题会出现一样,迅速切到对应位置,改掉,补日誌,升版本,重新跑,给出差异说明。

有一次,有一次,陈彦忍不住问:“你是不是提前写过这些?”

江临正在改readme_reproduce.md,头也没抬地回了一句。

“写过类似的。”

“什么时候?”陈彦追问。

他难以置信一个高中生能凭空拥有这种大型工程项目的架构能力和危机处理经验。

因为这需要时间的餵招,需要无数个项目的毒打。

可是江临至少淡淡拋出两个字。

“之前。”

陈彦看著他。

这句之前,让他完全没法接。

五月九日晚上,局部情形表的全量復跑,第一次在江大那台被优化到极致的linux机器上宣告完成。

终端显示,总运行时间:8小时17分钟42秒。

所有的等价类合併无误,最终状態数与纸面理论计算完全吻合。

五月十日,远在南京的南大集群伺服器復跑完成。

克服了浮点数和环境差异后,机器给出了结果一致的最终判断。

五月十一日,邵明棠研究所那边,不仅跑完了关键样例,甚至动用了超算中心的閒置节点,跑完了为了排除周期带可能性的相关拓展脚本。

结果一致。

五月十二日,江临將所有生成的日誌、哈希校验码、代码本体打包。

他打开latex,编译生成了最终的文档。

mps_verification_report_v0.8.pdf。

tile j 局部情形表的有限状態核验报告。

五月十三日,上午九点。

江城上空飘著细雨,c216討论室再次召开全体闭门会议。

这一次,长条会议桌面上的材料,已经从最初的一摞粗糙的草稿纸,变成了整整齐齐的三摞重磅文件。

第一摞,是经过逐行推敲、严密重构后的纸面证明定稿。

第二摞,是那份厚达两百页的计算机辅助核验报告,散发著机房特有的静电味道。

第三摞,是这几天来所有的修改意见、打回记录、bug追踪匯总。

顾南舟把最后一版內部记录投到屏幕上。

tile j內部覆核记录

状態:可提交预印本草稿。

下面有三条。

一、纸面证明主链条完成內部逐行覆核第一轮。

二、局部情形表已完成mps辅助核验,多机復跑结果一致。

三、內部覆核体系收官。

陆知行合上记录本:“流程上,没有任何瑕疵了。我认为,我们可以进入预印本的准备阶段。”

顾南舟轻轻点头:“既然核心学术工作已经確立,那今天下午的工作,就是整理论文的標题页和致谢部分。”

这句话一出,原本还残留著一丝討论余热的屋里,几个人突然全都安静了下来。

连陈彦都停止了敲击键盘的手,下意识地屏住了呼吸。

因为所有人都心知肚明,接下来要摆在檯面上谈的,已经不再是客观的数学。

而是主观的,关乎人性、名誉与利益的署名权。

下午两点。

c216 的大白板被陈彦擦得乾乾净净。

顾南舟拿起黑色的白板笔,在最上面,郑重地写下了一个英文单词:authors。

然后,他放下笔,转过身,看向坐在桌子另一端的江临。

“江临,你是这篇论文的绝对核心发起人。”顾南舟的声音温和得来又充满了力量,“关於署名,你先说你的想法。”

江临似乎早有准备,平静地从口袋里拿出了一张摺叠好的a4纸,推到了桌子中央。

上面,用黑色中性笔,端端正正地列好了一个按首字母排列的作者顺序。

顾南舟只低头看了一眼,刚看到自己的名字赫然在列,他那平时总是温文尔雅的眉头,立刻紧紧地皱了起来,仿佛看到了一件极度违背常理的事物。

通过视频会议连线在屏幕上的林照野,凑近摄像头瞥了一眼,脸色也瞬间变了变,原本靠在椅背上的身体猛地坐直。

身在北京的邵明棠,性格最为直率,她看清纸上的名单后,根本没有给江临开口解释的机会,直接通过麦克风掷地有声地说:“瞎胡闹,立刻把我的名字刪掉。”

“把我的也刪掉。”林照野紧隨其后,语气严厉得像是在训斥一个犯了低级错误的本科生。

“我的也一样。”陆知行推了推眼镜,语气没有丝毫商量的余地。

江临看著几位反应激烈的教授,微微直起身子,双手交叉放在桌面上。

『记住本站最新地址 www.xbiqugu.com』