算法本质上最形象来讲。粒子看作50个人。可能潜在的700个解看做700个房间,还没被人打开。
初始:50个人每人随机进一个屋子,这个屋子的各项指标(温度,湿度,叫做目标函数),这50个人心中都有一个脑子pbest,自己知道哪个屋子最好。第一次按算法更新,50个人进入下一个房子。
下一个房子就是新解,有新的目标函数,如果这个屋子在各项指标都比上一个屋子好,那么pbest就是这个新解了,如果都没上一个好,pbest还是上一个pbest,如果互相不支配,那么随机从新解和pbest里选一个作为下次寻找房子的pbest。
Gbest相当于这50个人有个对讲机,他们每次寻找房子后都互相通气儿,有个全局意义上的最好的房子,为了能把这700个房子都找完,他们要做的就是为gbest设定为不密集的区域的房子(当然这个房子是非劣的房子)。
外部档案集相当于一个外界的笔记本,每次寻找后这50个人告诉了笔记本他们这波找到的10个非劣解房子,和我笔记本里记录的30个房子比较下,40个房子里有两个房子被其他房子的目标支配,那么把他们删掉,剩下38个房子。但是笔记本只有30个空间,那么依据拥挤距离删掉8个,剩下30个。
那么这样寻找了100回合,最后在外部档案集里就是一个均匀的30个非劣解房子集合,这时候从这30个房子里去多目标决策挑选。
版权声明:本文为qiongxianxiang7859原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。