inflearn logo
강의

Khóa học

Chia sẻ kiến thức

[Series Phát triển game MMORPG bằng C++ và Unreal] Phần 3: Cấu trúc dữ liệu và thuật toán

안녕하세요. 에이스타와 bfs 관련 문의드립니다.

Đã giải quyết

310

zzokki4664803

27 câu hỏi đã được viết

0

안녕하세요. 에이스타 까지의 강의를 공부하고 궁금한게 있어서 문의드립니다. 

에이스타와 bfs는 어쨋든 하나의 정점에서 상하좌우 or 상하좌우-우상-우하-좌상-좌하 

로 탐색을 하면서 가장 좋은 길을 선택하는 거잖아요. 

근데 제가 저의 포폴에서 확인을 해보니 동일한 타겟 지점으로 에이스타와 bfs 이동을 해보면,

에이스타의 효율이 훨씬 좋더라고요. 오픈리스트 추가되는 갯수가 적습니다. 

왜 이런 현상이 발생하는지 알 수 잇을까요? 

기술면접

Câu trả lời 2

1

Rookiss

A*는 [시작지점]-[목표지점]을 각기 정해두고
휴리스틱이라는 느낌적인 느낌으로 좋을 것 같은 방향으로 먼저 서칭을 합니다.
BFS는 [시작지점]에서 가까운 순서대로 서칭을 하기 때문에,
설령 목표지점이 오른쪽에 있더라도 반대 방향을 먼저 서칭하는 경우가 생길 수 있습니다.
그래서 엄청 장애물이 많거나 하는 특수 상황이 아니면 A* 가 훨 좋은 것이죠.
BFS는 [목표지점]이라는 존재에 대해 아예 모른다는 것을 유의깊게 살펴보세요!

0

leomessi

BFS는 '순회' 알고리즘이므로, 기본적으로 그래프 내의 연결된 모든 정점을 방문하려고 시도하는 알고리즘입니다.

따라서 그래프의 간선들의 가중치가 모두 같은 상황이 아닐 땐 최단거리를 구할 수 없다는 단점도 있습니다.

반면 A*는 분명한 목적지를 정해두고 시작지점과 도착지점간의 최단거리에만 관심이 있는 알고리즘이기 때문에 BFS와 다르게 동작합니다.

헤더파일에 관한 질문

0

442

1

이진 탐색 트리 삭제 질문

0

705

1

해당 문제 유형을 수학적으로 표현 가능할까요?

0

513

1

vs2022 미로 줄간격

0

1595

2

pos 구조체 초기화 문제

0

502

0

맵이 이상하게 나오는데 무슨 문제인가요?

0

520

1

자동완성 기능 질문

1

527

2

push_back emplace_back 질문있습니다.

0

403

1

Container, Predicate 질문입니다.

0

401

1

_size - 2 질문

0

422

1

Disjoint Set 질문있습니다

0

437

1

우선순위 큐 구현 연습 intellisense 질문

0

407

1

int32 관련 질문

0

282

1

c++에서 처음 보는 문법

0

389

1

학습에 크게 지장이 있는건 아니지만 단순 궁금해서 질문드립니다

0

327

1

힙 정렬과 병합 정렬

0

431

1

resize 질문

0

266

1

처음 보는 for문 문법

0

392

1

환경 설정.. 궁금점

0

394

1

이 비교 연산자를 넣어주는 이유가 있나요?

0

292

1

소멸자 관련 질문

0

256

1

&의 차이

0

295

1

프레임 관리 질문입니다.

0

338

1

연산자 오버로딩 관련 질문입니다.

1

210

1