幅優先検索アルゴリズム用の次の疑似コードがあります
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
@スノーマン数学ではなく、コンピュータサイエンスや学術出版物で使用されているスタイルを使用しますが、一般的な考えには同意します。この質問は、この使用法がウィキペディアのページを読むことで回答された可能性があることを尋ねています。πは一般的な使用法ではなく、著者がアルゴリズムをどのように記述するかによって異なります。疑似コードのバリエーションが多すぎて、各スタイルの各文字の意味がわからなくなってしまうのではないかと心配しています。
πという文字は疑似コードでよく使用されますか? 時々、しかし意味は文脈によって異なります。
—
Rufflewind 2015年
@スノーマン:ここのπは関数ではありません。これは、頂点によってインデックスが付けられた頂点の可変配列です。
—
Rufflewind 2015年
この文脈では、πはアルゴリズムで使用される単なる記号であり、dやcolorと同様です。アルゴリズム作成者は、「parentVertices」などのかわいい名前や、プログラミング言語で使用される傾向のあるものではなく、1文字の記号を使用したい場合があります。
—
ブランディン2015年
@スノーマン冗談ですか?数学の問題ではありません。それはプログラムを書くために疑似コードを解釈することについてです、なぜこれがソフトウェア開発についてではないはずなのか、私は本当に理解できません。
—
nbro 2015年