hdoj 1109 粒子群優化演算法(PSO)

2021-07-05 13:39:26 字數 1096 閱讀 4201

題目連線:

大意是在乙個平面內有很多點,我們要在平面內找到乙個點,使得這個點與其他點之間的最短距離最大。

看到別人都是用的模擬退火或者是爬山法,感覺模擬退火與粒子群優化演算法相比更容易陷入區域性最優,所以還是用pso演算法比較心安。

利用粒子群優化演算法,設定了20個粒子和100代即可ac。**如下:

#include #include #include #include using namespace std;

#define num_parcle 20

double w = 0.8;

int n;

int gen = 100;

struct parcle

;struct point

;template double distance(x& p,y& q)

point point_list[1000];

parcle now[num_parcle+1];

parcle last[num_parcle+1];

parcle history[num_parcle+1];

int max_x,max_y;

double valuate(parcle& cv)

double dis = distance(cv,point_list[0]);

double temp;

for(int i(1);inow[0].dis)

now[0]=now[i]; }}

void update()

if(temp>now[0].dis)

now[i].vx = w*now[i].vx + 2*rand()%1000/1000.0*(now[0].x-now[i].x)+2*rand()%1000/1000.0*(history[i].x-now[i].x);

now[i].vy = w*now[i].vy + 2*rand()%1000/1000.0*(now[0].y-now[i].y)+2*rand()%1000/1000.0*(history[i].y-now[i].y);

} }int main()

initi();

w = 0.8;

for(int j(0);j

粒子群演算法 1 粒子群演算法簡介

粒子群演算法簡介 一 粒子群演算法的歷史 粒子群演算法源於複雜適應系統 complex adaptive system,cas cas理論於1994年正式提出,cas中的成員稱為主體。比如研究鳥群系統,每個鳥在這個系統中就稱為主體。主體有適應性,它能夠與環境及其他的主體進行交流,並且根據交流的過程 ...

粒子群演算法 1 粒子群演算法簡介

原文 粒子群演算法簡介 一 粒子群演算法的歷史 粒子群演算法源於複雜適應系統 complex adaptive system,cas cas理論於1994年正式提出,cas中的成員稱為主體。比如研究鳥群系統,每個鳥在這個系統中就稱為主體。主體有適應性,它能夠與環境及其他的主體進行交流,並且根據交流的...

優化演算法 四 粒子群優化演算法 PSO

粒子群演算法 particle swarm optimization,pso 是一種模仿鳥群 魚群覓食行為發展起來的一種進化演算法。其概念簡單易於程式設計實現且執行效率高 引數相對較少,應用非常廣泛。粒子群演算法於1995年提出。粒子群演算法是優化演算法中最簡單,最沒有心機的演算法了,也是入門優化演...