|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
有哪位MATLAB的高手会写多目标优化里的RANK排序呢
假设我有两个目标(f1, f2)
然后我有以下6个结果A(16,10) C(10,8) D(4,15) F(7,11) H(19,5) J(9,3)
我要找出它的"最好的解"(目标望小)
第一步是要找出每个解的RANK (目标望小)
假设J跟C比较,J的f1是9 比C的10小(所以J赢),接着J的f2是3 也比C的8小(所以J又赢了),代表J是比C还要好的因为它的f1.f2都比C还小,因此C的RANK是[ 2 ] (因为它输给J,排第二名)
然后J跟D比较,J的f1是9比D的4大(所以D赢),但是J的f2是3又比D的15小(所以D输了),因为J跟D比较起来互有大小的关系所以无法判定输赢故称[平手],因此J跟D的RANK都是[ 1 ] (因为它们没有f1,f2皆输的结果所以排第一名)
而A的f1,f2又都比C的f1,f2大 所以A的RANK是[ 3 ] (因为它输给C又输给J所以是第三名)
而H虽然看起来跟A平手,但因为H也跟C平手而且输给J所以RANK必须跟C一样是[ 2 ]而不是3
最后从上面那些可以看出DFJ 它们的RANK都是1,CH是2,A是3
这方法便是所谓的Multi-objective Genetic Algorithm (MOGA)
但我MATLAB一直写不出来
麻烦高手帮忙了 感谢 |
|