我只是想知道是否有人可以帮助我理解用于统一成本搜索的伪代码/ 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行感到困惑。有人可以向我解释这些问题吗?而我只是想确保我认为符号∈意味着""成员?最后,符号⊆代表什么?用于路径输出行。 提前感谢任何可以提供帮助的人! : - )
答案 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
它表示要添加到Frontier
与v
相邻但尚未探索的所有节点(已在Explored
中)。
(@DanielBünzli是对的,这些是标准符号。)