统一成本搜索算法伪代码/ ocaml表示法

时间:2015-10-18 15:12:17

标签: algorithm graph ocaml pseudocode notation

我只是想知道是否有人可以帮助我理解用于统一成本搜索的伪代码/ 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 个答案:

答案 0 :(得分:0)

这是我的看法:

6 let Frontier = Frontier \ {v}

它表示要从v中移除Frontier\是一个集合减法。

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

它表示要添加到Frontierv相邻但尚未探索的所有节点(已在Explored中)。

(@DanielBünzli是对的,这些是标准符号。)