Biggest Lane Rebalancer!
Biggest Lane Rebalancer!
Today i want to start a challenge. It is a challenge where you have to try and build the biggest count-perfect belt balancer. The belt-balancer does not need to work when one output is blocked up
The scoring system is as follows: x is the width of the balancer, y is the length of the balancer, n is the number of belt inputs and g is the number of belt outputs.
Score = ((n * g)squared)/(x * y)
So how will these belt balancers be tested? They will be tested by the community. They can either be tested using logical thinking , or placing entities on 2 random input belts at the same time and seeing if it can sort the entities properly.
The creations will need to be submitted as a reply to this post, with a picture, blueprint string,and dimensions in order to be entered for the competition.
If you decide to test some of the creations, and one doesnt work, you will need to post a gif and reference to the design you tried.
Why am i doing this, you may ask? Because I want to see the creative designs you guys come up with!
*Also, please no copying designs from elsewhere
The scoring system is as follows: x is the width of the balancer, y is the length of the balancer, n is the number of belt inputs and g is the number of belt outputs.
Score = ((n * g)squared)/(x * y)
So how will these belt balancers be tested? They will be tested by the community. They can either be tested using logical thinking , or placing entities on 2 random input belts at the same time and seeing if it can sort the entities properly.
The creations will need to be submitted as a reply to this post, with a picture, blueprint string,and dimensions in order to be entered for the competition.
If you decide to test some of the creations, and one doesnt work, you will need to post a gif and reference to the design you tried.
Why am i doing this, you may ask? Because I want to see the creative designs you guys come up with!
*Also, please no copying designs from elsewhere
Last edited by Virenz on Sat Feb 06, 2016 9:22 am, edited 6 times in total.
Re: Biggest Lane Rebalancer!
Edit: The original post has been updated, so this post is outdated.
I think you need to add more constraints to the task. You still have at least two loose parameters, size and number of lanes.
Either: The smallest lane balancer for N lanes.
Or: The lane balancer with the most lanes which uses less than M (or J x K) tiles.
Further:
Which belts are to be used?
How would the lane balancers be tested?
There have been posted a number of lane balancer designs recently. Did you look through them? Maybe you could use one of them as reference design and the challenge is to: a) add more lanes or b) reduce the size of it without compromising function.
I think you need to add more constraints to the task. You still have at least two loose parameters, size and number of lanes.
Either: The smallest lane balancer for N lanes.
Or: The lane balancer with the most lanes which uses less than M (or J x K) tiles.
Further:
Which belts are to be used?
How would the lane balancers be tested?
There have been posted a number of lane balancer designs recently. Did you look through them? Maybe you could use one of them as reference design and the challenge is to: a) add more lanes or b) reduce the size of it without compromising function.
Last edited by ske on Fri Feb 05, 2016 3:15 pm, edited 1 time in total.
Re: Biggest Lane Rebalancer!
So if I have a 4x5, will that give me a "score" of 4+5 or 4*5? In other words, will it be better to make belt balancers squared or stretched?(in terms of the dimensions, not tiles)
you would literally have to make a 8-belt balancer and loop back half the outputs to get a "Perfect" balancer when blocking outputs, I'd rather just see the 8-belt balancers.and it has to work both ways, so when the right lane is full, it equally distributes to all of the lanes
Those are my two cents, I really hope for some interesting designs even if they're not as compact or as good as some other belt balancers out there.
Last edited by Yttrium on Thu Feb 04, 2016 8:06 pm, edited 1 time in total.
-
- Filter Inserter
- Posts: 952
- Joined: Sat May 23, 2015 12:10 pm
- Contact:
Re: Biggest Lane Rebalancer!
It is, add a splitter to a loopback on each output. then if any output is blocked all items that would have gone there will go back and go through the balancer again.Yttrium wrote:So if I have a 4x5, will that give me a "score" of 4+5 or 4*5? In other words, will it be better to make belt balancers squared or stretched?(in terms of the dimensions, not tiles)
It is not possible to build a belt balancer that redistributes the materials of a blocked output without knowing which output is going to be blocked.and it has to work both ways, so when the right lane is full, it equally distributes to all of the lanes
Those are my two cents, I really hope for some interesting designs even if they're not as compact or as good as some other belt balancers out there.
Re: Biggest Lane Rebalancer!
Hmm, I guess I jumped a bit too fast to conclusions, My point still stands, Those balancers would be more than twice as big and complicated, To get 0 compression loss on a 4-lane with this rule in mind you would literally have to make a 8-belt balancer and loop back half the outputs to get a "Perfect" balancer when blocking outputs, I'd rather just see the 8-belt balancers.ratchetfreak wrote:It is, add a splitter to a loopback on each output. then if any output is blocked all items that would have gone there will go back and go through the balancer again.Yttrium wrote:It is not possible to build a belt balancer that redistributes the materials of a blocked output without knowing which output is going to be blocked.
- Jackalope_Gaming
- Fast Inserter
- Posts: 230
- Joined: Wed Oct 07, 2015 10:11 pm
- Contact:
Re: Biggest Lane Rebalancer!
The size of balancers more than doubles between powers of two. For example, 4 belt balancers occupy either a 5x5 area or a 4x7. 8 belt balancers get in the area of 10x9 and 11x7. Go up to 16 and it's roughly 25x15. My 32 belt balancer is 53x30. In terms of total area it is always nearly triple to around quadruple.
And those numbers do not count loop backs. Using the method Yttrium describes, that 11x7 8 belt balancer becomes 13x9 with loop backs, and that's one of the better examples because its design allows for running two of the splits straight down through the middle. Running loop backs on that 25x15 16 belt balancer to turn it into an 8 results in a 33x23. That alone is more than nine times the area of one of the original 8 belt balancers.
An extreme case is making a 2 belt balancer out of a 4 belt. The normal 2 belt balancer is a single splitter, which is 2x1. Using a 5x5 4 belt design with loop backs results in it becoming a 7x7. If it's the 4x7 design then the loop back results in a 6x8. That 6x8 is 24 times the size of the 2x1 single splitter. The 7x7 is 24.5 times the size of a 2x1.
I don't see that particular method being at all practical.
If we start with the base balancer then add splitters both before and after then it also expands. For example, a 2 belt balancer starts as a 2x1 and then with two splitters for each lane that adds 4 more and the total size becomes 6x5. That's 15 times the size of the original, so it's less than using a 4 belt. However, in fiddling with a 5x5 4 belt balancer using the 2 splitters for each lane it ends up as 11x15, maybe 11x14 with some squishing. Compare that to the 13x9 setup for a 4 belt balancer made from an 8 belt and it's certainly larger. The 11x14 is 154 squares and the 13x9 is 117 which makes the 11x14 roughly 31% larger. The 8 belt goes from 33x23 to 20x25, though I'd expect optimization potential in that one.
I'm not even going to try looping the 32 belt into a 16 and then using splitters on the 16 itself. The space and resources to get loop backs going is quite significant to simply prevent the unbalancing from happening due to blocked outputs.
And those numbers do not count loop backs. Using the method Yttrium describes, that 11x7 8 belt balancer becomes 13x9 with loop backs, and that's one of the better examples because its design allows for running two of the splits straight down through the middle. Running loop backs on that 25x15 16 belt balancer to turn it into an 8 results in a 33x23. That alone is more than nine times the area of one of the original 8 belt balancers.
An extreme case is making a 2 belt balancer out of a 4 belt. The normal 2 belt balancer is a single splitter, which is 2x1. Using a 5x5 4 belt design with loop backs results in it becoming a 7x7. If it's the 4x7 design then the loop back results in a 6x8. That 6x8 is 24 times the size of the 2x1 single splitter. The 7x7 is 24.5 times the size of a 2x1.
I don't see that particular method being at all practical.
If we start with the base balancer then add splitters both before and after then it also expands. For example, a 2 belt balancer starts as a 2x1 and then with two splitters for each lane that adds 4 more and the total size becomes 6x5. That's 15 times the size of the original, so it's less than using a 4 belt. However, in fiddling with a 5x5 4 belt balancer using the 2 splitters for each lane it ends up as 11x15, maybe 11x14 with some squishing. Compare that to the 13x9 setup for a 4 belt balancer made from an 8 belt and it's certainly larger. The 11x14 is 154 squares and the 13x9 is 117 which makes the 11x14 roughly 31% larger. The 8 belt goes from 33x23 to 20x25, though I'd expect optimization potential in that one.
I'm not even going to try looping the 32 belt into a 16 and then using splitters on the 16 itself. The space and resources to get loop backs going is quite significant to simply prevent the unbalancing from happening due to blocked outputs.
Re: Biggest Lane Rebalancer!
@Jackielope the balancers submitted dont need to have loopbacks, because they dont need to work whenone or more of the outputs is blocked
Re: Biggest Lane Rebalancer!
I have decided to post some examples to show people how the challenge works. These are from https://www.reddit.com/r/factorio/comme ... balancers/ Revised sets, and im using them with Madzuris permission. (Normally, you would need blueprint strings, but i was unable to obtain them)
Image Link: http://i.imgur.com/t8dFn2o.png?1
Scores:
one input, one output = NOT A BALANCER
one input, two output = ((1 * 2)squared) / ( 2 * 1) = 2
two input, one output = (( 2 * 1)squared) / ( 2 * 1) = 2
two input, two output = ((2 * 2)squared) / (2 * 1) = 8
one input, three output = (( 1 * 3)squared) / (4 * 2) = 1.125 (the reason this got a low score, is because it should be a 2 lane input and 4 lane output, but feedback lanes are used)
two input, 4 lane output = (( 2 * 4)squared) / (4 * 2) = 8
Image Link: http://i.imgur.com/t8dFn2o.png?1
Scores:
one input, one output = NOT A BALANCER
one input, two output = ((1 * 2)squared) / ( 2 * 1) = 2
two input, one output = (( 2 * 1)squared) / ( 2 * 1) = 2
two input, two output = ((2 * 2)squared) / (2 * 1) = 8
one input, three output = (( 1 * 3)squared) / (4 * 2) = 1.125 (the reason this got a low score, is because it should be a 2 lane input and 4 lane output, but feedback lanes are used)
two input, 4 lane output = (( 2 * 4)squared) / (4 * 2) = 8
Last edited by Virenz on Sat Feb 06, 2016 9:29 am, edited 1 time in total.
- Jackalope_Gaming
- Fast Inserter
- Posts: 230
- Joined: Wed Oct 07, 2015 10:11 pm
- Contact:
Re: Biggest Lane Rebalancer!
Here, have my 32 belt balancer. Dimensions are 53x30. Blueprint string is in the spoiler under the picture.
Blueprint
Re: Biggest Lane Rebalancer!
When i was making the scoring system i didnt realise that factorio didnt copy in the squared symbols. Then, a day later, i used the ones in the factorio post (which didnt have the squared) Sorry for all the confusion guys, all posts have been corrected and now we can start the challenge! Jackielope, your 32 x 32 belt balancer scores 659.481761! Well done!
Re: Biggest Lane Rebalancer!
Virenz apparently remembered this reddit post, dug it up and PM'd me there to come submit it here...
I won't embed the 18-meg screenshot, for the sake of those who don't want to download that over and over again, but you can see it here. Just to give an idea of what we're dealing with, I'll link the rather blurry and indistinct zoomed-out version, tho...
that's 256 input and outputs, and it measures in at 256 by 396. So, (256*256)^2/(256*396) = 42,366.70707...
my 16-lane balancer is 16x30, so 16^4/(16*30) = 16^3/30 = 136.533... probably not a particularly competitive score at that scale. For that matter, the 256 would probably not be very competitive if there were actually more people insane enough to make 256 belt balancers for this one to compete with.
The blueprint string is around half a meg, and may crash factorio if you paste it in. I'm linking the pastebin rather than including it in this post, because half a meg. pastebin blueprint string
I won't embed the 18-meg screenshot, for the sake of those who don't want to download that over and over again, but you can see it here. Just to give an idea of what we're dealing with, I'll link the rather blurry and indistinct zoomed-out version, tho...
that's 256 input and outputs, and it measures in at 256 by 396. So, (256*256)^2/(256*396) = 42,366.70707...
my 16-lane balancer is 16x30, so 16^4/(16*30) = 16^3/30 = 136.533... probably not a particularly competitive score at that scale. For that matter, the 256 would probably not be very competitive if there were actually more people insane enough to make 256 belt balancers for this one to compete with.
The blueprint string is around half a meg, and may crash factorio if you paste it in. I'm linking the pastebin rather than including it in this post, because half a meg. pastebin blueprint string
My Mods:
Nixie Tubes - numeric displays for your circuit networks!
Logistic Combinators - use logistics values in circuit logic! -
Autowire - automate red/green wire connections
Nixie Tubes - numeric displays for your circuit networks!
Logistic Combinators - use logistics values in circuit logic! -
Autowire - automate red/green wire connections
Re: Biggest Lane Rebalancer!
Yep, thats a big belt balancer @GopherAtl . I dont really know if i would call it a balancer though, its just shuffling up the entities, and then using the 16 lane balancers at the end, balances it properly. So i decided i would leave it up to you guys. Should we count this as a balancer in this competition, or not? Post a reply, and ill count up the results in three or four days.
Re: Biggest Lane Rebalancer!
These builds remind me very much of the Fast Fourier Transformation:
https://en.wikipedia.org/wiki/Fast_Fourier_transform
That has a computational complexity of O(n*log(n)). With factorio belts, the crossings also take space, so, I guess, the asymptotic size of a balancer is O(n^2*log(n)).
https://en.wikipedia.org/wiki/Fast_Fourier_transform
That has a computational complexity of O(n*log(n)). With factorio belts, the crossings also take space, so, I guess, the asymptotic size of a balancer is O(n^2*log(n)).
- Jackalope_Gaming
- Fast Inserter
- Posts: 230
- Joined: Wed Oct 07, 2015 10:11 pm
- Contact:
Re: Biggest Lane Rebalancer!
Huh, that Fast Fourier Transformation is exactly what I found when I was working on my 32 belt setup. My original Reddit post with the math can be found at https://www.reddit.com/r/factorio/comme ... th/cyw2mis.
An exanimation of my 32 belt balancer shows it does the +4 split and swap first, then the +2, and finally the +1. So the 1st 4 belt section splits and half goes straight up to 1 while the other half goes over to 5 (+4). Then section 1 splits again to sections 1 and 3 (+2), and finally 1 and 2 (+1). A 64 belt balancer would take a +8, then a +4, a +2, and finally a +1.
Another thing I noticed is that setup results in a fractal (as does the FFT), so I expect there are some mathematical models relating to fractals that could be useful in optimizing these designs.
Some observations regarding the swap points:
Half of all belts need to be swapped over in a given section. For example, if it's a 32 belt balancer then its biggest swap section has 16 belts to be swapped to the other side while the other 16 continue straight. Those 16 belts will be what defines how tall a given section is. If all of those belts had to be above ground at the same column then the absolute minimum height between splitter sections would be 16. However, underground belts reduce that number. Through belt braiding it's possible to have 3 belts occupy the same space as two, so that 16 can theoretically come down from 15+1 to 10+1. If there is enough space between splitters to run underground belts then one row per section can be reduced. Thus, in the 32 belt swap section the space needed to swap the 16 belts would theoretically come down from 16 to 10. Then the 16 balancer sections would need to swap 8 belts, so that part could go from 9 tiles tall (including the splitters) to 6 tiles tall.
But a catch with the smaller ones is needing to incorporate the 2x1 splitters themselves on the correct belts, so the height on perhaps all balancers would be increased owing to them either needing to be oriented vertically where the belts are moving horizontally or to have room to have inputs and output for a horizontally oriented splitter.
Bit of a fun mess.
An exanimation of my 32 belt balancer shows it does the +4 split and swap first, then the +2, and finally the +1. So the 1st 4 belt section splits and half goes straight up to 1 while the other half goes over to 5 (+4). Then section 1 splits again to sections 1 and 3 (+2), and finally 1 and 2 (+1). A 64 belt balancer would take a +8, then a +4, a +2, and finally a +1.
Another thing I noticed is that setup results in a fractal (as does the FFT), so I expect there are some mathematical models relating to fractals that could be useful in optimizing these designs.
Some observations regarding the swap points:
Half of all belts need to be swapped over in a given section. For example, if it's a 32 belt balancer then its biggest swap section has 16 belts to be swapped to the other side while the other 16 continue straight. Those 16 belts will be what defines how tall a given section is. If all of those belts had to be above ground at the same column then the absolute minimum height between splitter sections would be 16. However, underground belts reduce that number. Through belt braiding it's possible to have 3 belts occupy the same space as two, so that 16 can theoretically come down from 15+1 to 10+1. If there is enough space between splitters to run underground belts then one row per section can be reduced. Thus, in the 32 belt swap section the space needed to swap the 16 belts would theoretically come down from 16 to 10. Then the 16 balancer sections would need to swap 8 belts, so that part could go from 9 tiles tall (including the splitters) to 6 tiles tall.
But a catch with the smaller ones is needing to incorporate the 2x1 splitters themselves on the correct belts, so the height on perhaps all balancers would be increased owing to them either needing to be oriented vertically where the belts are moving horizontally or to have room to have inputs and output for a horizontally oriented splitter.
Bit of a fun mess.
- Jackalope_Gaming
- Fast Inserter
- Posts: 230
- Joined: Wed Oct 07, 2015 10:11 pm
- Contact:
Re: Biggest Lane Rebalancer!
That's the thing about all balancers though: There are sections for shuffling and then the splitters do the balancing. It's all about how you feed the belts to the splitters. The shuffle sections are what make up the largest part of balancers since the splitters themselves are so small relatively.Virenz wrote:Yep, thats a big belt balancer @GopherAtl . I dont really know if i would call it a balancer though, its just shuffling up the entities, and then using the 16 lane balancers at the end, balances it properly. So i decided i would leave it up to you guys. Should we count this as a balancer in this competition, or not? Post a reply, and ill count up the results in three or four days.
Re: Biggest Lane Rebalancer!
what Jackielope said... it is a balancer. I mean, the 16 balancers at the start and end do the same thing - they balance groups of 4 belts at the start and end, and in between they shuffle lanes so one lane from each input group of 4 gets sent to each output group of 4. It is most definitely a balancer. If the 256 inputs were all 256 different kinds of items, each individual output would get equal amounts of each of those inputs.Virenz wrote:Yep, thats a big belt balancer @GopherAtl . I dont really know if i would call it a balancer though, its just shuffling up the entities, and then using the 16 lane balancers at the end, balances it properly. So i decided i would leave it up to you guys. Should we count this as a balancer in this competition, or not? Post a reply, and ill count up the results in three or four days.
:edit: in terms of compactness and efficiency, it is, quite admittedly, awful. I made it mainly as a joke, as there'd been a string of bigger and bigger belt balancers on reddit at the time, and my primary design goal was to make it easy to blueprint portions of it so I could finish it in my lifetime, and to keep the design straight-forward enough that it's correctness is obvious if you take a moment to study it.
My Mods:
Nixie Tubes - numeric displays for your circuit networks!
Logistic Combinators - use logistics values in circuit logic! -
Autowire - automate red/green wire connections
Nixie Tubes - numeric displays for your circuit networks!
Logistic Combinators - use logistics values in circuit logic! -
Autowire - automate red/green wire connections
Re: Biggest Lane Rebalancer!
Thats because they are!These builds remind me very much of the Fast Fourier
16 Balancer explained
As you can see a good design requires custom 4, 8 and higher balancers in order to avoid symmetry.-
- Long Handed Inserter
- Posts: 80
- Joined: Sat Jan 10, 2015 3:42 am
- Contact:
Re: Biggest Lane Rebalancer!
This has inspired me to make incredibly large belt balancers that are as compact as possible. Good god, I'm never going to get anything done...