PSO アルゴリズムを実装しています。私はこのデータ構造を使用します:
typedef struct {
float x;
float y;
} C_struct_Class2D;
typedef struct {
C_struct_Class2D *pos;
C_struct_Class2D *best_pos;
C_struct_Class2D *vel;
} C_struct_Particle;
typedef struct { <br>
C_struct_Particle **particles;
C_struct_Particle *g;
} C_struct_Swarm;
C++ ではなく、C で作業する必要があります。そのため、クラスの代わりに構造体を使用しています。
構造体の説明:
複数の Particles(**particles) と最適な Particles(*g) で構成される Swarm(C_struct_Swarm) があります。各パーティクルには、タイプ「C_struct_Class2D」の位置、最適位置、および速度があります。
いくつかの方法では、各データにメモリ空間を割り当てて初期化します。しかし、データ構造全体がメモリ内で連続しているのが好きです。すべての構造体がアドレス空間で互いに後ろにあるようにします。
メモリは次のようになります。
C_struct_Swarm 粒子[0] 粒子[0]->位置 粒子[0]->最高の位置 粒子[0]->ベル 粒子[1] 粒子[1]->pos パーティクル[1]->best_pos 粒子[1]->ベル ... ... ... ... 粒子[n] 粒子[n]->pos パーティクル[n]->best_pos 粒子[n]->vel g->pos g->best_pos g->vel
どうすればこれを達成できますか?
よろしく