multithreaded a* java 또는 lisp 또는 c#에서 검색
-
08-07-2019 - |
문제
멀티 스레드 a* 검색을 수행하는 좋은 방법이 있습니까? (예 :) 인공 지능 : 현대적인 접근 방식과 같이 단일 스레드는 매우 쉽지만 좋은 멀티 스레드 버전을 발견하지 못했습니다.
스레드 풀과 작업 블록이있는 Java 또는 C# 또는 LISP와 같은 제정신 언어를 가정하고 물론 쓰레기 수집을 가정하십시오.
해결책
이 논문을 읽는 것이 좋습니다.
"병렬 양방향 a* 대칭 다중 프로세서에서 검색"
IEEE에는 또 다른 논문이 있습니다.
"메시지 통과 아키텍처에 대한 평행 astar 검색"
두 논문 모두 상당히 약간의 속도를 얻는 새로운 방법을 찾습니다.
다른 팁
나는 당신이 말하는 말을 들지만 당신이 원할 것이라고 확신하지 못합니다. A* 검색에서 가장 최적의 경로를 취하려면 동일한 경로에 대한 계산을 두 번 수행하고 싶지 않습니다.
사실을보십시오 :
- 선택할 '최고의'사각형은 모두 서로 옆에 있습니다.
- '최고의'선택 이외의 다른 사각형을 계산하는 것은 조기 계산입니다. A*의 요점은 선택이 효율적이라는 것입니다.
응용 프로그램을 실행 한 경우 다음이 필요합니다.
- ㅏ '웨이터' 실이 같은 정사각형에 닿지 않도록하기 위해, 그들에게 새로운 사각형을 신을 낼 수 있도록하기 위해. 그들은 모든 '최고의'사각형이 서로 옆에 있기 때문에 경로 자원을 위해 싸울 수있는 꽉 짜는 지역에서 일할 것입니다.
이 문제는 절차 적이며 별도의 부품으로 분해하는 좋은 방법이 없으므로 스레딩에 적합한 선택이 아닙니다. 간단히 말해서 아무도 바람직하지 않기 때문에 아무도 그것을하지 않았습니다. 이게 도움이 되길 바란다.
제휴하지 않습니다 StackOverflow