음....
제가 얼마전에 지리정보 시스템에 대해서 질문을 드렸습니다.
답변에 다익스트라 알고리즘이 있다고 하신 분도 있고...
일일히 하나하나 순차 검색을 한다고 하신분도 있는데....
제 성격상 완벽한 답변이 안나오면 제 주위에 있는 사람을 애먹이는 스타일이라서...
제 주위에 잘 아는 고수를 달달 뽁았습니다.
그러다가 A*알고리즘을 알게 되었습니다.
기본적인 탐색 방법은 다익스트라와 비슷한데...
인공 지능을 이용한다는 점이 다르더군요...
덕분에 자료량이 다익스트라의 3배 정도 많고요...
자 이제 서두를 말씀 드렸으니...
알맹이를 말씀드려야 겠지요...
흐....
다익스트라 알고리즘은 현재 까지 노드의 거리 합에서 다음 노드까지 거리를 이용해서 최단 거리를 계산하지만...
A*알고리즘은 현재까지 경로(거리)의 합과 다음 노드에서 목표 노드까지 직선 거리의 합으로 최단거리를 계산합니다.
현재 노드까지 경로 비용 + 다음 노드(후보 노드)에서 목표 노드까지 직선 거리 = 평가 비용
이 평가 비용이 가장 적은 노드를 선택 해 나가면 최단 경로가 구해 짐니다.
구체적인 알고리즘 설명은 아직 능력이 부족하여 답을 못드리고......
이쯤 설명하면 다익스트라 알고리즘을 아는 분이면 쉽게 이해가 가능하리라 생각합니다.
아!
이제 겨우 머리속에 넣고는 있지만 설명을 잘 못하니... 프로그램으로 구현은 어케 하나...
그리고 질문이라고 그러긴 좀 그런대... 이건 C++구현해서 팔아 먹으면 얼마나 받아 먹을 수 있을까요...
크크크크크크....
모든것을 돈으로 연결시키는 이 천부적인 돈탐... 대단하다 대단해 그려...
그럼
|