https://forums.factorio.com/viewtopic.php?f=194&t=18621

좀 된 글이라 지금에 완전히 적용되는지는 모르겠음.
저 글을 읽고 내가 분류한 데드락은 크게 세가지임

1. 신호기 잘못 박아서
2. 역에 대기공간 부족으로 인한 정차
3. 루프에 의한 데드락


1번 2번은 일단 교차로에 적용되는 내용임

1번의 경우는 연속신호만 똑바로 박으면 사실 문제될게 없음
2번은 역 입구에 대기공간을 만들거나 역에 기차 수 제한을 걸면 됨

근데 3번은 좀 복잡해짐...
일단 3번은 아무리 교차로가 데드락에서 자유롭다 하더라도 철도 네트워크 단위에서 발생할 수 있게됨.

지금 폰이라 사진을 긁어오긴 좀 그래서 대충 설명하자면
하나의 그리드를 감싸는 정방의 철도는 결국 하나의 거대한 루프(로터리)로 볼 수 있는데,
로터리 교차로는 연속신호를 똑바로 박으면 로터리 내에서 데드락이 일어날리가 없지만
그리드를 감싸는 루프는 그리드의 변(직선부분)에 일반신호가 박히므로 마치 일반신호가 박힌 거대한 로터리가 되는 거임.
마치 1번의 상황이 연출되는 거지.

이게 적은 통행량에서는 문제가 안됨.
그리드를 감싸는 거대한 로터리(루프)는 자체적으로 대기열(직선)을 가지고있고, 대체로 열차의 길이가 로터리에 비해 매우 작아서 데드락이 생기기 쉽지 않음.

근데 통행량이 많으면 문제가 됨.

하나의 그리드 네 변에 각각의 변을 꽉 채울만큼의 열차가 들어오게되고, 네 모퉁이 열차가 모두 좌회전을 하고자 한다면 루프가 생기게되고 데드락이 발생함.

사실 이정도 상황이면 본인이 그리드를 너무 작게한게 아닌가 혹은 열차가 너무 짧아서 수송량이 적은건 아닐까 하는 반성을 하는게 맞지만, 이론적인 얘기니까 제쳐두자.
극단적인 통행량과 네 변에 좌회전을 하려는 기차가 '동시에' 진입하는 상황은 오히려 더 이상적인 상황이기도 하지만...

어쨋든 복선철도에서 결국 열차는 돌고 돌아야하기 때문에 어딘가에는 루프가 생기게 되고, 이론적으로는 데드락이 없을 수가 없다.


물론 이런 극단적인 통행량 속에서도 데드락을 줄이는 방법은 여러가지가 있을 수 있는데, 통행량이 특히 많을것으로 예상되는 '그리드'는 우회경로를 사용하면 부분적으로 해결된다.

루프 내에 있는 교차로가 루프를 돌기위한 신호를 대기하고 있기때문에, 교차로에서 기차가 가려던 길을 포기하고 그리드 내의 다른 우회로를 탐색하도록 하는 거임.
이 경우 교차로 입구의 신호구조가 중요한데, 연속신호의 위치가 좌,우,직진으로 갈라지기 전에 있어야 함. 그래야지 루프로 가려던 기차가 다른 경로로 갈 수 있다.

하지만 근본적인 해결책은 아닌것이, 우회로를 선택하면 하나의 열차는 2개 내외의 교차로 트래픽을 추가로 발생기시키기 때문에 결국 네트워크의 통행량은 더 증가하게 되고, 또 어딘가에서는 데드락의 위험이 기다리고 있다.


더 근본적인 해결책은 통행량을 낮추는 것.
애초에 그리드 자체가 현실이랑 굉장히 동떨어진 시스템이고, 그리드 중앙부분은 통행량이 적을 수가 없기때문에 최적화를 해야한다.
생산과 소비의 연쇄가 가능한 가까운 그리드 내에서 이루어져야 하고, 그리드의 크기나 물류량에 적절한 대기공간과 철도길이를 정해야 한다.
경우에 따라서는 그리드의 크기도 중요하다(크다고 통행량이 줄어들진 않는다. 직선철로가 길어지는게 긍정적일지 부정적일지는 열차 길이마다 다름)
더 나아가서는 복복선을 이용하거나 데드락시에만 사용하는 단선을 추가해 3선을 운용할 수도 있겠다. 복복선은 교차로가 많은 그리드에서는 그다지 큰 통행량 추가를 기대하기는 어렵지만(교차로의 트래픽 수용량은 복선이나 복복선이나 비슷함), 복복선 자체가 두개의 거대 로터리를 제공하기 때문에 우회로를 만들어 데드락을 줄일 수 있다. 3선의 경우는 이론적으로나 가능하지 신호를 박기가 애매해서 현실적으로는 어려울 수도 있겠다.
그리드 한정으로 복복선은 통행량을 늘리기보다는 이미 많은 통행량에서 데드락이을 줄이는 역할이 더 크다고 볼 수 있다. 추가되는 선로가 통행량보다는 우회로와 대기열의 역할을 하기 때문임.


추가로 경로변경에 의한 데드락도 있을 수 있는데, 이건 좆같은 상황이라 다루지 않겠다. 나도 잘 모르겠음.







결론

데드락을 없애려면

교차로는 출구 빼고 연속신호 박기
하나의 역에 가려고 대기하다가 정차하는 열차가 없게하기(대기열을 만들거나 열차수 제한)
통행량 줄이기



내가 잘못 생각하는 부분이 있을 수도 있다. 틀릴수도 있음
글을 쓴 이유는... 그냥 혼자 정리해본거