#研究报告#均分器研究:常见均分器的原理,以及如何搭建n-m路
异星工厂吧
全部回复
仅看楼主
level 7
【均分器研究:常见均分器的原理,以及如何搭建n-m路均分器】
原本想写在《关于单路/双路/四路完全均分的一些小研究》那篇帖子下面的,但是越研究新东西越多,遂新开一篇帖子跟大家唠唠。
本贴起源于
lz
最近在异形工厂shapez 2中研究的各种均分器。在这里感谢shapez的制作组,我今年两次回坑异星工厂factorio都是因为shapez1和2各方面都让我玩得不太尽兴(
——说回正题:国内大部分n-m路均分器的设计其实都来源于红迪上r/factorio板块的均分器仙人raynquist,大部分人所使用的4-4全均分、6-6均分和8-8均分其实都出自他的设计。他早在2017年就开始设计8路均分器、争论更紧凑的16路均分器、设计最早的128路均分器。之后他于2019年开始整理出版蓝图簿《balancer book》(《均分器之书/均分器大全》),书中不但记载了从1-1路均分器到9-9路均分器的所有可能的组合,还整理了一些12-12、16-16、24-24、32-32、64-64等更常用(?)的均分器。这本蓝图簿从2019年一路更新到2025年,在最新版中raynquist增加了一些常见问题的FAQ,为对均分器感兴趣的新人们答疑解惑。
——让我感到意外的是,如此一位红迪上的名人,在国内居然没有引起任何讨论度。所以本贴将主要围绕raynquist的帖子进行搬运,然后lz在这基础上再进行一些拆解和解析。
(如上图,这是我搓的一个8-8均分器。虽然体积大了点,但确实验证了raynquist佬常用的节点图构造法是可以构造出想要的n-m均分器的。)
【叠甲1】shapez1和2其实lz很喜欢玩,当时都是买回来一周不到就肝出mam通关了。但shapez1在三天游玩里闪退了5次,shapez2产线拉起来更是掉帧。所以lz我打通shapez后立马就带着六年前的二手电脑跑路去打异星工厂factorio了(),可能shapez毕竟是最近两年才出的游戏,优化还是比不过代码老灯wube制作组。不过shapez比起大规模产线,更鼓励玩家们用电路做出万物制造机mam,自动交付随机需求图形。对于想入门硬件电路的玩家来说shapez 1或许是个不错的选择,史低3块左右。
【叠甲2】lz在3000小时的游戏实践中也是深刻认识到了“均分器无用论”——即:对于主流的总线等力大砖飞的“过饱和输入模式”来说,你一般只会遇到两种情况:输入不足或输入溢出。这两种情况下均分不均分都没有太大意义,分流器太多可能还会降ups。而一些更常见的低流量均分情况中,小回环电路都爆砂体积庞大的均分器结构。所以一般来说除了火车装卸会用到均分,总线上只需要用连通器即可。而纯分流器搭均分器相关的研究,也就这样成为了更偏向数学游戏的领域,可能比起实用,更注重娱乐和解密。
2025年02月27日 02点02分 1
level 7
首先把最精华的转载放在最前面:
这篇帖子是raynquist讲解他如何设计1-1均分~8-8均分的。其中最让我震撼的是6-6均分器的思路,居然只涉及1条循环输入,简洁又大胆,稍后会详细拆解。
2025年02月27日 03点02分 2
赶上直播了[呵呵]
2025年02月27日 03点02分
经典老帖[吐舌]
2025年02月27日 04点02分
raynquist的《均分器大全》,原文和翻译:s/1KEJ7B9Qjbt99eAztxdAXZw?pwd=prai
2025年02月28日 04点02分
@◆虚空撕裂者◆ 刚睡醒,请问今年几几年(
2025年02月28日 04点02分
level 7
草,同志们先别急,lz正在翻译raynquist佬《均分器大全》里的FAQ小讲座部分,稍后会在本楼和2楼放上翻译好的蓝图。
他最新的《均分器大全》里更新了超多小tips,包括纯黄带/红带的替代方案,一些草稿,一些raynquist搭均分器时的小技巧等等等等,文本量稍微超出了预期,抱歉久等了(
翻译到这里的时候lz自己都要绷不住了,打开FAQ,里面有一本均分器基础教程
以为翻译的差不多了,然后一看教程里还藏了一本均分器设计裏技合集(
2025年02月28日 04点02分 15
raynquist的《均分器大全》,原文和翻译:s/1KEJ7B9Qjbt99eAztxdAXZw?pwd=prai
2025年02月28日 04点02分
level 7
【前言(可跳过)】shapez 2 里的均分问题
在开始彻底分析常见均分器原理之前,我想先和大家唠唠shapez异形工厂。
(异形工厂shapez和异星工厂factorio,这俩游戏的中文译名实在是太相似了=。=,所以下面我会带上它们的英文原名作为区分)
在shapez异形工厂里试图搓过大型产线的同志们应该都有一种感觉,那就是异形工厂的产线耦合度高的吓人。只要是和剪切、堆叠这俩建筑相关的产线,基本都很难保证满载运转
比如:
↑↑↑我想给一个图形的左半边染色,一般做法是对半切开,染色,堆叠。但问题是,左半边染色的产线和右半边不染色的产线是高度耦合的——意思是只要其中的一条产线发生堵塞溢出,就会卡住这两条产线起点的剪切机,让整体产率总是亏10%20%
异形工厂2加入了火车,但那个火车又不够智能需要手动调节时序,哪怕当大号传送带用,成原料装卸速度可能还会有一定波动。这让产线耦合度过高的问题雪上加霜(
——这个问题和它的解决方案,在根源上和异星工厂factorio的高级原油裂解非常类似:同时生产多种产物,只要其中一个发生堵塞,就会影响其他产物的生产。想要解决多种产物之间的强耦合关系,那就只有用各种手段去解耦。
而异星工厂的wube制作组应该是对此早有考量——高等原油处理这个配方的制作速度非常缓慢,甚至要做很久才能填满一个储液罐的缓存;其次wube给高油裂解留了一个巨大的缺口:玩家几乎需要把生产出的轻油重油石油气全部拿来做塑料。所以一次游戏流程下来,石油气只有可能不足,永远不可能溢出。这就让解耦环节变得非常轻松。——wube的数值策划做得很好,另一方面官方也没想在这方面太为难玩家。
但异形工厂shapez就不同了,虽然有效的解耦方法也多种多样,但问题是这几种方法需要的建筑几乎都是游戏大后期才能解锁的,玩家在游戏前中期的解耦手段非常有限。
↑↑↑在shapez 1&2 里,玩家常用的解耦做法有三种(这里图片只展示简单的抽象结构。实际产线还要考虑量化和配比):
①,往产线内插上溢流门,只要检测到堵塞就把溢出的物料全部销毁
②,每次剪切后都把产物旋转到同一个角度,过个均分。直到要用的时候再转回来
③,简单粗暴插上储物箱进去,溢出多少都无所畏惧(
然后好玩的地方来了:
1,无论是shapez1还是2,逻辑电路几乎都是中后期/大后期才会解锁的科技,所以①真用上了也快通关了。
2,shapez 1 里还能像这样轻松均分,但shapez 2 里没有2-2均分器。。。是的,你需要自己用1-2分流器和2-1合流器搭建2-2均分器。更何况shapez 2 里动辄12带物流24带物流,均分器的体积也会非常庞大,真做出来了无论成本还是体积都远不如电路溢流门。
3,shapez 2 里没有储物箱。所以③这个方法可以不用想了(),虽然也可以用经典传送带卷卷当储物箱来完成这个功能,但体积也会变大。
所以lz在异形工厂2里搓前期总线厂子的时候,几乎只有方法②可以考虑。这也是我最近重新回到r/factorio异星工厂社区重新学习均分器的契机。我相信raynquist对于游戏底层机制的研究,一定也可以用在同样拥有传送带的异形工厂shapez2里。
raynquist的均分器理论几乎都是用2-2均分器作为基础来推演的。所以我们的第一个任务是,在异形工厂2里搓出一个2-2均分器:
——至此,在均分器领域,我们终于和异星工厂factorio站在了同一起跑线上(
虽然只有1-2分流器和2-1合流器可以用,但我们还是成功把它搓出来了。那么接下来就是根据这个结构去优化出更多可用的2-2:
这是我经过一番尝试找到的一些2-2均分器结构。之后搭建4-4和8-8将主要从这里面挑选可用的均分器。
↑↑↑比如,这就是一个简单的双层4-4均分器。它的结构和右边异星工厂里的4-4完全相同:四个2-2均分器作为“节点”,然后中间的线扭一下。这样每一路输入都能被分配到每一路输出:
不过又经历了一些尝试,lz有了一些意外的收获:
虽然异形工厂2不允许直接出现2-2的传送带接口,但是却允许玩家做出这种1-3分流器接口和3-1合流器接口。那么异形工厂2里的3-3均分器的体积一定非常小。因为它只需要把ABC三条传送带用1-3分流器分成(aaa)(bbb)(ccc),然后再用3-1合流器合成(abc)(abc)(abc),我们就会得到一个3-3均分器:
再优化一下体积,尝试把第三层级也用进去:
至此,在异形工厂2里拥有了2-2和3-3,那么就能轻松搓出所有可能的均分器了。比如,通过简单串联4个3-3和12个2-2,我们就得到了一个12路均分器:
怎么样,是不是很简单,你也来逝逝看吧!(喂
2025年03月03日 06点03分 17
level 7
不过这个12路均分器还是做复杂了。3-3均分器本身就可以均分来自3个不同层的输入。所以只要想办法做出单层的4-4,复制粘贴三份,就可以做到12路均分。
比如lz做的这个24路均分:
[=-=]
它的原理就比较简单了。得益于异形工厂2中不需要循环输入就能得到简单的3-3均分器,我们只需要3个单层8-8均分串联8个三层3-3均分,就能得到体积较小的24路均分。
有了24路均分,异形工厂2总算是变成了熟悉的模样(雾
(*这里的是星际传送带,一条星际传送带的运力是3层×4带=12普通传送带。)
那么前言部分差不多就结束了。其实从这里已经可以初窥均分器设计的门径:
普通n-n均分器设计中,如果n=a×b,那么只需要a个b-b均分串联b个a-a均分即可。比如6路均分器,就可以用3个2-2均分器串联2个3-3均分器,即可保障每一路输入都被均分到每一路输出。(a和b顺序可调换,而且a和b都可以继续被拆分。比如24路均分器可以被拆成“n=a×b×c”的形式:3×2×4或4×3×2,因数abc的顺序可任意调换)。如此一来,大部分n-n均分器都可以被拆解成基础的2-2、3-3、4-4均分器。
——但对异星工厂factorio里的均分器来说,这一条规律几乎只适用于n=2^x形式的均分器。
要想做出n=10以内质数的n-n均分器,我们还需要一个非常特殊的工具,那就是【循环输入】。
2025年03月03日 11点03分 18
level 7
【第一章】常见均分器拆解:4-4、8-8、3-3和6-6
不过在开始讲循环输入之前,先来讲讲常见均分器的原理吧。因为我也是直到最近才注意到,哪怕是4-4均分器,也是有体积更小的布局的。
还记得前言所讲的吗?如果n-n均分器的n可以被拆成n=a×b,则可以用a个b-b均分直接串联b个a-a均分。所以4-4均分就可以拆成2个2-2交叉串联2个2-2。
4-4均分器的点图如上。每一个“节点”都代表了一个2-2均分器,也就是分流器/分线器。
考虑到这种结构所有的可能性,我们得到以下几种常用4-4结构,且它们之间都可以互相等效替代:
而大家最熟悉的4-4沙漏,还有4种可等效替换的变体:
*以下为附加内容①,4-4 TU balancer,4-4全流量均分器:
到这里大家要记住一个小知识点:目前上图中所有出现的4-4,都是【普通4-4均分器】,而且它们当中的每一个,都【只包含4个分流器】
↓↓↓*大家平时用的最多的6分流器版本4-4均分器,其实是一种【全流量4-4均分器】
↑↑↑“4-4 TU Balancer”,TU的全称是“Throughput Unlimited”——“吞吐量无限制/全流量均分器”。
↑↑↑4-4普通均分器和4-4 TU全流量均分器的区别如上:在极端情况下(输入不足n满带的同时,输出堵塞任意带)时,4-4普通均分器无法提供全吞吐量保障。如上图:在这种输入不足4带,输出堵塞特定2带的情况下,进2满带的物料却只能输出2×0.5带。
而一般用来吧n-n均分器升级成n-n TU 全流量均分器的方式也很简单:就是把两个n-n均分器背靠背放在一起:
↑↑↑而在大部分情况下,如果n=a×b,那么TU全流量均分器就是:[TU] n=a×b+b×a(“×”代表节点之间必须交错串接;“+”代表“背靠背”这种简单的平行连接方式)。
要是再进一步,很多情况下全流量均分器的点图可以化简为[TU] n=a×b×a(中间的两个b的功能是重复的。可以约去一个b)。
——↑↑↑所以上图中,我们就从背靠背放置两个4-4得到2×2+2×2,然后约去功能重复的部分,得到【[TU] 4-4=2×2×2】,三个2则代表三级分流器节点——至此,我们得出一个6分流器最简布局的4-4全流量均分器。
*附加内容①结束。
——不过在我开始长篇大论TU均分器的特点之前,我还是继续讲解一下本章主线,常见均分器的拆解吧:
首先从比较简单的8-8均分器开始拆解。
首先8=2×4=4×2。我们可以通过交叉串接4个2-2均分和2个4-4均分来完成
而4-4又可以继续拆解成4=2×2。所以8-8均分器至少需要经过3级2-2均分器。这就得到了1楼中的几个等效的点图:
↑↑↑:8=2×(2×2)
我们可以挑选上图里的第三张点图,来构成一个非常简陋的8-8均分器原型机:
↑↑↑:8=2×4。我们用4个2-2交叉串接2个4-4,搭建了一个简易的8-8均分器。
显然这个原型机的面积实在是太大了。所以我将试着把这个原型机一步步优化成rayquist佬的8-8:
首先是把绿色的4-4等效替换成另一个4-4。
但之后的第二步才是优化8-8面积的神来之笔:
raynquist把4个2-2直接并排放置,以得到最小的输入面积。
紧接着,他把两个4-4的输入分成了两组:
红色4-4:1 - - 1 1 - - 1
绿色4-4:- 1 1 - - 1 1 -
这样,既可以保证2-2和4-4之间是【交叉串接】的,又可以把4个2-2到2个4-4之间非常逼仄的布线面积和复杂度给均摊到两个4-4内部去——很显然,同样8格宽的面积里,两个4-4的扭扭乐难度要远低于四个2-2的扭扭乐(。
2025年03月06日 08点03分 21
这里再补充一下,一般一局游戏里,基本都很难遇到需要TU全流量均分器的情况。只要保证你的n-m均分器的每一路输入和输出都能被有效利用,就不会遇到普通均分器卡流量,需要上TU均分器的情况。所以各位也不用太紧张(
2025年03月06日 08点03分
level 7
接下来我会示范一下如何用相同的思路,来搭建一个同样8×10格大小的8-8均分器:
为了验证我们“n=a×b”理论的可行性,这次我将尝试把raynquist的8=2×4的布局反过来,以8=4×2的布局为骨架:即先过一级4-4均分,再过一级2-2均分
↑↑↑首先把两个4-4的输出分成互补的两组输出:-11--11-和1--11--1,以保证两个4-4的每一路输出都能抵达每一个2-2。
再接下来就是在这个基础上寻找所有可能的结构,以尝试优化出和raynquist佬一样大小的解法:
↑↑↑ =。= lz经过了在草稿图上的一番疯狂尝试,终于做出了图中的这个8-8普通均分器。
上面的是raynquist的8-8,用了34传送带,14地下带,12分流器
下面的是lz搓的8-8,用了用了34传送带,18地下带,12分流器
lz的解法同样也是8×10格的面积,但我的解法比raynquist的解法多用了4个地下传送带。。果然大佬的脚步不是我能轻易追上的.。
2025年03月06日 09点03分 22
如果我没记错的话,马老师做的8路均分大小是8*8,我自己做的是8*10,不过我没深入研究
2025年03月06日 14点03分
@超级潜水员QZ 👀,8×8大小怎么可能,,我去找找看
2025年03月08日 05点03分
1