팩린이인 나는 기차의 회전률을 높일 수 없을까 고민하다가 불균형한 투입이 문제임을 발견했다.
가장자리가 먼저 바닥나서 가운데 네 줄만 작동하고 있었다.
하지만 분배기를 이리저리 돌려봐도 도저히 균등하게 6분할 할 수 있는 방법이 없었다.
기차가 8칸이면 딱 좋았을 텐데... 가슴이 아팠지만 별 수 없었다.
그러던 중
밸런서라는 개념을 발견했고, 1 대 6 밸런서가 가능함에 감탄을 금치 못했다
여기에 흥미를 느낀 나는 밸런서의 원리와, 더 나아가 모든 n 대 m 밸런서가 가능한 지가 궁금해졌고,
몇날며칠을 고민하다가 오늘 런닝머신 위에서 간단한 해법을 찾았다.
혹시 나처럼 궁금했을 사람들을 위해 이를 공유하고자 한다.
밸런서는 크게 세 카테고리로 분류할 수 있다.
1. 입력과 출력의 갯수가 같은 경우 (6 대 6)
2. 입력이 출력보다 적은 경우 (1 대 6)
3. 입력이 출력보다 많은 경우 (7 대 6)
먼저 1번의 경우
가장 간단한 형태는 2:2 이고, 분배기 자체가 이 기능을 한다.
다음으로 3 : 3은 잠깐 건너뛰고 4:4 부터 보자.
2:2 밸런서, 즉 분배기 두 개를 나란히 놓고 출력들을 각각 분배기로 합쳐주면 완성이다.
같은 방식으로 4:4를 맞붙여준다면? 8:8 밸런서가 만들어진다. 이는 무한히 반복할 수 있다.
이로써 2:2, 4:4, 8:8, 16:16 … 2^n:2^n 형태의 밸런서를 모두 만들었다.
이제 8:8 밸런서를 가져와 가장 끝쪽 입력 벨트 위에서 F를 누르고 서 있어 보자
그렇다, 7:8 밸런서를 만든 것이다.
여기서 입력라인을 원하는 만큼 지운다면?
그렇다, 8:8 밸런서를 만들면 1:8, 2:8 … 7:8, 8:8 밸런서를 모두 만들 수 있게 된다.
이번엔 7:8 밸런서에서 출력 라인 하나를 빈 입력 라인에 루프 형태로 연결해보자.
그렇다, 7:7 밸런서가 만들어졌다.
같은 방식으로 출력라인을 원하는 만큼 입력에 연결하면?
1:1, 2:2, 3:3 … x:x 형태의 밸런서를 모두 만들 수 있게 되었다.
이로서 1, 2번의 경우는 모두 가능하다는 사실을 확인했다.
이제 3번, 출력의 갯수가 입력보다 적은 경우이다. 이 경우는 매우 쉽다.
왜냐하면 우리는 사실 이러한 밸런서를 거의 만들 줄 알기 때문이다.
가장 간단한 형태인 x:1 밸런서를 머릿속에 떠올려보자.
그렇다, 바로 메인버스이다.
이번엔 x:5 밸런서를 만들어보자
끝에서부터 분배기 4개를 제거해주고,
5:5 밸런서를 이어주면 완성이다!
x:2, x:3, x:4, x:6 .. 모두 같은 방법으로 만들 수 있다.
이로써 모든 n:m 밸런서가 가능하다는 사실을 확인했다.
하지만 이 방식은 실용적이지는 않다.
왜냐하면 분배기가 쓸데없이 많이 들어가서 부피가 크기 때문이다.
가장 작은 크기의 밸런서, 즉 분배기를 최소로 사용한 밸런서를 만들기 위해서는 아예 다른 방식으로 접근해야 한다.
모든 n:m 밸런서에서 최소 크기도 일반화하고 싶었지만.. 이건 너무 빡셌다.
참고로 레딧에 1:8 부터 8:8까지 다이어그램으로 정리한 자료가 있었는데 몇몇개 빼고는 최소 크기임
https://factoriobin.com/post/KafN8H7L
귀찮으면
그냥 요거 긁어다가 설계도에 집어넣으면 편함
copy 눌러서 문자열 복사하고 안에서 붙여놓고 B 눌러서 설계도 들어간다음 거기에 저장 이후 우클릭해서 들어가면 노랑, 빨강, 파랑 있고 안에 1to1부터 8to8까지 있음 업그레이드, 다운그레이드도 있더라
나두 이거 씀.. 근데 너무 넓어 자리가..
흑흑 너무 아름답다
오늘의 팁 : 사실 중앙상자에 버퍼 쌓이는게 보기 나쁜 거지, 벨런싱 안해도 장기적인 운송량은 똑같다. 화물칸끼리만 밸런싱 해주면 됨
열차의 정차시간이 짧아지니 특정 품목의 운송량은 똑같아도 전체 시스템의 운송량은 효율이 좋아지거나 늘어날 수 있겠지 - dc App
다중상하차 할 거 아니면 특정 품목 운송량이랑 전체시스템 운송량이랑 관련이 없다. 근데 다중상하차는 애초에 큰 상자 써야돼서 화물차간 밸런싱만 하면 된다. 밸런싱 잘 안돼서 한쪽 상자가 비고 상차속도가 느려보이는건 밸런싱의 문제가 아니라 그냥 생산 딸려서 애초에 모튼 투입기가 활성화 될 만큼의 물류량이 아닌 거임
괜히 버퍼가 시간끄니까 생산량은 적절한데 상하차가 느린데? 라는 착각을 하게됨. 실제로는 생산속도가 상하차속도보다 빠르면 모든상자에 자원이 들어갈 수밖에 없음. 그리고 장기적으로 수송량은 생산량보다 많을 수가 없고(버퍼때문에 일시적으로 많아보일 뿐). 복잡하면 버퍼 작게 설정하면 체감됨. 사실 버퍼는 다음 열차 올때까지의 시간만 버텨주면 되니까
근데 하차는 밸런서 있어야 함. 벨트에 자원 올려놓는 건 무조건 버퍼상자에서 균일하게 꺼내야 되니까...
구리판을 6줄 풀벨로 생산해서 보내면 되는 것 아닌가?
4대 4 저렇게 만들면 특정 상황에서 작동 제대로 안하는 이유 있었던거같은데 까먹음
언리미미티드 밸런서라구 출력 하나 막혀도 나머지 출력 정상적으로 되는 거
아 맞아 ㄱㅅㄱㅅ 출력 하나 막혔을때 소비 균형 안맞는거 그거때문에 밸런서 설계할때 신경쓸게 너무 많아짐 하는 사람들 보면 신기하더라
https://factorioprints.com/
에서 찾아서 쓰셈