4

我在一个研究团队工作以解决多目标工程问题,我专注于NSGA-II算法,但现在我坚持我需要了解 SBX 交叉如何与数值示例一起工作,以便我可以实现它,或者即使有现成的代码我可以根据我们的问题进行调整,但首先我需要查看数值示例,这样我才能继续,任何可用的资源我只在http://www.slideshare.net/上找到了一个演示文稿,但只有方程式没有示例。

4

2 回答 2

4

这些天我也花更多的时间在 SBX 因为它是数字编码问题交叉的更好选择。我检查了原始论文和您指出的幻灯片。虽然我不知道SBX的完整过程,但我可以告诉你我学到的东西,这可能有助于你进一步了解SBX。

1:这个想法来自具有单点交叉的二进制编码。例如,父染色体 p1 和 p2,它们的子染色体 c1 和 c2。

2:在二进制编码中,有性质:(p1+p2)/2=(c1+c2)/2。我们表示|(c1-c2)/(b1-b2)| 为 beta,根据模拟,b 有时等于 1。

3:当我们将此思想用于数字编码时,应保留此属性,为此,数字编码中c1和c2的解决方案:

c1 = (p1+p2)/2 +0.5*beta(p1-p2) and c2 = (p1+p2)/2-0.5*beta(p1-p2) and p1>p2目标。

以上都是我从SBX学到的。对不起,它不完整!

于 2015-09-28T15:03:31.713 回答
1

这个问题很老,但我建议阅读学术文章:

  • DEB,卡利安莫伊;阿格拉瓦尔,拉姆·布尚。连续搜索空间的模拟二元交叉。复杂系统,v. 9,n。2,第 115-148,1995。
  • 瓦加斯,丹尼斯 EC。Um Estudo dos Parâmetros do Algoritmo NSGA-II com o operador SBX em Problemas de Otimização Estrutural Multiobjetivo。巴西计算与应用数学学会论文集,第 7 卷,第 n。2018 年 1 月 1 日。
  • 克鲁兹,弗雷德里科·罗德里格斯·博尔赫斯 da 等人。Abordagem multiobjetivo para otimização de redes de filas finitas。2012 年。

链接上提供的文章也可能会有所帮助。

github 上还有一个msu-coinlab/pymoo NSGA python 实现,其中有一个 simulation_binary_crossover.py文件,其中包含一个可以构建的实现。

计算要制定的孩子的数量是:

  • 在此处输入图像描述
  • 在此处输入图像描述

AZEVEDO (1) 使用不同的公式:

  • 在此处输入图像描述
  • 在此处输入图像描述

要计算 beta ( β i) 的函数,请使用概率分布:

在此处输入图像描述

计算 beta ( β i):

在此处输入图像描述

η是用户定义分布的指数(非负数)

计算交叉产生的浮点数的步骤是:

  1. 设置一个随机数 µ ~ (0,1);
  2. 从上面的公式计算要分享的βi ;
  3. 使用βi使用上面的公式生成孩子

Adicional 参考:

(1)阿泽维多,卡洛斯·雷纳托·贝洛。Geração de diversidade na otimização dinâmica multiobjetivo evolucionária por paisagens de não-dominância。2011. 梅斯特拉多论文。伯南布哥联邦大学。

于 2019-11-13T02:49:47.273 回答