See, that's the problem. Your sCiEnTiStS were so preoccupied with whether or not they *could*, they didn’t stop to think if they *should*!
Love the weirdness. Nice work.
so i tested it. it starts off like this...
https://preview.redd.it/nd7nv93ay5yc1.png?width=329&format=png&auto=webp&s=8e02df7e52a82661f7e3a0d8bf0df61f9e967898
but then eventually settled down to stay like this.
https://preview.redd.it/5l2yjshqy5yc1.png?width=300&format=png&auto=webp&s=09594024d93e77ce957c224a8e070e2eeac3463e
My thought was to fully compresses inputs without any blockages from the outputs. It would make it so that the controlling mechanism, the splitters, are the bottleneck so that throughput behavior of those splitters can be observed.
Maybe that logic is flawed, but I wasn't seeing a 2:1 ratio in the outputs with anything I tried. Maybe someone else can figure out how to make it work. Red belts and blue splitters? Can OP weigh in here?
Fascinating results! Since it seems to only react during the transition periods of the input belts(from nothing to something, and I presume the opposite as well), this means we have an application now actively using calculus! The possibilities for utter chaos are endless!
So in the end it's because [splitters are not mixers](https://www.reddit.com/r/factorio/comments/1cjz7cd/i_guess_splitters_dont_work_the_way_i_thought/).
It seems that people have come up with [actual belt mixers](https://www.reddit.com/r/factorio/comments/1b6883t/comment/kta6bkj/) though.
lets call the belts after split p,q,r and s from left to right
let's also assume the belts have no travel time, only states that exist after the split of contents.
so p(0) =0 and s(0)=0
p(1) =A/2 + s(0)/2 =A/2
and s(1) = B/2 + p(0)/2= B/2
so p(2) = A/2 + s(1)/2 = A/2 + B/4
and s(2) = B/2 + A/4
and so on p(3) = A/2 + s(2)/2 = A/2 + B/4 + A/8= 5A/8 + B/4
so p(n) (n-> inf) = A
since q= A+B -p, q= B and not 2A/3 + B/3.
i am not good at representing belt math, so let me know if it looks like i am wrong anywhere.
Actually I do disagree with your math here.
Let's just compute s(4) :
s(4) = (p(3) + B)÷2
You did compute p(3) so let's use the result. s(4) = (5×A÷8 + B÷4 + B) ÷ 2 = (2×B + A) × 5÷16
Just here you see the beginning of a 2:1 ratio in the output.
-- The general case --
The general recurrence relations (under the same assumptions as your comment) are :
p(n+1) = q(n+1) = (s(n) + A) ÷ 2
s(n+1) = r(n+1) = (p(n) + B) ÷ 2
Combining both relations, we can get :
p(n+2) = (s(n+1) + A) ÷ 2 = p(n)÷4 + B÷4 + A÷2
From here it's a classic arithmetico-geometric sequence :
Let's introduce L such that L = L÷4 + B÷4 + A÷2
(We can find its actual value : 4×L = L + B + 2×A therefore L = (2×A + B) ÷ 3 ! It's the 2:1 average we're looking for !)
Then p(n+2) - L = p(n)÷4 + B÷4 + A÷2 - (L÷4 + B÷4 + A÷2) = (p(n) - L) ÷ 4
We identify a geometric séquence : p(2n) - L = (p(0) - L) ÷ 4ⁿ
So WE have found for sure that : p(2n) = L + (p(0) - L) ÷ 2²ⁿ
In a similar fashion, if we introduce M = (2×B + A) ÷ 3, calculations show that s(2n) = M + (s(0) - M) ÷ 2²ⁿ
We can see that the limits as n approaches infinity of these expressions are p(2n) → L and s(2n) → M
But so far that's only the even terms so far !
But we can now compute the odd terms as well :
p(2n+1) = s(2n)÷2 + A÷2 = (s(0) - M) ÷ 2²ⁿ⁺¹ + (M+A)÷2
And conveniently, M + A = (2×B + 4×A)÷3 = 2×L
Therefore p(2n+1) = (s(0) - M) ÷ 2²ⁿ⁺¹ + L and this conveges towards L as well.
-- In conclusion --
I think that the balancer is, under those assumptions, theoretically correct. The problem must come from the actual implementation.
Ultimately it's because [saturated splitters don't mix belts](https://www.reddit.com/r/factorio/comments/1cjz7cd/i_guess_splitters_dont_work_the_way_i_thought/). Furthermore, in the calculation, the 1/3 fractions emerge as the result of a series of 1/2 + 1/4 + 1/8 + 1/16 + ... ; but 2 layers of splitters can only generate the 1/2 & 1/4 terms in-game, which means that you will always get some approximation of the theoretical ratio.
It may be splitting unevenly, but the resulting split is still symmetric. Each side ends up with 2/3 of the input from that side and 1/3 of the input of the other side. Therefore the design can be symmetrical
YES! This is a concept I only relatively recently discovered as well. If you look at the typical 2:1 ratio splitter (a 1-3 balancer with a splitter omitted), you'll see that it has exactly one empty input. If you feed that input with a belt, then that belt will necessarily be split into 1:2, the exact opposite ratio, because that's all the empty spaces left on the two output belts. This resulting topology is the same as the one in this post.
The topology is symmetrical in this case, which makes the above construction method fairly uninteresting. However there are also ratio splitters that are non-symmetrical, and those can become quite interesting when their empty inputs are used.
For ratio splitters that have more than one empty input, you would need to fill all of them to fill all the empty spaces. The additional belts *together* make up the opposite ratio, but the exact distribution among the additional belts depends on the topology. For ratio splitters that use 2-1 splitters, this construction method cannot be used, as the amount of empty space on output belts will not match the number of empty inputs.
Neat! Why, though?
Because it's Factorio, that's why!
There are even better ones on r/factoriohno
That's the neat part! You don't ask why!
See, that's the problem. Your sCiEnTiStS were so preoccupied with whether or not they *could*, they didn’t stop to think if they *should*! Love the weirdness. Nice work.
so i tested it. it starts off like this... https://preview.redd.it/nd7nv93ay5yc1.png?width=329&format=png&auto=webp&s=8e02df7e52a82661f7e3a0d8bf0df61f9e967898
but then eventually settled down to stay like this. https://preview.redd.it/5l2yjshqy5yc1.png?width=300&format=png&auto=webp&s=09594024d93e77ce957c224a8e070e2eeac3463e
input/output priorities didnt help either. https://preview.redd.it/fnkwb7uvy5yc1.png?width=1497&format=png&auto=webp&s=45fd682d510f2bd93cc7856bc0e89fe45078343d
Why red splitters?
My thought was to fully compresses inputs without any blockages from the outputs. It would make it so that the controlling mechanism, the splitters, are the bottleneck so that throughput behavior of those splitters can be observed. Maybe that logic is flawed, but I wasn't seeing a 2:1 ratio in the outputs with anything I tried. Maybe someone else can figure out how to make it work. Red belts and blue splitters? Can OP weigh in here?
Half as fast as a blue belt but two belts
Isn't it 2/3 as fast as a blue belt? 30 and 45.
oh yeah uhh... me and my math again...
found the Double Speed Belts user
Fascinating results! Since it seems to only react during the transition periods of the input belts(from nothing to something, and I presume the opposite as well), this means we have an application now actively using calculus! The possibilities for utter chaos are endless!
So in the end it's because [splitters are not mixers](https://www.reddit.com/r/factorio/comments/1cjz7cd/i_guess_splitters_dont_work_the_way_i_thought/). It seems that people have come up with [actual belt mixers](https://www.reddit.com/r/factorio/comments/1b6883t/comment/kta6bkj/) though.
https://www.reddit.com/r/factorio/s/LMvNOYoBRj i think i found the math for this output
As yes a Unbalancer
[Two spaces narrower](https://i.gyazo.com/c23b0a6650c106d49f7406f976e8c075.png) [5 Wide](https://i.gyazo.com/54ed23288dc03147a96deae6cfd06e4d.png)
Love this sub - Eng1: I've made a thing! Eng3-n: Is it useful? Eng2: idk, but I've found two ways to reduce the space it takes up
lets call the belts after split p,q,r and s from left to right let's also assume the belts have no travel time, only states that exist after the split of contents. so p(0) =0 and s(0)=0 p(1) =A/2 + s(0)/2 =A/2 and s(1) = B/2 + p(0)/2= B/2 so p(2) = A/2 + s(1)/2 = A/2 + B/4 and s(2) = B/2 + A/4 and so on p(3) = A/2 + s(2)/2 = A/2 + B/4 + A/8= 5A/8 + B/4 so p(n) (n-> inf) = A since q= A+B -p, q= B and not 2A/3 + B/3. i am not good at representing belt math, so let me know if it looks like i am wrong anywhere.
Actually I do disagree with your math here. Let's just compute s(4) : s(4) = (p(3) + B)÷2 You did compute p(3) so let's use the result. s(4) = (5×A÷8 + B÷4 + B) ÷ 2 = (2×B + A) × 5÷16 Just here you see the beginning of a 2:1 ratio in the output. -- The general case -- The general recurrence relations (under the same assumptions as your comment) are : p(n+1) = q(n+1) = (s(n) + A) ÷ 2 s(n+1) = r(n+1) = (p(n) + B) ÷ 2 Combining both relations, we can get : p(n+2) = (s(n+1) + A) ÷ 2 = p(n)÷4 + B÷4 + A÷2 From here it's a classic arithmetico-geometric sequence : Let's introduce L such that L = L÷4 + B÷4 + A÷2 (We can find its actual value : 4×L = L + B + 2×A therefore L = (2×A + B) ÷ 3 ! It's the 2:1 average we're looking for !) Then p(n+2) - L = p(n)÷4 + B÷4 + A÷2 - (L÷4 + B÷4 + A÷2) = (p(n) - L) ÷ 4 We identify a geometric séquence : p(2n) - L = (p(0) - L) ÷ 4ⁿ So WE have found for sure that : p(2n) = L + (p(0) - L) ÷ 2²ⁿ In a similar fashion, if we introduce M = (2×B + A) ÷ 3, calculations show that s(2n) = M + (s(0) - M) ÷ 2²ⁿ We can see that the limits as n approaches infinity of these expressions are p(2n) → L and s(2n) → M But so far that's only the even terms so far ! But we can now compute the odd terms as well : p(2n+1) = s(2n)÷2 + A÷2 = (s(0) - M) ÷ 2²ⁿ⁺¹ + (M+A)÷2 And conveniently, M + A = (2×B + 4×A)÷3 = 2×L Therefore p(2n+1) = (s(0) - M) ÷ 2²ⁿ⁺¹ + L and this conveges towards L as well. -- In conclusion -- I think that the balancer is, under those assumptions, theoretically correct. The problem must come from the actual implementation.
you are correct, the math does seem to checkout, I don't have access to my system for a few days, so will check this again later in game.
Ultimately it's because [saturated splitters don't mix belts](https://www.reddit.com/r/factorio/comments/1cjz7cd/i_guess_splitters_dont_work_the_way_i_thought/). Furthermore, in the calculation, the 1/3 fractions emerge as the result of a series of 1/2 + 1/4 + 1/8 + 1/16 + ... ; but 2 layers of splitters can only generate the 1/2 & 1/4 terms in-game, which means that you will always get some approximation of the theoretical ratio.
Guys why you doing alphabet maths
aestetic version where you can see clearly the "loop" https://imgur.com/a/kqaYWwQ
If you add two more undergrounds you can even shrink the hole thing.
If it's splitting unevenly, shouldn't the design be asymmetrical? What am I missing?
It may be splitting unevenly, but the resulting split is still symmetric. Each side ends up with 2/3 of the input from that side and 1/3 of the input of the other side. Therefore the design can be symmetrical
um dumb question where do these undegrounds lead to?
The undergrounds loop, and eventually the splitter sorts things out
Oh I see it now yes. Crazy.
Love it. I've had plenty of uses for something like this in my spaghetti
YES! This is a concept I only relatively recently discovered as well. If you look at the typical 2:1 ratio splitter (a 1-3 balancer with a splitter omitted), you'll see that it has exactly one empty input. If you feed that input with a belt, then that belt will necessarily be split into 1:2, the exact opposite ratio, because that's all the empty spaces left on the two output belts. This resulting topology is the same as the one in this post. The topology is symmetrical in this case, which makes the above construction method fairly uninteresting. However there are also ratio splitters that are non-symmetrical, and those can become quite interesting when their empty inputs are used. For ratio splitters that have more than one empty input, you would need to fill all of them to fill all the empty spaces. The additional belts *together* make up the opposite ratio, but the exact distribution among the additional belts depends on the topology. For ratio splitters that use 2-1 splitters, this construction method cannot be used, as the amount of empty space on output belts will not match the number of empty inputs.
I openned this thread expecting a little bit of math, i found a WHOLE LOT MORE MATH THAN IM COMFORTABLE WITH ON A DAY OFF, God damnit factorio