크기 N * N의 정사각형 그리드에서 BFS를 실행하고 싶습니다. 단일 시작 노드가 있습니다. 나는 위/아래/왼쪽/오른쪽 (대각선 아님)으로 만 이동할 수 있습니다. 그리드에 장애물이있을 수 있습니다.그리드에서 BFS 큐의 크기
물론 방문해야하는 노드를 저장하기 위해 대기열을 사용하고 싶습니다. 그것은 크기 S (고정 크기)의 원형 배열로 구현됩니다. 배열의 최소 크기는 얼마입니까? 나는 최악의 경우에도 그것이 넘치기를 원하지 않는다.
유사한 문제는 다음과 같습니다. 그리드의 노드가 주어진 경우 시작 노드에서 정확히 거리 K에있는 노드의 최대 수는 얼마입니까 (0 < K < 2 * N)?
나는이 문제에 대한 정확한 답을 찾기가 어려워서 좋은 근사치로 충분할 것이라고 생각한다.
이 그리드 아니라 흰색 장애물을 나타내고 검은 프랙탈은 걷기 노드 어디에 우리가 (같은 패턴으로 격자를 만들 수 :
은 (맨 오른쪽 사진)이 예를 참조하십시오). 정확도 노드에서 동일한 노드까지의 거리 (실제로이 수는 경로가 두 개로 나뉠 때마다 두 배가됩니다)에 많은 노드가 있음을 알 수 있습니다. 그래서이 숫자가 얼마나 큰 지 알고 싶습니다. 같은 상황에서 다른 구성이 나오면 알려주세요.
제 질문은 다음과 같습니다.이 숫자는 2 * N보다 큰 값을 얻을 수 있습니까? N은 N * N 정사각형 그리드의 크기입니다.
당신이 통과 할 수있는 충분히 큰 N.에 대한 * N 2를 초과 할 수밖에 없다 그리드에서 동일한 노드를 한 번 더 열어 큐를 비울 때까지? 그렇지 않은 경우, 최악의 경우, 전체 그리드 또는 N^2 위치를 실행할 수 있습니다. 그렇지 않으면, 당신은 언젠가 멈춰야 할 것이기 때문에, 제한은 무엇입니까? – Rubens
이것은 BFS이므로 모든 노드가 한 번만 추가 (및 팝)됩니다. N * N 포지션을 동시에 가질 수는 없습니다. – user1637030
죄송하지만 실제로 문제가 발생하지 않았습니다. 당신은 그리드 NxN을 가지고 있으며, 주어진 포인트에서 BFS를 수행합니다. 그리드에서 결정된 노드의 하위 노드는 무엇입니까? 형제로 간주되지 않은 이웃들? 그리고 장애물은 무엇입니까? 3x3의 그리드에서 그리드의 맨 위 맨 끝 노드부터 시작하면 검색 범위는 어떻게됩니까? 예를 들어 주시겠습니까? – Rubens