나중에 순정으로 대형모드 도전해 보려고 해

그리드에서 열차설정을 하나하나 하지 말고, LTN을 직접 구현해 보는게 목표야


일단 대부분의 아이디어는 기존 LTN 시스템에서 얻을 거야


LTN은 기존의 물류네트워크를 기차로 옮겼다고 볼 수 있는데, LTN은 기차의 스케쥴을 직접 설정해서 이를 구현하고 있어.

대기역은 일종의 로보포트가 되는 거고


LTN을 어떻게 회로로 구현할지 막막하니까, 한번 실제로 [대기-요청-공급-대기] 과정을 상상해보자

전역 회로 네트워크를 사용하게 될거라 세세한 부분은 건너뛰면서 생각할게



//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////


//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////



[대기]

일단 어딘가 대기역이 존재할 거야

대기역에 대기하는 열차는 회로신호에 의해 출발을 하지 않겠지

출발을 막는 방법은 열차신호로 경로를 막는 방법도 있는데, 일단은 굳? 이 싶어


[요청]

요청역은 나름의 원리로, 세팅해놓은 값보다 상자에 자원이 적으면 자원을 요청할 거야

일단 다중상하차는 생각하지 말고, 하나의 자원을 요청한다 해보자


요청역은 부족한 자원에 대해 전역네트워크에 요청을 알리겠지?

네트워크 어딘가에서는 공급역이 이 요청을 인지할테고, 상호작용을 통해 요청역은 자신이 수락받았다는 사실을 기억하면 요청역의 할일은 끝이야


기차가 와서 자원을 놓고갈때까지 중복으로 요청만 안하게 잘 만들면 돼


[공급]

공급역이 슬슬 문제가 생겨

역시나 나름의 원리로 요청한 자원보다 공급역의 자원이 많음을 계산했다고 치자.

근데 그런 공급역이 두개를 넘어간다면 어떻게 될까?


설계를 잘못하면, 대기역의 열차 두대가가 두개의 공급역으로 달려가고, 결국 하나의 요청에 두개의 공급이 생기는 불상사가 발생해


그러면 여기서 여러개의 공급역중에 어떤 공급역에서 공급해야 할지를 골라야 될 거 같아

근데 이걸 어떻게 고를까... 좀 복잡한데 중요한 부분이라 생각하고 일단 잘 해결했다고 치자

문제가 많아서 이거부터 따지기 어려울 거 같아


어쨋든, 역 하나를 잘 골라서... 대기역에서 한대가 출발하고... 하나의 공급역에... 한대가 정확히 도달해서.. 화물차에 자원을 잘 실었어

근데 아까 요청했던 역이 어디지? 이런 상황은 ㅈ된거야

공급역이 요청역을 찾아야 하는 이상한 상황이 나타났어


네트워크는 전역으로 이루어지기 때문에, 전역 네트워크가 하나의 요청-공급을 끝까지 기다려줄 수 없어

그러니까 열차는 아까 요청역이 누구인지 기억할 필요가 있다는 거야

근데 열차가 어떻게 요청역을 기억해. 공급역에 있는 회로가 기억하게 할 거야


이것도 좀 복잡할 거 같은데.. 어떻게 어떻게 잘 해결했다고 쳐보자


그러면 이제 산전수전 다 겪은 공급역의 열차는 요청역으로 출발할 거야

요청은 아까부터 간절히 회로에 요청했다는 사실을 기억하며 이 열차를 기다렸겠지


요청역은 이제 아까 요청했다는 기억을 지우고 새로운 요청을 대기해도 될 거 같아

이것도 나름의 원리로 알아서 요청역이 처리하겠지


[대기]

이제 열차는 대기역으로 가서 쉬면 돼



//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////


//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////



문제가 너무 많아.

일단 열차는 스케줄을 회로가 설정하는게 아니라, 위의 망상처럼 원하는 곳에 막 갈수가 없어

역 이름을 통일시키고 전역네트워크가 역을 켜고 끄면서 통제하는 수 밖에 없겠지


그리고 밑줄친 부분들도 모두 문제점에 해당하는데, 나름의 원리라고 작성한 부분은 회로를 잘 구현하면 할만 하겠지만, 나머지는 좀 어려운 부분들이야


//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////


일단 지금까지 확인한 문제들을 차근차근 순서대로 나열해보자

- 열차가 어떤 역으로 갈지 어떻게 통제 할까?

- 요청역은 자원의 양을 어떻게 파악해서 어떤 회로로 요청을 할까?

- 요청역에게 요청을 '수락'했다는 신호를 어떻게 회로로 해석하고 구현할까?

- 요청역은 요청사실을 공급받기 전까지 어떻게 기억할까?

- 공급역은 요청양보다 자신의 자원이 많고적음을 어떻게 판별할까?

- 여러개의 공급역은 어떻게 선발할까?

- 공급역은 어떻게 요청역을 기억할까? 그리고 그 열차를 어떻게 그 요청역으로 보낼까?

- 요청역은 공급이 되었다는 것을 어떻게 인지할까?


//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////


아오 벌써 피곤하네...


다중상하차랑 최단경로 구현도 얘기해야 되는데 갑자기 현타와서 담에 쓸게


그리고 대기역에서 공급역으로 어떻게 갈지도 얘기 안했네 개빡치게

동시요쳥처리는 어카지