(特性应用)伪随机工程2:失败前的胜利和荒诞上的疯狂
评分: +19+x


很好,看来你已经被基本原理那一节钓上了兴趣。我们再来复习一下吧:伪随机原是计算机专业的术语,指由一定算法模拟的随机过程。由于算法的确定性,伪随机数并不是完全随机,它是有因可循的。后来,这个词被特性研究员们泛指后室中一些看似随机,实则有因可循的事件。

那么,如何以伪随机为基础,展开特性工业呢?这就是这期讨论的内容。

不过,首先要声明,这一期并不像一个教程,反而像是什么杂志采访。这么写,是因为伪随机本身的特性。

一个很好应用的伪随机非常难以寻找。很多称得上“能用”的伪随机位点,往往是荒诞不经的;在这样的前提下,伪随机工程就得绝对地因地制宜、绝对地实事求是。所以,虽说伪随机工程是一个大类,但彼此之间根本不像——每个工程都是无法复制的创造,并没有什么概念、范式能把他们全囊括进去。

所以,我们直接开始看实例吧。

(1) Matsor镇鱼干厂:刷鱼溪


rsXDBiYcO6g2tvd.jpg

一模一样的鱼,躺在冰里……


Matsor鱼干厂的每一名员工,每天上班之前都能期待一下工厂今天倒闭。即使没倒闭吧,工作也是很清闲的:每天要处理的鱼也只是320条,再多没有了。

工厂不大,其中建筑只是两间大砖房而已。一间依着旁边的岩壁而建,一间则较大一些,面向街道,开一扇大门,便于把成箱的鱼干拖出去。

院子里架着的是铁杆子,共十二条。挂钩全是一个样式,没有鱼晒的时候,就空挂在杆子上面。有鱼晒呢,钩子都是一个样式,整整齐齐排开,——嗯,鱼怎么也是同一个样式?

一个员工带我进那间小砖房。从毫无缝隙的岩壁之中,一条溪水流出来,或者说是切出出来。然后漏过一片渔网,流进下面的下水道。

忽而,从里头出现一条鱼。若是你能仔细观察,这条鱼和有香料的盐缸里腌着的一切鱼、外面晒着的一切鱼和被BNTG作为商品卖到市场上的一切鱼,是毫无差别的。

这条溪水是鱼的源头。它源源不断送来了鱼,虽然频率不高,几分钟才一条吧,但确实二十四小时不断。鱼被渔网拦住,分拣员把它们丢在冰块中,隔一段时间,就有人进来择一条剖了,把内脏掏出来,丢到一个腥臭的大箱子里头,鱼则扔进盐缸里头腌制。


如果想要知道鱼是怎么来的,那就得转过砖房去。后面是一条巨大的竹筒,上端连着一个平台,铁质的。平台上边放着大块大块的碎冰,由于融化,不时有小冰块掉进那竹筒里头去。冰块撞到岩壁上,便切出了。

每天三百二十次,也就是每小时约十三次,当小镇层通往洞穴层的卡模点被使用后,旁边小溪便会刷新一条鱼。这条鱼经过溪水漫长的流淌,又将被导入一个管道,在附近的一处卡模点从洞穴层切回小镇层。

没人知道Matsor镇上的人是怎么发现它的。

这条规律看起来太巧了,巧得太随意、太荒诞,也太不可靠了。不过,跟后室的生物繁殖一比,生物刷新的现象本就随机得极为荒诞;在荒诞上叠一层荒诞,其实吧,也没比荒诞荒诞多少。


至今,Matsor鱼干厂已经产出了三年鱼干,其中有三十九天,因未知原因,鱼断供了。当时,六个员工都以为工厂要开不下去了,准备分分资金走人了。

谁知道到第四十天,鱼又回来了。

每天清晨,从LC271拉回来一车冰,择其中纯净的,用于冷藏;不纯净的,敲碎放在平台。隔几天,从镇边海上拉回来一箱盐,和LC271卖的香料混混,用于腌鱼。黄昏,偶有BNTG的切行货车来拉走一箱鱼干,旁边的农场则拖走全部下水,用于堆肥。每天半夜,员工定时醒来值班,把鱼塞进冷藏。

在层级永远明澈的晴空和虚假的群星下边,Matsor鱼干厂的生活显得单调重复。六个员工仅仅只是“六个”的数字没变而已,其实呢,每个岗位都已经渐渐换过了。他们中赚够了信用点儿的,也就寻个机会走了。

他们说,没人知道这鱼能刷新到什么时候。或许某天,因为未知的原因,鱼不再来,六个人就会散了,去往他们新的生活。



