2015-10-18 79 views
0

我只是想知道是否有人可以幫助我理解這種僞代碼/ ocaml表示法統一成本搜索算法中涉及的一些符號。統一成本搜索算法僞代碼/ ocaml表示法

這是算法我們得到:

Input: Graph G = (V, E), Start state s, Set of goal states F 
Output: Path P ⊆ E 
1 begin 
2 let Frontier = {s}; 
3 let Explored = {s}; 
4 while Frontier != [] do 
5 let v ∈ Frontier, such that Path(s,v) has lowest cost; 
6 let Frontier = Frontier\{v}; 
7 if v ∈ F then 
8 return Path(s,v) 
9 end 
10 else 
11 let Explored = {v}∪ Explored; 
12 let Frontier = Frontier∪{v-subscript(1), . . . , v-subscript(n)}, 
where (v, v-subscript(i)) ∈ E and v-subscript(i) !∈ Explored. 
13 end 
14 end 
15 return failure; 
16 end 

我感到困惑線6,11和12.有人能解釋這些行嗎?我只是想確定我認爲符號∈是否意味着「成員」?最後,符號⊆代表什麼?用於路徑輸出行。 在此先感謝任何人,可以幫助! :-)

+1

看來你的問題只是有關[基本集理論符號(https://en.wikipedia.org/wiki/Set_theory#Basic_concepts_and_notation) –

+0

好奇,什麼來源稱這ocaml符號? ∈確實意味着成員,第6行表示用'Frontier'替換'Frontier'「而不用」v「,第11行表示用'Explored'替換'Explored'並添加'v'(符號表示集合) 。 12號線有另一組聯合。 – antron

回答

0

這是我的看法:

6 let Frontier = Frontier \ {v} 

它說,從Frontier刪除v\是一組減法。

11 let Explored = {v} ∪ Explored 

它說,v添加到Explored是標準的聯合運營商。

12 let Frontier = Frontier∪{v-subscript(1), . . . , v-subscript(n)}, 
    where (v, v-subscript(i)) ∈ E and v-subscript(i) !∈ Explored 

它說添加到Frontier,尚未探索(已經在Explored)的鄰近v所有節點。

(@DanielBünzli是正確的,這些標準符號。)

+0

\不是對稱差異,它是https://en.wikipedia.org/wiki/Complement_(set_theory)#Relative_complement,讀作「set-minus」。 – antron

+0

非常好,謝謝。我更新了我的答案。 –

+0

只是想知道 - 如果第5行說要將v添加到邊界,爲什麼6說要刪除它? – toastedDeli