Does that mean, that one could chain two of those together and have stable ratios in all cases?
Belt math, using lower tier belts to effect.
Forum rules
Circuit-free solutions of basic factory-design to achieve optimal item-throughput
Re: Belt math, using lower tier belts to effect.
Re: Belt math, using lower tier belts to effect.
Re: Clarification on the term "balancing"
I was thinking about these definitions and the direction this thread has gone and noticed your definitions are only concerned with the number of items on the output belts (output balanced) not where those items came from. Whereas @disentius and I have been have been concerned with balancing the input across the outputs (input balanced).Impatient wrote: ↑Fri Aug 30, 2019 10:01 pm...
"Balancing" in the context of Factorio means transforming one or several (n) rates of input (i1, i2, in) to one or several (m) rates of output (o1, o2, ... om), where all the rates of output are equal!
...
"Balancing" in the context of Factorio and in common language mostly is used when refering to the task to evenly distribute the items from a numer n of belts to another number m of belts.
...
Re: Belt math, using lower tier belts to effect.
So if you only care about output balancing the standard 4 blue belt balancer works:
But if you need input balancing you may need something a little more complicated:
Please note if the input is starved or output is blocked input and output ratios may be different across belts.
But if you need input balancing you may need something a little more complicated:
Please note if the input is starved or output is blocked input and output ratios may be different across belts.
Re: Belt math, using lower tier belts to effect.
Exactly.
Was planning to build this thing you did today:) Nice proof of concept.
If we forego perfect output mixing, these two classics work for even input balancing. I use these for unloading stations to empty wagons evenly. (started unloading trains to two or for belts per wagon a while ago)
Originals are here: https://imgur.com/a/sgAsj
Was planning to build this thing you did today:) Nice proof of concept.
If we forego perfect output mixing, these two classics work for even input balancing. I use these for unloading stations to empty wagons evenly. (started unloading trains to two or for belts per wagon a while ago)
Originals are here: https://imgur.com/a/sgAsj
Re: Belt math, using lower tier belts to effect.
Yes, you are correct. The common understanding of the single word term "balancer" is, that equal amounts of items are routed to each output. If the balancer also draws equal amounts of items from each input then the design is "output AND input balanced". If one is also looking at lanes, then it is "output and input lane balanced". If an equal amount from each input is routed to each output, then it is a "mixer" (which, I think, as per its functionallity, must be input and output balanced). Etc. ...
Re: Belt math, using lower tier belts to effect.
I think I found a partial solution for that problem. "Partial" because I am not yet sure, if the way to solve it can be generalized to every n>>m problem.Oktokolo wrote: ↑Sun Sep 01, 2019 3:47 pm...
The until now unseen belt balancer would have more than two inputs and more than two outputs. It would evenly balance inputs to unblocked outputs so that every unblocked output gets roughly the same (does not have to be count-perfect) amount of item throughput. Inputs are assumed to contain the same item type, so mixing order doesn't matter. Input and output lanes are assumed to be balanced already. So it is only about balancing belts - not lanes.
(Also it uses priority splitting, which some players might consider "cheating", when used in balancers, as the parent forum "Mechanical Throughput Magic (circuit-free)" originates from a time, where priority splitting was not available.)
But anyways, as far as I can forsee it, it does what you were asking for.
I was thinking about the various designs presented in this thread in combination with my analysis, of why the balancers, usually used, can not handle blocked outputs, in a way, that every unblocked output gets the same amount of item throughput. In my analysis here viewtopic.php?f=202&t=74800&start=40#p454217 I wrote
And this hit me: What if I add another splitter for each output, that routes the items back to the input, if that output is blocked (using priority splitting)? That way, blocked outputs do not cause uneven distribution in a standard design balancer because the ouputs of that standard design balancer are always unblocked. After that, again using priority splitting (priority merging), the items from the blocked output are fed back to the input.Impatient wrote: ↑Sun Sep 01, 2019 7:10 pm... the culprit is the fact, that only the vanilla Factorio splitter, which is a 2>>2 balancer, can be used to split, mix and combine the contents of belts. For 2 outputs of an n>>m, there is always 1 "last" splitter inside the balancer. "Last" in the sense of "the last splitter before those 2 outputs". If one of the outputs is blocked, the other output gets ALL the inputs from that splitter, not just one half of it.
Here is my 2nd attempt on a 4>>4 "reactive" balancer (until some better term comes up I call the designs "reactive", as they "react" to blocked outputs):
The balancer is in blue and the input rates are 15/s.
In the core, marked in red, is the standard 4>>4 balancer. Each output has a splitter added to it, that priority splits to the bus. If an output of the reactive balancer is blocked, the items are routed back to the input side. In this example I use priority merging to feed the looped items back on the input belts. Priority merging because for this idea to work, the loops - as far as I understand it - must be emptied. Because if they are not, then a situation might emerge, where the items from a blocked output can not be looped back, thus the output of the core balancer becomes blocked and the outputs of the core balancer become unbalanced.
Here is my 1st attempt,
I am not sure on this particualr design, because I think it can lose its reactive functionality after a while, as the loopback belt from that blocked output will fill up until no additional amounts can be looped back to the input side. Better to priority merge the looped back items into the input belts as done in the 2nd attempt example. For now I guess, that it is the better way. I need to do more testing on this and test it on various n>>m problems and try different ways of implementation.
But the basic idea is to loop back items from blocked outputs to the input side. That is it.
What do you think?
Last edited by Impatient on Sat Sep 07, 2019 5:53 pm, edited 1 time in total.
Re: Belt math, using lower tier belts to effect.
This is why I like using different items on the input belts, it allows you to see that no items from the bottom belt are consumed:
This balancer is not input balanced.Re: Belt math, using lower tier belts to effect.
Yes. It isn't and I think it can not be made input balanced. The implementation with the misused adapted 8>>8 might be input balanced as the items from each loopback are distributed to all outputs evenly and not fed into one input belt.
In the picture you posted I see you are running the blueprint with 45/s on each input. This way, at least, you can not verify that it is reactive. Just in case.
In the picture you posted I see you are running the blueprint with 45/s on each input. This way, at least, you can not verify that it is reactive. Just in case.
Last edited by Impatient on Sat Sep 07, 2019 5:52 pm, edited 1 time in total.
Re: Belt math, using lower tier belts to effect.
This one took a while to stabilize but it is input balanced:
Re: Belt math, using lower tier belts to effect.
Side note: Interesting that the digits say, that the throughput is 48, where the max throughput of a blue belt should be 45. Or is this some other number than the output rate?
Edit: Small errors in calculating average over time I guess.
Edit: Small errors in calculating average over time I guess.
Re: Belt math, using lower tier belts to effect.
48 = 8 * 6 (8 items on each of 6 belt tiles). The right most column shows how many items are on a belt (output belts), the bottom row shows which items are being consumed (input belts). The other number show how much of an input belt is on an output belt.
-------
I propose 3 attributes for categorizing belts:
-------
I propose 3 attributes for categorizing belts:
- Output Balanced - All output belts have the same number of items per second
- Input Balanced - All inputs are consumed with the same number of items per second
- Perfect Mix - Items from input belts are spread evenly across output belts
Re: Belt math, using lower tier belts to effect.
I don't consider using splitters to their full potential to be cheating.
Yes, it indeed does that just fine
I call it a "belt balancer" or "output-balanced belt balancer". The other commonly accepted belt balancers don't balance and are therefore fakes. Don't know what people use them for.
Looks like it is providing even output in all cases. So it is fine for me. It only takes slightly longer for loopbacks to empty when outputs become unblocked. But that just equals to the consuming belt be lengthended by the length of the loopback, wich is expected beahaviour.
That is an ingenious use of priority splitting. I thank you for building the first actual vanilla belt balancer not needing circuits, wagons/cars, or bots. I already assimilated the blueprint of the smaller version into my blueprint library.
Also, as someone has once mathematically proven, that you can build any 2^N balancer from 4x4 balancers and your 4x4 balancer is handling blocked outputs correctly, i believe that you implicitly solved the case for any NxM balancer (not only the 2^N ones).
Re: Belt math, using lower tier belts to effect.
This nomenclature sounds right to me.
Last edited by Impatient on Sat Sep 07, 2019 5:45 pm, edited 1 time in total.
Re: Belt math, using lower tier belts to effect.
@Oktokolo
Thank you for the appreciation.
I kept thinking, that if that idea of looping items from blocked outputs back to the input can be achieved by an adapted 8-8 balancer to handle all 4-4 cases, then I can use an adapted 16-16 balancer to handle all 8-8 cases (if it is also throughput unlimited, which eg the standard 8-8 balancer is). And by "all" I mean really everything. 8-7, 8-6, ..., 5-3, ..., 1-8, 1-7, ... etc. . I would call it an "universal 8-8 balancer".
But ... haha, AM I REALLY THE FIRST ONE TO HAVE THIS IDEA?
https://www.google.com/search?client=fi ... l+balancer
The answer is "NO!" There are not a lot of results, but there are.
@Oktokolo: For you the book with universal 4-4 balancers https://factorioprints.com/view/-LXrbqQfO03t3sVOBuXf
and another single design https://factorioprints.com/view/-LiPtLEdh0cwi9nXFaP4
@disentius: For you the universal 8-8 LANE balancer
https://factorioprints.com/view/-LXuNaLX0gBY2FuCWN54
(It looks as huge and complex as expected for an 8-8 universal lance balancer )
@Trebor: For you the universal 4-4 output AND input balanced belt balancer
https://www.reddit.com/r/factorio/comme ... _balancer/
(it seems some of the universal designs are input balanced others are not, depending on how the items from blocked outputs are merged with the inputs)
The design posted there has a slight error. Here is my fixed version of it
When following the trail of credits it seems the ideas go back to this design, by user kroppeb
which looks pretty similar to the 2nd attempt I made today. So, not the first but same idea.
Thank you for the appreciation.
Ok, I would call it "dynamically output-balanced belt balancer". As IMO the implicit common understanding of "belt balancer" is that it distributes evenly to outputs as long as the number of unblocked outputs stays the same as specified. n>>m, where m (unblocked) is static. But that is just a minor detail and my understanding, which can be wrong.
I kept thinking, that if that idea of looping items from blocked outputs back to the input can be achieved by an adapted 8-8 balancer to handle all 4-4 cases, then I can use an adapted 16-16 balancer to handle all 8-8 cases (if it is also throughput unlimited, which eg the standard 8-8 balancer is). And by "all" I mean really everything. 8-7, 8-6, ..., 5-3, ..., 1-8, 1-7, ... etc. . I would call it an "universal 8-8 balancer".
But ... haha, AM I REALLY THE FIRST ONE TO HAVE THIS IDEA?
https://www.google.com/search?client=fi ... l+balancer
The answer is "NO!" There are not a lot of results, but there are.
@Oktokolo: For you the book with universal 4-4 balancers https://factorioprints.com/view/-LXrbqQfO03t3sVOBuXf
and another single design https://factorioprints.com/view/-LiPtLEdh0cwi9nXFaP4
@disentius: For you the universal 8-8 LANE balancer
https://factorioprints.com/view/-LXuNaLX0gBY2FuCWN54
(It looks as huge and complex as expected for an 8-8 universal lance balancer )
@Trebor: For you the universal 4-4 output AND input balanced belt balancer
https://www.reddit.com/r/factorio/comme ... _balancer/
(it seems some of the universal designs are input balanced others are not, depending on how the items from blocked outputs are merged with the inputs)
The design posted there has a slight error. Here is my fixed version of it
When following the trail of credits it seems the ideas go back to this design, by user kroppeb
which looks pretty similar to the 2nd attempt I made today. So, not the first but same idea.
Re: Belt math, using lower tier belts to effect.
thanks, imp
And you are right, the discussion over balancers is as old as factorio. Every time something changes, it crops up again.
And you are right, the discussion over balancers is as old as factorio. Every time something changes, it crops up again.
Re: Belt math, using lower tier belts to effect.
BTW, this 8-8 by tzwaan is smaller, and works beautifully. (tested it)
https://www.reddit.com/r/factorio/comme ... /?sort=old
https://www.reddit.com/r/factorio/comme ... /?sort=old
Re: Belt math, using lower tier belts to effect.
As posted here, this one is input & output balanced and can handle uneven inputs and outputs. I didn't do sideloading, as it may cause unbalanced output when followed by a splitter while being fed by uneven input.
And yes, its too much spagetti...
And yes, its too much spagetti...
Re: Belt math, using lower tier belts to effect.
Here is a 6 belt to 4/2 belt splitter balancer.