(2) 随机固化工程:铺设混沌的通径


X69gsP3DVNJdkbj.jpg

随机固化工程的一条走廊。看起来有些突兀。


“三,二,一,开灯!”

“没有呢。要再来点通道的形状。”

“那边三组人,把模板去贴到右边墙上,再试一次。”

……

“三,二,一,开灯!”

一阵欢呼。

“好了好了!大家收工,混沌器关了。”

“二组留下划墙线。”

二组那三个人拿起油漆桶和刷子,走入刚才还不存在的通道之中,沿着墙,刷一条油漆线。通道末端的门处,有几个人正在清理门缝里头的余灰。

门砰一声打开。

所有工人带着像是建材的东西:木板、墙纸,还加一套灯具、一辆小推车,上面载着柴油发电机和那个“混沌器”,鱼贯而出。

“我们完工了!可以进去看看了。”工头打扮的人对着外面等着的人们说。


离了系统的工业,离了这工业积累造出的高大的机械、成吨的建材和持久、高组织度的人力,我们似乎缺少了改造地形、建造高大建筑的伟力。而在我们面前排开的后室,虽然已经给我们以各式的结构、庞大的建筑群,但从细处来看,它却常常不能满足我们生活的全部需要。城市居住区被一座不可进入的大楼隔断;建筑物中毫无根据地出现赘余结构;甚至地下建筑的互通——这些在后室里都是大事。说到底,后室这些结构都是从人类精神萃取出的一部分感性,虽然崇高却不切实际。

一开始,我们以为这暂时难以解决。一开始, BFPF 也只能做到对公寓等环境作出一定的改装;对于更大尺度的建筑,则确实无能为力。


不过现在,在这些施工队身上,我们已经看见了后室建筑的可能性在哪里:后室自身的不稳定性。

我们知道,后室全部层级都有非欧几里得性质。这种不稳定性,可能在一些层级里头不太明显,但只要有潜能,就都有可能激发。BFPF 发现了一种可以微微扰动空间的 UDO(未辑录物品),他们称之为“混沌器”。经混沌器的扰动,原来稳定的空间也可变得不稳定。

而大家应该都有体会,在视线之外、在黑暗中,层级的结构经常是说变就变。那么,为什么我们不可以用这随机来刷新建筑结构,以建筑人们想要的结构呢?

更妙的是,层级变化时,新生成的结构是会在周围结构的基础上生成的,这让它能够“符合逻辑”,和周围的环境相适应。虽然表面上随机,但其实大体框架固定后,多刷几次总归能有点搞头。

BFPF 就这样开始搞他们的随机固化工程了。过程呢,就像是把旧有的区域删除,对周边边界小修小改,然后再让它刷新。所以,随机固化工程必须运用的建材是极少的,大部分甚至可以回收;而且,工期虽然看运气,但至少比按部就班的建筑工程要短得多。


现在活跃于城市的工程队共有三个1,而我去的是建立时间上的第一个,也就是经验最丰富的一个。

开工前,首先是工程队头子和甲方讲讲需求。头子会到现场看一看,若做不了,头子就会拒绝;有时也会临时提加价或降价。

一般,上工时间在夜里。夜里容易清场,而且也容易得到浓重的黑暗,以遮掩视野。要是层级这一天无月,就更好了。

清场是为了保证施工场地没人见到。之后,框定施工区域。这一步说是框定,其实就是安排一下大灯,然后找人看着灯下,别损伤着层级原本的结构。之后就可以开混沌器施工了。


工程队的惯例是先按着原有的层级结构随机几次。据工头说,若是能完全按照层级原有的结构,刷出目标结构,那就最好了,他们也不用耗建材,也不用耗时间。

要是原有层级的结构无法改变,那么就要考虑改变边界了。比如说建造一个通道吧,他们一般会使用安装假门墙、木板墙面等伎俩。只要黑暗区域之外看着像是一个通道,之后开灯后,那里就大概率会有一个通道。

据他们工程队的人说,即使是按照周围其他墙面的规律,在需施工墙面上涂上符合规律的颜色,也可以使得生成的结构发生改变。一个工人说,随机好像就是骗后室的把戏。

每次刷新,他们都会考虑移动一下黑暗范围。有的时候,黑暗近处已经生成得很完美了,那么就往里头推进;或者是,现在的边界看起来难以满足随机的需求,有可能会退一点。

这样的工作重复几十次,就也差不多了。原来的结构完全被建筑所需的结构替换,看起来还很合理。之后,混沌器就可以关掉了。

