异星工厂吧 关注:57,484贴子:336,350

#研究报告# 关于单路/双路/四路完全均分的一些小研究

只看楼主收藏回复




去年年底接触到“lane balancer”这个概念,也就是我们说的完全均分器/完美均分器/完全摇匀器。这篇主要介绍lz最近接触到的、一些实现lane balancer的思路。
虽然大家都说供应>需求,完全均分也没啥用。但我还是作为加深游戏理解的课题试着研究看看。而且完全均分也不是没有一点实用意义——如果你的工厂也在奇怪的地方遇到卡半带运力的问题(比如给两条过长的产线供料,计算出2*半带可以供,但实际却供不上),可以试试看加入几个小完全均分器,有时会有奇效。


IP属地:浙江1楼2024-03-04 04:02回复

    【问题描述】:普通的均分器只负责“数量均分”——即把m个物料均分到n路传送带,每条传送带上m/n个物料;但分流器同时也会无视物料的半侧相对位置——比如物料输入时在左半侧带,输出时候还是在左半侧带。这就埋下了一个隐性问题:当你的工厂消耗不匀,就可能会一直消耗某半带,造成另外半带上物料的堆积,让产线的总体运力下降。
    ===(*叠甲环节)===
    (*这个问题可能远不像你想象的那么致命。毕竟你的总线都发生半带阻塞了,那么一定是物料供给>物料需求,运力溢出的。不同于总线运力不足、需要并线的情况,总线运力溢出,合理的思路是优先想办法提升产线的总效率与总消耗,让需求端追上供给端才对,而不是继续考虑加宽总线的流量,让本就溢出的物流量更进一步、总线上的缓存一直处于过饱和状态。)
    (*但在某些情况下,半带阻塞确实会影响你工厂的效率。比如阻塞的物料一路堆到火车站,那就只有一半的爪子在卸货,另外一半的爪子都被溢出的物料卡住不动。如果你的车站有候车区还好说,但如果是集成黑盒工厂,候车区很小甚至没有,那半带阻塞就会影响这一整个车站的通车率,造成路网效率下降。不过这个问题的严重程度同上所述,本就供给溢出的情况下,其实物流效率怎样都无所谓了,因为输入溢出主要问题肯定是出在产线层面而不是物流层面,物流结构可以不用背这个锅。不过完全均分器依然是一种很有趣的结构,本贴仅作为加深游戏理解的课题来研究,不去过深地探讨其实用意义。)
    所以我们可以造出一款均分器,在均分物料数目的同时,也可以均分每条传送带两侧的物料吗?

    ↑↑↑答案当然是可以的yes,这就是老外们所说的 lane balancer,完全均分器。
    接下来就来介绍完全均分器的原理,以及一些实现完全均分的方法。
    【1,完全均分器的原理:单路全均分】
    目前lz接触到三种实现全均分的思路:

    1-1,机械全均分:

    ↑↑↑对于1路均分器,大部分人日常用的都是这种小均分器。它的原理是把一条带上的物料分成两份,然后重新合并到一条带上,这样哪怕发生半带溢出,也不会影响物流效率......吗?

    *(这里作为演示,内外侧带使用颜色不同的物料。实际使用中两侧为相同的物料)
    ↑↑↑但这种均分思路有个很细节的小问题:如果消耗波动造成物料堆积,那么半带物料汇入处,一定会退化成外侧带优先供料堵住内侧带,让成整个结构失效

    ↑↑↑实现结果如上。
    这种普通1路均分器只有在【满带供给、满带消耗】的情况下可以正常运行(右),而在某半带物料溢出后,它就会发生退化进而失去作用(左、中),而且因为同色传送带上的物流速度处处相等,这种退化是不可逆的。只要发生一次就是永久退化,除非你主动掐掉输入端来清空物料缓存。
    可以看到半带发生阻塞后,消耗端一直都在消耗输入端同一侧半带上的物料,而没有像正常运行的(右)一样,每半边同时消耗输入端两侧的物料。
    因此我们需要某种更加可靠的结构,无论供给/消耗如何波动,都可以实现半带上的全均分。

    ↑↑↑机械全均分器就利用了地下传送带的一个特殊性质:如果从侧面输入,它会阻挡半带的物料,只让另外半带通过。这个性质和供给/消耗波动无关,虽然地下传送带卡住半带会浪费一点点缓存,但这是一种可以单独输出半带的最可靠结构。
    可以看但图中输入都是左铁右铜,但可以通过放置地下传送带来单独输出某半带的物料。


    IP属地:浙江2楼2024-03-04 05:37
    收起回复
      依此我们就可以构筑一个1路完全均分器:

      好吧我知道我们进度有点快(,可以先暂停一下,思考下这个1路完全均分器是如何解决半带溢出问题的

      ↑如果你想不明白的话,可以将它的各个结构拆开再放大

      ↑然后通上物料来看看它是否可以正常运行。
      可以看到,这个1路全均分器先是把1带的物料分成两带,然后用地下传送带的特性来把两侧的物料分别导出到两条传送带的同一侧,最后简单均分一下,合并。
      如果在合并处发生半带阻塞,那么这个结构当中的最后一个均分器会让两条同侧传送带上的物料同时输出到另外半带上,完成全均分的功能。

      ↑这些1路机械全均分器都是相同的功能:
      “分流-把两侧的物料分别通入两条传送带的同侧-均分-合流”
      形态各异也只是做了不同侧重点的占地优化。
      1-2,差速全均分:



      ↑差速全均分的原理非常巧妙,1红带分2黄带,总流速30/s = 2×15/s,三条带都是满带且都没有运力损失。

      黄带满带直接并入红带半带,因为速度差了两倍,总会有空隙可以放下内外侧所有的物料。这个结构哪怕发生半带溢出也不会退化。


      ↑不过要注意,如果是用红蓝混带来做差速全均分会分不太匀。原因是红带30/s,蓝带45/s,速度差了1.5倍而不是2倍。如果发生半带阻塞,红带内外侧消耗比大概是3:2,而不是红黄混带差速的1:1


      IP属地:浙江3楼2024-03-04 06:15
      收起回复
        但差速均分有一个很大的缺陷,那就是只有满带消耗和半带完全溢出时才会正常运行


        ↑↑↑如果我们给它的某半带限速,来模拟“供给>消耗≠0”的实际情况,就会发现它在限速的半侧无法完成全均分的任务,两半边的输入还是一边多一边少。

        ↑究其原因是因为一旦消耗跟不上,造成半带溢出,还是会让传送带外侧优先汇入进而堵住内侧,造成差速均分的部分退化失效。
        那有什么办法可以完全避开半带溢出的影响,实现和输入输出完全独立、绝对可靠的差速全均分呢?


        ↑我发现了,传送带神教是有极限的.......所以答案只有一个了,快点一起来加入我们的电路神教吧jo大郎!(误)
        一格传送带上最多可以放8个物品且不能堆叠放置。所以给传送带设置检测到所有信号≤4才开启,就可以做到绝对可靠的差速运行。而且用电路控制流速结构简单逻辑清晰,同时也摆脱了混带的桎梏。这个结构红蓝黄三色带均可用,不再像混带差速全均分器一样只能用于红黄混带。

        ↑模拟测试一下半带溢出的情形,电路全均分胜出。


        IP属地:浙江4楼2024-03-04 06:44
        回复
          【2,双路全均分器原理】
          介绍完三种单路全均分器,接下来介绍双路全均分器:

          双路机械全均分的思路十分简单粗暴:“均分-将其中一条带上两侧的物料左右互换-合并”。简单三步就可以实现双路全均分,甚至比单路机械全均分还少一步。

          这是一个大家常用的双路均分器,原理同上。

          ↑↑↑lz去各个互联网犄角旮旯里摸到的双路全均分结构。基本上原理都相同,即:“均分-将其中一条带上两侧的物料左右互换-合并”。相信这些结构能加深你对地下传送带的理解。


          ↑↑↑(*lz前两天在研究的一个小课题:2格宽黄带双路全均分是否可行?各种结构试了很久,然后发现有些可以让两侧物料互换的特殊结构必须要至少5格长才能塞得进去,然而黄带地下传送带最长也只有4格长的空间,,,所以结论应该是不存在纯黄带的2格宽双路全均分器。加入红带后倒是可以做到和蓝带一样结构的2格宽双路全均分器。)


          IP属地:浙江5楼2024-03-04 07:07
          收起回复
            那么电路全均分器该如何从单路拓展到双路呢?

            ↑答案很简单,就是和把2个单路全均分器并联,再和1个双路均分器串联。
            因为单路全均分部分和双路均分部分相互独立,所以这两个部分的串联次序无关紧要。负责双路均分的分流器放在首部或尾部都行。

            ↑↑↑样的思路也可以用于四路全均分器的设计:只需要把2个双路全均分器并联,然后再和1个四路均分器串联即可。


            ↑↑↑不过你要特别注意,不可以在同一个全均分器内部同时使用多种均分方式。比如我这里,在一个机械全均分器内部叠了一个电路全均分器进去,结果就是两个均分器都无法正常运行。


            IP属地:浙江6楼2024-03-04 07:23
            回复
              好贴,已收藏


              IP属地:英国来自Android客户端7楼2024-03-04 07:28
              回复

                ↑↑↑那么四路机械全均分的设计思路也是一样的,你可以直接把2个双路全均分器并联,然后再和1个四路均分器串联。不过因为双路全均分器和四路均分器有一些功能重叠部分,所以体积还能继续压缩。比如上图这个小拳头四路全均分器,就是在功能完备的同时把体积压缩到了极限。

                ↑而其他四路全均分器的设计思路其实也大同小异

                ↑更多稀奇古怪的设计我就不拆了,基本原理都是相同的。到时候蓝图会全部丢在二楼,有需自取


                IP属地:浙江8楼2024-03-04 07:42
                回复

                  这里我要额外指出四路全均分器里的一个特例。这个均分器非常非常非常特殊,我第一眼也以为它根本无法完成全均分的任务,但实际测试后我惊呆了。

                  ↑↑↑它的基本结构当中,用到了这种简单1路均分器的特殊性质:当遇到半带阻塞并发生退化后,这个结构会因为优先消耗内带的物料而让输出端左右半带上的物料互换。
                  所以上面这个看起来非常不靠谱的四路全均分器居然是可以正常运行的!平时它是一个普通的四路均分器,但一旦遇到半带堵塞它就会自动切换成和小拳头四路全均分器一样的结构,让两条交换过半带物料的传送带汇入主线,完成全均分的任务。简直就像是你随手写了个bug然后它居然正常跑了起来一样(

                  *【附加内容】:在测试中,如果随机掐掉几个半带上的物流,都会在一定程度上造成完全均分器的失效,具体运作机理不明。猜测如果想让n路均分器实现任意路输入 x ≤ n 可以均分到任意路输出 y ≤ n ,需要用到更复杂的Tu Balancer (Throughput-Unlimited Balancer,大概是全流量均分器?lz还在研究中...)


                  IP属地:浙江9楼2024-03-04 08:08
                  收起回复
                    【一些小补充】

                    偶然间发现很多大佬爱用的卸货结构居然是一个个单路完全均分器。按照之前构建多路均分器的思路,n个单路全均分并联之后再串联1个n路均分器等效于n路完全均分器,采用这种设计应该可以大大降低卸货处完全均分器的设计难度。

                    ↑↑↑SAO叔提出的卸货全均分概念:只要卸货箱个数=2^n个,就可以采用纯机械全均分结构


                    ↑↑↑看到别的大佬们在用的卸货均分器。但是还没琢磨明白,目前lz个人认为这种奇怪的均分器可靠性不足。待指教或验证。


                    IP属地:浙江10楼2024-03-04 08:39
                    收起回复
                      ===========未完待续===========
                      或许以后还会加更3路全均分、6路全均分、8路全均分之类的内容。在此暂时休刊一下。
                      蓝图就更在二楼了。有需要自取。


                      IP属地:浙江11楼2024-03-04 08:41
                      回复
                        有个问题,电路均分会影响到throughput吗?如果会的话那还是机械均分最好用吧?


                        IP属地:四川来自Android客户端12楼2024-03-04 09:04
                        收起回复
                          好贴,顶一下


                          IP属地:浙江来自Android客户端13楼2024-03-04 09:06
                          回复
                            差速均分的下半部分会导致一个问题,那就是需求小于供给且优先消耗某一侧时,会变成优先消耗来源的相反侧物品,相当于只是对两侧取了个反。
                            比如0产能造的齿轮放到左侧,100产能造的齿轮放右侧,下游组装机放右边,那么运行一段时间后铁板消耗齿轮生产比值就不是1:0.75而是1:1,因为只有左侧的齿轮被消耗。
                            不过这样其实不影响实际生产,只是会使上游组装机的生产数量差距很大。


                            IP属地:北京来自Android客户端15楼2024-03-04 10:05
                            收起回复
                              能不能做出比较精简的占地方小的可扩展的“分裂器”?就是例如,4条铁、4条铜转换成8条左右分别是铜铁的带子。


                              IP属地:上海16楼2024-03-05 11:46
                              收起回复