Computational-intelligence
Computational-intelligence copied to clipboard
关于狼群算法中探狼游走的更新公式
同学,你好,有点小疑问,看来你matlab中代码关于探狼游走的更新公式: XJ_every_h = wolf_position(detective_wolf_index(j),:) + sin(2pi(1:h)'/h) .* step_a; 假设是在二维空间,个体狼坐标 [x, y], 更新公式后XJ = [x, y] + [0.1, 0.3, 0.4]’(假设这是sin后求出的值) = [x+0.1 y+0.1; x + 0.3 y + 0.3; x+0.4 y+0.4] ,那这个是不是意味着个体狼始终在一个与y =x平行的直线上来回运动搜索?并没有实现h个方向的搜索,不知道我有没有表达清楚,希望得到你的回复。
您好,我已收到您的反馈,这两天我较忙,但我会在忙完后尽快给您回复。
同时也非常感谢您认可!
---原始邮件--- 发件人: @.> 发送时间: 2023年3月29日(周三) 晚上8:50 收件人: @.>; 抄送: @.***>; 主题: [doFighter/Computational-intelligence] 关于狼群算法中探狼游走的更新公式 (Issue #2)
同学,你好,有点小疑问,看来你matlab中代码关于探狼游走的更新公式: XJ_every_h = wolf_position(detective_wolf_index(j),:) + sin(2pi(1:h)'/h) .* step_a; 假设是在二维空间,个体狼坐标 [x, y], 更新公式后XJ = [x, y] + [0.1, 0.3, 0.4]’(假设这是sin后求出的值) = [x+0.1 y+0.1; x + 0.3 y + 0.3; x+0.4 y+0.4] ,那这个是不是意味着个体狼始终在一个与y =x平行的直线上来回运动搜索?并没有实现h个方向的搜索,不知道我有没有表达清楚,希望得到你的回复。
— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you are subscribed to this thread.Message ID: @.***>
针对您反馈的问题,我再次拿到原论文细细研读,我个人分析,这是作者表达的问题,根据公式以及相应的描述,我想作者应该是想表达贪狼分别从各个方向前进sin(2pi p/h)stpe_a^d的步长的长度,原论文将p表示为不同方向,但实质我认为应该描述为贪狼在dim个方向上分别进行h个不同步长的游走。 你首先需要理解我上面的这段话,下面我进一步举例:如step_a是一个(1,dim)大小的数组,其中dim就是问题的求解维度,然后通过sin(2pi p/h)求解出贪狼在dim个方向上游走h个不同步长的结果,然后选取最好的结果。 下面举一个实例: 假设贪狼位置为:worf = [x1, x2, ..., xdim] step_a = [s1, s2, ..., sdim] sin(2pi(1:h)'/h)=[p1, p2, ..., ph].T,这个公式其实是计算步长系数,有h个步长系数 sin(2pi(1:h)'/h) .* step_a = [ [p1s1, p1s2, ..., p1sdim] [p2s1, p2s2, ..., p2sdim] ''' [phs1, phs2, ..., phsdim] ] 然后再执行 worf + sin(2pi(1:h)'/h) . step_a = [ [x1+p1s1, x2+p1s2, ..., xdim+p1sdim] [x1+p2s1, x2+p2s2, ..., xdim+p2sdim] ''' [x1+phs1, x2+phs2, ..., xdim+ph*sdim] ] 只有这样,才能匹配公式,也才更加有意义。 综上,通过对公式的理解,我认为是作者文字描述有出入,当然这只是我的个人理解,仅供参考。
同学,你好,有点小疑问,看来你matlab中代码关于探狼游走的更新公式: XJ_every_h = wolf_position(detective_wolf_index(j),:) + sin(2_pi_(1:h)'/h) .* step_a; 假设是在二维空间,个体狼坐标 [x, y], 更新公式后XJ = [x, y] + [0.1, 0.3, 0.4]’(假设这是sin后求出的值) = [x+0.1 y+0.1; x + 0.3 y + 0.3; x+0.4 y+0.4] ,那这个是不是意味着个体狼始终在一个与y =x平行的直线上来回运动搜索?并没有实现h个方向的搜索,不知道我有没有表达清楚,希望得到你的回复。
针对您反馈的问题,我再次拿到原论文细细研读,我个人分析,这是作者表达的问题,根据公式以及相应的描述,我想作者应该是想表达贪狼分别从各个方向前进sin(2pi p/h)stpe_a^d的步长的长度,原论文将p表示为不同方向,但实质我认为应该描述为贪狼在dim个方向上分别进行h个不同步长的游走。 你首先需要理解我上面的这段话,下面我进一步举例:如step_a是一个(1,dim)大小的数组,其中dim就是问题的求解维度,然后通过sin(2pi p/h)求解出贪狼在dim个方向上游走h个不同步长的结果,然后选取最好的结果。 下面举一个实例: 假设贪狼位置为:worf = [x1, x2, ..., xdim] step_a = [s1, s2, ..., sdim] sin(2pi(1:h)'/h)=[p1, p2, ..., ph].T,这个公式其实是计算步长系数,有h个步长系数 sin(2pi(1:h)'/h) .* step_a = [ [p1s1, p1s2, ..., p1sdim] [p2s1, p2s2, ..., p2sdim] ''' [phs1, phs2, ..., phsdim] ] 然后再执行 worf + sin(2pi(1:h)'/h) . step_a = [ [x1+p1s1, x2+p1s2, ..., xdim+p1sdim] [x1+p2s1, x2+p2s2, ..., xdim+p2sdim] ''' [x1+phs1, x2+phs2, ..., xdim+ph*sdim] ] 只有这样,才能匹配公式,也才更加有意义。 综上,通过对公式的理解,我认为是作者文字描述有出入,当然这只是我的个人理解,仅供参考。 @cptbtptp1992
我也同意你的理解,所以我就觉得作者的原公式根本无法实现h个方向的搜索,关键是我还看到有些作者的论文提出了对h个方向的改进,(例如基于自适应和变游走方向的改进狼群算法,郭立婷),搞的我有点懵。