为了抑制残余的混沌,防止工程队走掉后施工区域再被刷掉,工程队想出了很好的办法:划墙线。只要用油漆线把施工区域和周围区域连在一起,就可以防止刷新。


到现在,工程队已经建成了十余处联通各个区域的走廊,给几十幢原来并无出口的楼房开辟了出口。

工程队的人说,伪随机终究要受到尺寸和边界的限制。边界太空阔、尺寸太大,工程就容易失真。所以,他们现在还是在对层级结构小修小改。要建造整栋大楼,或者是桥梁、公路这样的结构,那还差得远。

不过,改造建筑结构的尝试,的确是后室人类的一大步。我很期待随机固化工程的第一栋大楼落成的那一天,不过真有人敢住吗?应该不会塌掉的吧?



(3) 通讯方向演算人:虚假星空的天极


mKG86eJEjYlIX1d.jpg

我们仰望着虚假的星空吗?


LC337,观星台,每晚都有人在观星。

观星的员工,在野外,在各个天文台里头散着,打着灯光,拿着简陋的表格纸笔、铅垂线和自制的木质星盘。也有些天文台的望远镜不时转动,室内屏幕上显着层级的星光。


没人猜的到他们观测这虚假的天空是为什么。

或许大多数人都知道,后室的星空多数都不是真正的星空。每晚它便会轮换,变得全然不同;层级间,星空也有无法预测的差异;甚至每晚,星星的运行路径都是如同风暴,毫无规律可言。

当我去采访这项目的发起人的时候,他却跟我讲了另外一件毫无规律的事。

“后室的无线电……它虽然偶尔可以运行,但却也断联无序。即使只是叫个人,发个CQ,也是今天能行、明天不行。一开始那些研究员以为吧,这东西就是天生不能用。”

他叫Priklim,前厅来的人,曾经是忠实的观星爱好者。当然,来到后室,他也就听过后室的天空是随机的图像,于是,Priklim便不再半夜起身来到天台。因为他在前厅做过服装设计,来到后室就开始做裁缝,用后室原生的各种废布与纤维,给人织衣。

“……但是有天,我的孩子问我,‘是不是每个层级都是一颗星星?’我发现我答不上来,因为我确实没有足够的证据去否定它。

“我带他来观星台玩了几天。那个奇怪的关系是在这时候发现的。”

奇怪的关系,指的就是:星空的随机与无线电通讯方向的随机,本质上是一样的。

以一些主星的排列作为种子,塞进一个函数做一些变换后,能够得到附近层级在无线电通讯上的“方向”。


“……其实一开始,只有四五种情况;……后来,越来越多的情况开始出现了。我那几天全构造这个函数去了。构造其实是很难的,一开始,一个参数是3,后来是941,最后是55351。”

没人知道星空和层间结构为什么用了一套参数。我问他能坚持做下来这个发现的理由,他回答说:

“嗯,你知道孟德尔吗?他在观察遗传的时候,运气就很好。他选来研究的每个性状都符合一些简单而合理的假设……现在想来,如果当时他遇到更复杂的情况,比如基因的连锁和互换……或许就会陷入矛盾,错失这个机会吧。”

我得承认我什么都没听懂。我对生物刷新比生物繁殖熟悉得多。“那就是因为运气嘛。”我只能这么接话。

“对啊。你在跟后室的伪随机作对,你就得有很好的运气。我恰好是那个运气好的人罢了。”

——到现在,Priklim的电脑里头已经有三十五种星空情形,而函数呢,也早被他放弃了。现在,他们只是对照着情形去看看结果,就行了。


话又说回来,在通信“方向”经过程序处理后,通信距离也能得出了。而无线电的断联,正是这个“距离”所决定的。于是,通常需要花半个早上CQCQ才能建立起来的通讯网络,现在只需要从头至尾传一遍“距离”,就能解决了。

MEG主动找上门来。他们确实需要稳定的传信通道。互联网上的呢,总是会被偷窥。而且,后室这不知啥原理的网络,也并没有比稳定的电台更好一些。


Priklim说层级的十一名员工已经完成了今晚的观星任务。观星的流程,一开始是十一个人肉眼看看,若是实在太熟悉,那就直接投票2、发数据、收工。之后再用他们自制的木质星盘观测,不行的话,再去倒腾笨重的望远镜。

他们说,他们能保证每天早上,数据就传到最近的MEG电台。天上的星点连线,变作了地上信息的网络。


用完的木质星盘,就堆在天文台的桌子上面。旁边有表格和一台老旧的电脑,还有一张简陋铺设的床。

