YAPF, NTP, NPF, OTP가 뭔가요?

https://telk.kr/tb/free/1929
YAPF(Yet Another PathFinder), NTP(New Train Pathfinding),NPF(New global PathFinding), OTP(Original Train Pathfinding)은 모두 경로 탐색(Pathfiding)의 방법입니다.
이들은 모두 프로그래밍 상의 기술 방법 차이이며 실제로 다른 효과를 보이는 것은 많지 않습니다.
어떠한 것들은 동일한 알고리즘을 사용하는 것도 있고 다른 알고리즘을 사용하는 것도 있습니다.
가장 크게 다른 점은 바로 CPU 점유율입니다. 각 경로탐색 방법에 따라 CPU 점유율이 크게 차이가 나는 것으로 추측되고 있습니다.
열차(train), 자동차(vehicle), 선박(ship)은 YAPF가 추천, 오리지널이 비추천입니다.비행기(plane)는 따로 경로탐색 옵션을 사용하지 않습니다.

아래는 NPF와 YAPF와의 차이점을 기술한OpenTTD 포럼의 한 댓글에서 발췌하여 번역한 내용입니다.
NPF와 YAPF는 열차가 경로탐색이 필요해질 때 (역을 떠날때 등과 같이 어느 방향이 가장 나은지 알고싶을 때, 회차했는지 아닌지, 가장 가까운 차량기지를 찾고 그곳을 찾아갈 때 등) 같은 방법과 같은 순간에 호출됩니다. 또한 두가지 경로탐색 방법은 같은 알고리즘을 사용합니다. 
주요 차이점에는 3가지가 있습니다. - NPF는 매 타일(tile)마다 노드(node)를 생성하지만 YAPF는 따라오는 타일이나 열차경로에서 뭔가 중요한 것(역, 경유지점, 선택 등)을 맞닥뜨리기 전까지 노드를 생성하지 않으려 합니다. 이러한 노드의 생성이 지연되는 것을 segment라고 부릅니다. - YAPF는 타일/열차경로의 시작과 끝, 가격, 마지막 신호기 타일/열차경로 등에서 자신의 segment를 저장합니다. - YAPF는 훨씬 더 복잡한 구조를 가지고 있습니다. 이것은 컴파일러가 YAPF 모듈 사이에서 인라인으로(그 즉시) 호출을 최적화할 수 있는 구조입니다.


이모지를 이용해서 글에 반응해보세요!

댓글



꼬리표를 선택하세요


↑TOP

신고하기 ×

신고 종류
작성자
내용

신고 사유