[1.1.34] Belt with splitters creates gaps even with compressed input

Things that we don't consider worth fixing at this moment.
Araeos
Burner Inserter
Burner Inserter
Posts: 5
Joined: Sat Jul 25, 2020 8:52 am
Contact:

[1.1.34] Belt with splitters creates gaps even with compressed input

Post by Araeos »

factorio-belt-splitter-gaps.jpg
factorio-belt-splitter-gaps.jpg (403.35 KiB) Viewed 2741 times
I am trying to create a green circuit subfactory with the minimal number of assemblers. My approach is to create 5 nearly full belts and merge 1 of them into the other four to reach compression. The image shows a reduced representation where the belts A, B, C and D represent the output of 2 green circuit assemblers each. The belt E is extra, should always stay compressed (due to throughput satisfaction and splitter priorities) and tops up the other four.

Instead of the expected four compressed belts, the output clearly shows seemingly random gaps in the upper output sections. I am certain that these gaps originate from strange belt behaviour where gaps are created upstream when items are taken from the belt, possibly only via a splitter. An example of a splitter creating a gap on the priority output even with a compressed input belt is shown in the video:
belt-splitter-gap.webm
(656.8 KiB) Downloaded 136 times
The example shown above can be recreated with the following BP and since this is enough to reproduce this behaviour on my system, I hesitate to upload a large save game file.


This problem persists even in a factory I designed in the map editor with 10 assemblers for green circuits (10 beacons) and 10 assemblers for copper wire (11 beacons), so this behaviour is actually limiting my factory design choice.
Attachments
factorio-current.log
Logs of loading a minimal example
(5.69 KiB) Downloaded 126 times
User avatar
disentius
Filter Inserter
Filter Inserter
Posts: 694
Joined: Fri May 12, 2017 3:17 pm
Contact:

Re: [1.1.34] Belt with splitters creates gaps even with compressed input

Post by disentius »

NaB.

Your balancing is not correct, that is why the gaps appear.
Here is a no-gap solution, with a balancer from the book raynquist compiled some time ago:



The balancer book link: https://pastebin.com/igs2CvVd
Attachments
2021-06-04 18_58_25-Window.png
2021-06-04 18_58_25-Window.png (3.81 MiB) Viewed 2696 times
Araeos
Burner Inserter
Burner Inserter
Posts: 5
Joined: Sat Jul 25, 2020 8:52 am
Contact:

Re: [1.1.34] Belt with splitters creates gaps even with compressed input

Post by Araeos »

disentius wrote: Fri Jun 04, 2021 4:59 pm Your balancing is not correct, that is why the gaps appear.
Here is a no-gap solution, with a balancer from the book raynquist compiled some time ago
Thanks for the example solution. I am sure that many other balancers work perfectly, but my goal was minimizing entities and optimizing performance in relation to the throughput achieved (though I know that bot networks may have better performance). And if the behaviour exhibited by my setup worked as expected it would be fine but the splitters, in my opinion, are behaving arbitrary and a natural definition of splitters with priorities would not allow this.

So I think your statement that my balancer is incorrect is circular: The setup does not work because of a bug (for now my estimation only, official evaluation may differ).
User avatar
eradicator
Smart Inserter
Smart Inserter
Posts: 5211
Joined: Tue Jul 12, 2016 9:03 am
Contact:

Re: [1.1.34] Belt with splitters creates gaps even with compressed input

Post by eradicator »

disentius wrote: Fri Jun 04, 2021 4:59 pm Your balancing is not correct, that is why the gaps appear.
Your counter-examples doesn't have input gaps though. So it's unsuitable to demonstrate gap-propagation through splitters.
Araeos wrote: Fri Jun 04, 2021 7:18 pm The setup does not work
Hm. The upper left quadrant obviously gets gaps when B and C have synchronous gaps. I'm not sure why the upper right quadrant would have gaps given that it's directly fed from the gap-free E input.
Author of: Belt Planner, Hand Crank Generator, Screenshot Maker, /sudo and more.
Mod support languages: 日本語, Deutsch, English
My code in the post above is dedicated to the public domain under CC0.
User avatar
eradicator
Smart Inserter
Smart Inserter
Posts: 5211
Joined: Tue Jul 12, 2016 9:03 am
Contact:

Re: [1.1.34] Belt with splitters creates gaps even with compressed input

Post by eradicator »

I tried to reproduce and noticed that loaders produce gaps too. When the loader goes to sleep due to blocked output it leaves a gap on one lane when waking up.

loadergap.png
loadergap.png (199.74 KiB) Viewed 2658 times
Attachments
_gaploader.zip
(952.36 KiB) Downloaded 89 times
Author of: Belt Planner, Hand Crank Generator, Screenshot Maker, /sudo and more.
Mod support languages: 日本語, Deutsch, English
My code in the post above is dedicated to the public domain under CC0.
User avatar
eradicator
Smart Inserter
Smart Inserter
Posts: 5211
Joined: Tue Jul 12, 2016 9:03 am
Contact:

Re: [1.1.34] Belt with splitters creates gaps even with compressed input

Post by eradicator »

And here's the gap propagation. Output priority just doesn't seem to be able to handle gapped input.


gappropagation.png
gappropagation.png (277.31 KiB) Viewed 2648 times
Author of: Belt Planner, Hand Crank Generator, Screenshot Maker, /sudo and more.
Mod support languages: 日本語, Deutsch, English
My code in the post above is dedicated to the public domain under CC0.
Araeos
Burner Inserter
Burner Inserter
Posts: 5
Joined: Sat Jul 25, 2020 8:52 am
Contact:

Re: [1.1.34] Belt with splitters creates gaps even with compressed input

Post by Araeos »

Yeah, gap propagation on priority output of a splitter, when at least one full belt of input is present, is the exact problem that I meant.
User avatar
disentius
Filter Inserter
Filter Inserter
Posts: 694
Joined: Fri May 12, 2017 3:17 pm
Contact:

Re: [1.1.34] Belt with splitters creates gaps even with compressed input

Post by disentius »

Interesting...
@Eradicator: Trying to reproduce your result, but I get a gapless belt in both configs. (running time 15 min each)
Attachments
2021-06-05 00_07_13-Window.png
2021-06-05 00_07_13-Window.png (1.17 MiB) Viewed 2628 times
2021-06-05 00_10_46-Window.png
2021-06-05 00_10_46-Window.png (1.28 MiB) Viewed 2628 times
User avatar
eradicator
Smart Inserter
Smart Inserter
Posts: 5211
Joined: Tue Jul 12, 2016 9:03 am
Contact:

Re: [1.1.34] Belt with splitters creates gaps even with compressed input

Post by eradicator »

disentius wrote: Fri Jun 04, 2021 10:12 pm (running time 15 min each)
There is no time component. The right setup produces gaps every few seconds. BUT. Apparently the right setup is a bit complicated. I tried to make it shorter but the number of curves on the in/ouput belts is somehow relevant. Also input priority doesn't seem to matter, only output priority.

Here you see the upper S-curve design is gap-free while the lower one is not:

moregaps.png
moregaps.png (142.28 KiB) Viewed 2591 times
Author of: Belt Planner, Hand Crank Generator, Screenshot Maker, /sudo and more.
Mod support languages: 日本語, Deutsch, English
My code in the post above is dedicated to the public domain under CC0.
Post Reply

Return to “Won't fix.”