팩토리오 공식설명문에
역 찾아가기 설명을 읽었는데염...
* 열차가 역을 찾아가는 공식적 설명을 읽고 내가 이해한건 다음과 같음
열차는 자신의 목적지를 찾아갈때, 같은 이름의 역이 여러개 있으면 점수를 매겨서 제일 좋은곳을 찾아간다.
너무 멀면 거리에 따라서 점수를 감점
역에 이미 정차한 열차가 있으면 감점
역의 대기열에 열차가 있으면 감점
(+ 그외 기타 여러 감점요인 있음.)
뭐 이런식으로 점수를 열심히 매겨서 제일 좋은곳을 찾아감.
그렇다는건
1. 거의 비슷한 거리에 있는 두 역이라면 대기열이 적은 쪽으로 찾아가게 됨.(두 역이 대기열이 비슷한 수준으로 차오른다.)
2. 좀 멀더라도, 가까운 역에 대기열이 너무 북적이면 먼 거리라도 찾아가게 되는것.
대충 이런식으로 이해했음.
맞나요?
https://wiki.factorio.com/Railway/Train_path_finding
이거읽은거임. 좀 대충읽었지만.
네 맞워요. 대기열에 열차신호를 달았다면, 대기열이 널널한 쪽은 초록불이라 페널티가 좀 적으니 그쪽으로 가는 경로를 탐색하며 갑니다. 우리가 볼땐 순식간에 경로를 설정하는거 처럼 보이지만 사실은 매 세그먼트(신호와 신호로 나뉜 구간)를 블록(철도가 갈라지는 부분을 기점으로 한 덩어리)단위로 스키밍하며 가는걸루 암
하지만 패스파인딩 패널티 중, 선로길이에 따른 패널티점수도 존재하기 때문에 거리가 멀어지는것 자체가 패널티로 작용하기도 합읍니다. 혹은 거리는 가깝지만 가는 길에 기차로 점유된 세그먼트가 많다면 먼 곳으로 가기두 하구요
하지만 기본적으로 "제일 가까운곳으로 처들어간다" 가 맞다고 보면 되는거야요.
내가 알기론 한번 알고리즘에 의해 도착지가 결정이 되면 기차가 중간에 멈추지 않는 이상 갑자기 목적지가 변경이 되지는 않는걸로 알고 있음. 하지만 열차가 신호등에 의해 대기하는 등 멈췄다가 재출발 할때는 다시 목적지를 결정하는 걸로 알고 있음
가까이 있는데 대기열이 꽉 차도 멀리 있는 역의 멀리있는 그 자체의 패널티보다 작으면 열차는 가까운 곳으로 감
물론 그렇죠. 그게 점수산정의 의미구요.