天文台的外面,散乱地放着一些大型器械,其中不少只是具有量角的功能而已。这些器械多是木质的,Priklim说都是定做的。几盏似乎刚刚安装的大探照灯,照着有器械的地面。

几个人挤在一块明亮的区域下边,他们正在做饭。我过去和他们坐在一起。

“今晚和前天新出现的排列一样,情况还在增加。要是再多下去,我们这些观测仪器的精度可能就不是很够。”

“不是很够怎么了?上天文台的望远镜呗。”

“情况怎么会增多呢?”我插一句嘴。

“不知道。随机的事,谁都说不准。”

“那么,真到那程度,你们还观星吗?”

“其实我们几个人已经说好了,没必要考虑那个时候的事。反正跟其他伪随机工程一样,都是只问现在不问将来。”

我忽而感到,他们在失败之前都是胜利的。

群星很安静。人们将睡过短昼,期待一片旧的星空……或许也期待一片新的星空?



实例到此就结束了。当然,我们还是要讲讲正事的:到底怎么建立伪随机工程?



一:偶遇伪随机



说实话,你要不是拿着一个已有的伪随机来这找找灵感,其实本文对你用处不大。

伪随机并不遍地都是,其中可以作为工程建设的,又是寥寥。想要找到一个符合一定要求的伪随机,概率确实微小。

对于这样一个可遇不可求的东西,我们唯一能做的,那就是探索、历险,扩展自己的视野;思考那些看似毫不相关的变量;拓宽思路,不要被这些违背理性的因果所困扰,而去接受这里的荒诞不经——祝你好运。

等你真的发现一个伪随机了,我们再来谈谈后面的事。




二:确认与确信



总有人来问我,我手头上这个是不是靠谱的伪随机?

我的回答是,先做个工程,再去想这些。

后室这种地方,你要问它,为啥星星和无线电用了同一套种子?为什么生成生物能够被切行支配?很抱歉,没人能答得上来。能用就行了,谁考虑那么多呢?

在建立工程之前考虑工程的可行性,在伪随机面前也只是毫无作用的把戏。你当然可以在建立工程之前做几组实验,但一建立工程,伪随机周围的环境又会变化。要真是因为这个跑不起来了,那你到时候就会变成对着“烫烫烫锟斤拷”思考“为啥这个不能跑”的程序员。

先做,再想。能跑,就别动。伪随机嘛,就是这样。




三:设计触发



伪随机的触发,不仅仅是对于因果的控制,其实也包含了随机信息的获取。这里,也不一定要有什么宏大的装置,当然,能自动化最好,不能也就作罢。

当然,在这一阶段,我们可以依赖物理、化学、生物、特性等等我们最熟悉的东西。如果一定有个伪随机,要无面灵被摔死,那么很简单:做个刷无面灵机就得了。




四:设计应用



接下来就是各位最熟悉的环节:分析一下伪随机产物能用到何处。

鱼干自不必说,就算是建筑队,也很有参考价值。很多情况下,我们都是先看见一个机制的产物有用,才去设计;但其实,无论是什么机制,都可能产生它的价值。

之前论坛上还有一个找线性重复地形的教程,大概也算伪随机。一开始人们都认定这应该没有什么用,直到有人定向地应用了这个技术,然后直接让空珀矿脉重复了无数次。这人至今还在无限重复的地形里头挖呢,出来就能功成名就,赚笔大钱。

要看到潜在价值,实在也是一种创造,只可意会,不可言传。不过,思考一下随机产物有哪些属性,再思考一下这些属性和价值的联系,这些有可能会帮你发掘出无用中的价值。




五:接受忽来的失败



不过,即使一切完备,伪随机还是可能让我们失望。

伪随机工程最无厘头的就在这里。忽然毙掉你工程的,可能是一缕工程留下的灰尘、一堵有着重要功能的墙面、九万公里外新生的蝴蝶,可能是时节的更替、速切玩家掠过留下的风声,甚至也可能是两个层级关系闹掰了。

和靠天收的农民一样,建立并投身于伪随机工程的人们,其实也永远担忧着自己的工程无因地失败。不过,失败了,又能怎样呢?不过是做了笔失败的投资,之后就要开始新的尝试,仅此而已。

可以期望成功并去作最大的努力,却必须同时接受失败。不要把原因归于自己,如果真的失败了,就怪伪随机去吧。

再次希望所有看到这的人好运。现在,你们还敢为荒诞的伪随机,而下赌注吗?



除非特别注明,本页内容采用以下授权方式: Creative Commons Attribution-ShareAlike 3.0 License