문제

멀티 스레드 a* 검색을 수행하는 좋은 방법이 있습니까? (예 :) 인공 지능 : 현대적인 접근 방식과 같이 단일 스레드는 매우 쉽지만 좋은 멀티 스레드 버전을 발견하지 못했습니다.

스레드 풀과 작업 블록이있는 Java 또는 C# 또는 LISP와 같은 제정신 언어를 가정하고 물론 쓰레기 수집을 가정하십시오.

도움이 되었습니까?

해결책

이 논문을 읽는 것이 좋습니다.

"병렬 양방향 a* 대칭 다중 프로세서에서 검색"

IEEE에는 또 다른 논문이 있습니다.

"메시지 통과 아키텍처에 대한 평행 astar 검색"

두 논문 모두 상당히 약간의 속도를 얻는 새로운 방법을 찾습니다.

다른 팁

나는 당신이 말하는 말을 들지만 당신이 원할 것이라고 확신하지 못합니다. A* 검색에서 가장 최적의 경로를 취하려면 동일한 경로에 대한 계산을 두 번 수행하고 싶지 않습니다.

사실을보십시오 :

  • 선택할 '최고의'사각형은 모두 서로 옆에 있습니다.
  • '최고의'선택 이외의 다른 사각형을 계산하는 것은 조기 계산입니다. A*의 요점은 선택이 효율적이라는 것입니다.

응용 프로그램을 실행 한 경우 다음이 필요합니다.

  • '웨이터' 실이 같은 정사각형에 닿지 않도록하기 위해, 그들에게 새로운 사각형을 신을 낼 수 있도록하기 위해. 그들은 모든 '최고의'사각형이 서로 옆에 있기 때문에 경로 자원을 위해 싸울 수있는 꽉 짜는 지역에서 일할 것입니다.

이 문제는 절차 적이며 별도의 부품으로 분해하는 좋은 방법이 없으므로 스레딩에 적합한 선택이 아닙니다. 간단히 말해서 아무도 바람직하지 않기 때문에 아무도 그것을하지 않았습니다. 이게 도움이 되길 바란다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top