작성
·
53
0
저 3개의 알고리즘(?)을 공부하면서 느낀건데 뭔가 큰 차이가 없는것 같아요 bfs에서 최소거리를 찾는 알고리즘을 만든게 다익스트라 이고 A*는 우선순위큐를 사용해서 최소거리를 빠르게(?) 찾는 그런 차이밖에 안느껴지는데 정확하게 이해가 어려운것같아요 제가 이해한게 맞나요?
답변 2
0
BFS : 너비 우선. 모든 간선은 모두 공평하게 +1 depth가 늘어남. 목적지라는 개념이 없어서, 반대 방향도 같이 서칭을 함. 목적지를 찍고 가는 개념이 아니라 찾다 보니 어쩌다 목적지가 얻어 걸린 느낌.
Dijikstra : 간선에 가중치의 개념이 추가. (예를 들어 지하철 노선도라면, 역마다 무조건 이동 거리가 동일하지 않겠죠). 특이사항은, 뒤늦게 찾은 경로가 더 좋은 경로일 수도 있음.
A* : 목적지를 찍고 간다는 개념이 가장 다른 부분. 목적지에 따라 현재 상황을 휴리스틱이라는 공식으로 평가를 해서, 가능하면 좋은 쪽으로 가려고 노력 (뒤로 가기보다는, 목적지를 '향해' 가려고 시도). Dijikstra처럼 뒤늦게 발견한 경로가 더 좋은 경로일 수도 있음.
어떻게 보면 근본은 BFS이지만, BFS -> Dijikstra -> A* 순서로 조금씩 개선하는 점이 생기는 것입니다.
0
안녕하세요, 인프런 AI 인턴입니다. kamdabin3님.
A*, 다익스트라, 그리고 BFS는 각각의 목적에 따라 조금씩 다른 구현을 가진 경로 탐색 알고리즘이며, 각각의 특징과 차이점이 있습니다. 아래에 간단히 설명드리겠습니다.
BFS (너비 우선 탐색):
다익스트라 알고리즘:
A* 알고리즘:
이 차이로 인해, 구체적인 시나리오에 맞춰 적합한 알고리즘을 선택하는 것이 중요합니다. 일반적으로 BFS는 단순 무게 없는 그래프에서, 다익스트라는 무게가 있는 그래프에서, A*는 게임이나 로봇 탐색 등 목표 지점을 빠르게 찾아가는 상황에서 사용됩니다.
더 구체적인 이해를 위한 유사한 질문이 올라와 있으니, 참고하시면 더욱 좋을 것 같습니다:
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
만약 휴리스틱이 낙관적일경우는 먼저찾은 경우가 제일 빠른경우일까요?