异星工厂吧 关注:61,069贴子:391,000

中断调度系统详解

取消只看楼主收藏回复

4万瓶正常存档稳定运行


IP属地:浙江来自Android客户端1楼2025-03-16 18:46回复
    导航楼


    IP属地:浙江来自Android客户端2楼2025-03-16 18:46
    收起回复
      大家好啊,今天我要带来一点“小发明”,啊中断调度系统,之前我发明的那个同名调度系统,我看见很多人都在用,虽然是我发明的,但是我也不太想承认是我发明的,其实谁发明的无所谓重要的是玩得开心对不对


      IP属地:浙江来自Android客户端3楼2025-03-16 18:49
      收起回复
        好了,不扯了,本帖是讲述我正在用的一套火车调度系统,已经几个档测试下来没有出现问题了,所以决定正式讲解一下,让大家体验到火车如果和机器人一样方便有多爽。


        IP属地:浙江来自Android客户端4楼2025-03-16 18:51
        回复
          首先我们分析机器人的使用方式以及各个组件的职能
          1.红箱子:只负责存储东西,不关注存什么东西。
          2.蓝箱子:负责设置需求物资以及数量。
          3.机器人平台:负责存储机器人
          4.调度系统:当蓝箱子有需求的时候,调度对应数量的机器人完成任务。
          5.机器人:响应调度系统,并且找到正确的蓝箱子


          IP属地:浙江来自Android客户端5楼2025-03-16 18:58
          回复
            接下来做一点需求分析
            我们需要在不损失运力的情况下保证正确的调度,以及堪比机器人的使用/设置方便程度。


            IP属地:浙江来自Android客户端6楼2025-03-16 19:00
            回复
              于是对机器人相关职能进行简化
              1.供给站:永远调用固定数量的任意车
              如图所示,所有车都会一直前往供给站


              IP属地:浙江来自Android客户端7楼2025-03-16 19:03
              回复
                2.需求站
                我们只需要设置要什么物资,如图所示,一个图标即可,堪比蓝箱子。
                这里我们只关注物资种类,数量交给之前的同名调度系统的电路去计算就行。


                IP属地:浙江来自Android客户端8楼2025-03-16 19:10
                回复
                  而我们火车的中断设置也非常的简单,装满车厢,代表它只可能在供给站,这时候让他去通配符的车站。
                  举个例子,当这辆车装满后,会检测车厢内的第一个物资为铁,那么他会把这个通配符变成铁,这样他就能去铁站啦



                  IP属地:浙江来自Android客户端9楼2025-03-16 19:14
                  回复
                    至此,我们其实已经完成了中断调度系统的最核心的部分,现在所有的车都会根据自己所装载的货物前往对应的车站。


                    IP属地:浙江来自Android客户端10楼2025-03-16 19:16
                    回复
                      接下来是大型停车场,他最重要的作用是方便我们添加车辆,我们不需要关注整个火车网络里有多少车,只要看到大型停车场车辆数量不太够了就顺手加一些火车即可。


                      IP属地:浙江来自Android客户端11楼2025-03-16 19:18
                      回复
                        那么火车进出停车场的条件是什么呢
                        1.当一个火车完成一个需求站的任务时,发现所有供给站都满了,这时候他就应该回停车场等待调度。
                        图中,
                        清空车厢 代表火车当前在供给站并完成了供给任务。
                        目的地已满 代表所有供给站都满了


                        IP属地:浙江来自Android客户端12楼2025-03-16 19:22
                        回复
                          2.当一个在停车场的火车 发现有任意 供给站 有空位时,这时候他就应该出停车场,并且前往有空位的供给站。
                          这一点看图中 火车本身就会一直前往供给站,所以已经实现了。


                          IP属地:浙江来自Android客户端13楼2025-03-16 19:25
                          回复
                            但是这样会导致一个问题,火车会非常频繁的进出停车场,导致存在大量的无效路程,在车流量大的时候会导致停车场极其拥堵。这个问题很多大佬做的调度系统甚至LTN都有,我猜测是他们的调度系统高度依赖停车站。但是你仔细观察机器人物流系统的运作方式会发现,机器人并不是每次出来完成一个供需任务就回机器人平台了。


                            IP属地:浙江来自Android客户端14楼2025-03-16 19:29
                            回复
                              我们的调度逻辑并不依赖停车场,所以我们可以非常简单的解决这个问题。
                              “让停车场的火车变懒”
                              如图所示,在停车场的火车,每60秒才会尝试一次出站。
                              但是在外部的火车,只要完成任务就会尝试前往供给站。于是在外部的火车永远比停车场的火车勤快。
                              虽然有概率抢任务,但是实际游玩可以忽略不计了。
                              这样就能很大程度上解决停车场拥堵问题。


                              IP属地:浙江来自Android客户端15楼2025-03-16 19:34
                              收起回复