how to apply bounds restriction in PSO

3 ビュー (過去 30 日間)
chaker ben salem
chaker ben salem 2022 年 3 月 10 日
回答済み: Walter Roberson 2022 年 3 月 11 日
Hello,
i need more clarification about the different ways to ensure that the end results in PSO are still in bounds
in pso, bound controls should be applied on velocity, however doing so still gives me value out of bound in the particle position
because in pso the new position in iteration i, X(i)= X(i-1) + Velocity , that means the position could still receive a value out of bounds when we add the value of previous position.
my question is how to i fix this without changing the fundamentals of PSO.
i appreciate your help,
  2 件のコメント
Walter Roberson
Walter Roberson 2022 年 3 月 10 日
chaker ben salem
chaker ben salem 2022 年 3 月 10 日
No,am using a simple self made pso to better understand how it work

サインインしてコメントする。

回答 (1 件)

Walter Roberson
Walter Roberson 2022 年 3 月 11 日
If you were using particleswarm() and if each position element was paired with a velocity element, then the way it would be handled would be to create a matrix of linear constraints
for k = 1:N
A(k, k) = 1;
A(k, k+N) = 1
b(k) = position_upper_bound(k);
A(k+N, k) = -1;
A(k+N, k+N) = -1;
b(k+N) = -position_lower_bound(k);
end
and then it would just be a normal linear constraints check.

カテゴリ

Help Center および File ExchangeParticle Swarm についてさらに検索

タグ

製品

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by