NSGA-II 非支配排序算法

NSGA-II 非支配排序算法:

Non-dominated Algorithm(dominated matrix D, population P)
   for i=1:length(P) {
       set R(i).np=0 and R(i).sp=[]
     }
   for i=1:length(P)                            
    for j=i+1:length(P) {
        if D(i,j)=1 {
            R(q).np= R(q).np + 1
            R(p).sp= R(p).sp ∪ q
        } elseif  D(i,j)=-1 {
            R(p).np= R(p).np + 1
            R(q).sp= R(q).sp ∪ q
        }
     }
   Set front(1).f=[]
   for i=1:length(P) {
       if R(i).np==0 {
          P(i).rank=1
          front(1).f= front(i).f ∪ i
        }
    }
    Set layer=1
    while( front( layer).f  is not null ) {
        Set Q=[]
        for u in front(layer).f {
          for v in R(u) .sp{
             R(v) .np= R(v) .np-1
             if R(p) .np==0{
                P(v).rank=layer+1
                Q=Q ∪ v
             }
        }
    }
    layer=layer+1
    front(layer).f=Q
}
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值