2013-02-24 3 views
5

나는 가상의 로봇 (Minecraft의 ComputerCraft 모드에서 거북이)과 함께 프로젝트를 진행하고 있는데, 로봇은 터널의 미로에있을 것이며 주변을 돌아 다닐 필요가있다. 세계는 편리하게 이미 타일 (각각에 대한 부울 승원 가능/비 통과 가능 값을 가진 2D 직교 그래프)로 나누어 져 있으며, 터널을 짓는 로봇은 이동하면서지도를 그릴 것입니다.텔레프레터를 이용한 길 찾기

또한 로봇이 빠르게 이동할 필요가있는 영역에는 텔레포터 "바로 가기"가 흩어져 있습니다.

질문은 다음과 같습니다. 로봇이 목적지까지가는 가장 좋은 방법은 무엇입니까? 시스템이 텔레 포터가 필요한 영역을 어떻게 식별합니까? A *는 가장 유명한 알고리즘이지만 응용 프로그램에 더 적합한 알고리즘이 있습니까? 나는 길 찾기 알고리즘에 대한 경험이 거의 없다는 것을 명심하십시오. 그래서 당신은 이해해야 할 기본적인 용어로 분해해야 할 수도 있습니다. 어떤 제안?

+3

왜 처음부터 시도해보고 어떻게 실행되는지보십시오. –

+0

나는 확실히 할 수 있었다. 그러나 A *는 텔레포터와 같은 "지름길"을 해킹없이 고려하지 않는다고 가정한다. 알고리즘 작동 방법에 대해 좀 더 살펴 보겠습니다. – Schilcote

+0

무슨 해킹인가요? 제 생각에는 A *는 길이가 0 인 모서리로 잘 작동합니다. 궁금해. –

답변

2

A *를 사용할 때의 유일한 문제점은 문제의 admissible heuristic입니다. 다행히도 이것은 이미 here으로 대답되었습니다.

시스템은 텔레 포터가 필요한 영역을 어떻게 식별합니까?

거북이 실제로 이동하는 위치에 따라 다릅니다. 그가 항상 같은 시작/끝점으로 /에서 이동하는 경우, 그 대답은 간단합니다 : 시작 지점에서 텔레포트를 추가하고 마칩니다. 더 복잡한 셋업의 경우, 이것이 NP 하드 일 것입니다; 사실이라면 global-optimization strategies을 조사해야합니다 (또는 임의의 위치를 ​​시도하고 가장 좋은 것을 시도하십시오).