일부 경로 찾기 시스템 (지금은 A *)에서 도발적이지만, 나는 모든 것의 개념을 완전히 파악할만큼 충분히 숙련 된 곳이 아닙니다. 이 게시물이 무지 또는 잘못된 가정으로 가득 차 있다면 용서하시기 바랍니다.여러 단계의 경로 찾기
목표는 목적지에 도달하기 위해 여러 평면을 가로 지르는 객체를 가질 수있게하는 것이고 각 레벨에 대한 다양한 입구와 각 레벨은 서로 다른 디자인을가집니다. 8 개의 출입구가있는 동굴 시스템을 상상해보십시오. 목표는 6 층 아래로 내려가는 것입니다 ... 동굴 중 일부가 연결되어 경로가 공유 될 수 있지만 다른 일부는 특정 지점까지 격리됩니다 .... 또한 경로의 상호 연결성은 각 레벨에서 변경할 수 있습니다. 이 작업을 수행 할 수있는 시스템이 있음을 알고 있지만 내 목표는 결국 가장 빠르고 가장 빠른 옵션이며이 계산을 빠르게 수행 할 수있는 능력입니다 (주어진 시간에 최소 80 개 이상의 다른 경로가 계산 될 가능성이 있음)
모든 '층'다른 '수준', 또는 비행기입니다 :
예는 다음과 같이 될 것이다. 녹색은 레이어간에 위아래로있는 경로입니다. 인스턴스 과정 중에는 경로를 아무 곳에 나 배치 할 수 있으며 레이어 내부의 모든 부분을 제거 할 수 있습니다. (이 경우에는 그와 같은 구성입니다.)
A *를 구현하기가 비교적 쉽습니다. 하나의 레벨에서 발견되는 몇 가지 기본 경로 (예 : 한 위치에서 아래로 이동하는 사다리). 그러나 어떤 사다리가 궁극적 인 목표로 이어질지 결정하는 것은 어려운 일입니다.
처음 생각한 것은 동일한 레벨에서 서로 경로를 연결하는 데이터 구조와 유사한 작업을 수행하고 어떤 종류의 트리 탐색을 통해 경로 찾기가 어떤 사다리에 도달했는지 결정합니다. 특정 레벨 ... 그러나 그것은 빠르게 복잡해지며, 레벨은 주어진 시점에서 변경 될 수 있습니다.
내가 말했듯이, 나는 A *가 실제로 작동하는 방법이나 기본 배후가 확실하지 않지만, 대부분의 사람들이 말한 기본 알고리즘은 다중 레이어 디자인에서 작동합니다.
나는 그것이 엔진에 달려 있고 알고리즘의 구현에 따라 다르다는 것을 안다. 그래서 구체적인 것을 요구하지는 않는다 ... 그러나 상황에 접근하는 최선의 방법에 대한 약간의 조언; 다단계 계산이 내장 된 작동중인 A * 구현을 찾아 내 수준 아키텍처를 그에 맞게 변경해야합니까? 2 차원 A * 구현을 활용하고 '경로'구조를 만들어 각 레벨에서 경로 지정 지침을 제공해야합니까?
이 스타일의 디자인에 더 유리하고 효율적인 (계산/경로 찾기의 수를 고려하면) 또 다른 접근법이 있습니까?
감사합니다.
짧은 대답은 A *가 잘 수행 할 수 있지만 실제로 그래프의 이론적 인 의미에서 무엇을하는지 이해해야합니다. – Sneftel
\ *는 그래프에서 작동하는 알고리즘입니다. 문제를 그래프로 모델링하는 것은 간단해야합니다. –