너비 우선 검색 알고리즘에 다음과 같은 의사 코드가 있습니다.
BFS(G,s)
1 for each vertex u ∈ V(G) \ {s}
2 color[u] = white
3 d[u] = ∞
4 π[u] = nil
5 color[s] = gray
6 d[s] = 0
7 π[s] = nil
8 Q = ∅
9 Enqueue(Q,s)
10 while q ≠ ∅
11 u = Dequeue(Q)
12 for each v ∈ Adj[u]
13 if color[v] == white
14 color[v] = gray
15 d[v] = d[u] + 1
16 π[v] = u
17 Enqueue(Q,v)
18 color[u] = black
이 문맥에서 π 문자가 무엇을 나타내는 지 이해하지 못합니다. 이 알고리즘에 익숙하지 않으며 추측하기 어렵습니다.
나는 d
거리를 나타냅니다, color
물론 색상이지만, 그것은 π
... 어떤 종류의 변수 인 것처럼 보이지만이 의사 코드에서 그 기능을 이해하지 못합니다.
2
@ Snowman 저는 수학 보다는 컴퓨터 과학 및 학술 출판물에 사용 된 스타일을 사용 하지만 일반적인 아이디어에 동의합니다. 이 질문에 대해 요구하고 이 판독 응답되었을 수 있습니다 사용 위키 피 디아 페이지를 , 그리고 π는 일반적으로 사용되는 것이 있지만, 저자가 알고리즘을 쓰는 방법이 아니라 특정하지 않습니다. 의사 코드에는 너무 많은 변형이 있으며 각 스타일의 각 문자가 의미하는 바를 묻습니다.
의사 코드에 종종 π 문자가 사용됩니까? 때로는 상황에 따라 의미가 다를 수 있습니다.
—
Rufflewind
@ Snowman : π는 함수가 아닙니다. 꼭짓점으로 인덱스 된 꼭짓점의 가변 배열입니다.
—
Rufflewind
이와 관련하여 π는 알고리즘에서 사용되는 기호이며 d 및 색상과 유사합니다. 때때로 알고리즘 작성자는 "parentVertices"와 같은 귀여운 이름이나 프로그래밍 언어에서 사용되는 경향이있는 문자 대신 단일 문자 기호를 사용하려고합니다.
—
Brandin
@Snowman 농담 하시나요? 수학 문제가 아닙니다. 프로그램을 작성하기 위해 의사 코드를 해석하는 것입니다. 왜 이것이 소프트웨어 개발에 관한 것이 아닌지, 나는 정말로 이해할 수 없습니다.
—
nbro