伪码数组符号混淆

时间:2019-04-29 14:45:55

标签: java arrays pseudocode notation

我正在寻找一种算法的伪代码。伪代码的一行是这样的:

hs <- { (a, b) | a <- m, b <- l }

ml都是对象数组。

这到底是什么意思?我的解释是,它将每个m与每个l配对,并将它们存储在数组hs中,就像这样:

假设m = {m1,m2}l = {l1,l2,l3,l4}

然后hs = {(m1,l1),(m1,l2),(m1,l3),(m1,l4),(m2,l1),(m2,l2),(m2,l3),(m2,l4)}

这是正确的思考方式吗?


根据上下文的要求,这是使用基于增强学习的轮盘选择来设计超启发式算法的伪代码。 ml分别包含一系列的突变试探法和本地搜索试探法。 hs旨在作为将这些启发式方法配对在一起的数组,以便可以将它们依次应用于问题域。与之类似,先应用mutational heuristic m_i,然后再应用local search heuristic l_j。尚不清楚它们是否应该按照我所描述的方式或其他方式进行配对。

3 个答案:

答案 0 :(得分:3)

您认为是正确的,这是根据压缩定义的列表,而(a, b)是具有ab值的集合。

更多信息:https://en.wikipedia.org/wiki/List_comprehension

haskell中的示例:https://wiki.haskell.org/List_comprehension

答案 1 :(得分:1)

如果将伪代码的行解释为类似于集合的数学符号,那么是的,这是唯一可行的选项恕我直言。

答案 2 :(得分:0)

我认为您的解释很正确,但这也是合理的:

如果我们得到您的示例变量:

hs = ({m1, m2}, {l1, l2, l3, l4})

它可以看作是离散空间的某种坐标。

如果您提供上下文(或完整的伪代码),我们可以进行更精确的解释