https://gall.dcinside.com/m/factorio/85163
다른 건 그래도 어느정도 이해 했지만
발차 신호 부분이 잘 이해 안 간다
예를 들어서 철 상차역은 2개가 준비 됐는데
철 하차역은 1개만 준비됐어
그때 기차가 상차역 2개로 전부 출발하는 걸 막기 위한 신호라는데
내가 이해한 게 맞다면
1. 상차역의 버퍼가 가득 차서 철 신호 1개를 보낸다
2. 첫번째 기차가 그 신호를 받고 철 상차역으로 출발한다
3. 철 상차역에서는 기차가 이곳으로 출발했으니 C 신호를 생성한다
4. 조합기에서 C 신호를 받아서 철 신호 -1개로 변환시켜서 보낸다
5. 상차역의 철 신호 1개와 조합기의 철 신호 -1개가 상쇄된다
6. 두번째 기차 차례가 왔을 때는 철 신호가 이미 사라졌으니 두번째 기차는 출발하지 않는다
이렇게 작동하는 게 맞나?
근데 이러면 철번째 기차가 상차역에 도착해서 철을 상차하는 동안은
1. 버퍼가 더이상 가득 차지 않았으니 상차 역에서 더이상 철 신호를 보내지 않는다
2. 상차역에 기차가 정차중이기 때문에 C 신호는 여전히 나간다
3. 결과적으로 상차를 하는 도중에는 철 -1개의 신호가 나가게 된다
4. 첫번째 기차가 상차중일 때 두번째 하차역이 준비 되서 하차 신호를 보냈음
5. 그러면 두번째 상차역과 두번째 하차역이 준비되었기 때문에 두번째 기차가 출발해야하지만
6. 첫번째 상차역에서 내보내는 철 -1 신호와 두번째 상차역에서 내보내는 철 +1 신호가 상쇄되어 두번째 기차가 출발하지 못 한다
이런 문제가 생기지 않나?
상차역에서 상쇄시키는 신호는 하차역의 하차신호니까
상차신호와 하차신호를 분리하는이유임 잠깐 차 좀 세우고 자세히써줄게
아... 자세히 보니까 -1 신호 주는 건 하차 신호로만 주는구나 그래도 여전히 기차에서 상하차 하는 도중에는 하차 신호가 -1개 찍혀서 두번째 기차 출발 못 하는 거 아닌가?
철판 공급역이 2개고 버퍼(재고)가 충분히 있는 역은 1개라고 하자 공급신호는 빨강에서 철판 = 1 철판 하차역이 3개고 3개 전부 물품하차 요청을 한다고 하자 하차신호는 초록에서 철판 = 3 우선 대기역 발차조건은 공급역과 하차역이 둘다 1 이상이어야만 출발함 따라서 1대는 출발함, 빨강 > 0 초록 > 0 이니까
공급역으로 달려가는 기차에 의해 C신호가 발생하고 이를 연산기를 통해 마이너스 신호로 바꿔서 초록 신호로 쏴줌 따라서 초록신호는 3-1 = 2 공급신호조건은 C=0 그리고 재고물량이 일정이상이어야함 따라서 C=1이므로 조건이 불만족되어 빨강신호가 하나 없어짐 빨강신호는 0
빨강 >0 그리고 초록 >0 이어야하는 대기역발차조건을 만족하지 않기 때문에 다음기차는 출발하지 않음 이 순간에 다른 공급역에서 재고가 충분해 신호를 내보낸다고 하자 그럼 C=0 그리고 재고물량있음 이므로 빨강신호가 1개 생김 빨강 = 1 초록 =2 가 되므로 다음 발차신호 빨강 >0 그리고 초록 >0 이 성립하여 출발함
딜레이 생기는 부분은 있음 예시를 들면 어떻게 우연이 발생해서 기차가 딱 하차역에 도착해서 하차를 하는 도중 하차역의 재고물량이 일정수준넘어갔지만 아직 화물칸에 화물이있어서 계속 하차중인데, 그 순간 다른 하차요청이 발생하면 잉여 마이너스신호가 발생하여 다른 하차신호를 상쇄하는 찐빠가 있는데, 해결할 방법은 있는데 하차를 끝내고 하차역에서 기차가 출발하는순간 마이너스 신호가 사라져서 정상작동하기도 하고 이 조건을 만족하는경우가 드물어서 이부분까지 굳이 최적화를 하진 않았음
오우... 이제 좀 이해 가는 거 같기도 하고... 이거 계속 반복하면서 읽어봐야겠다ㅋㅋㅋㅋ 자세한 답변 고마워! 덕분에 기차 잘 싸먹고 있어!
이거 최적화하려면 생각을 더 해야되는데 버퍼량이하일때만 마이너스 신호가 발생하게 하면되는데 지금 신호가 겹치거든 따라서 버퍼(재고량)신호를 다른신호로 변환해서 그 신호 이하일때만 마이너스 신호가 발생하게 하면될거임 수량비교조합기를 한개 더써야할거야