0

編集 こんにちは、粒子 (または遺伝的) スウォーム最適化を実装しようとしています。しかし、私はすでに最初のステップで立ち往生しています...

粒子を初期化する方法と、これらの粒子が (コードに関して) 何であるかについて混乱しています。

アルゴリズム(それ自体)と実装に関するさまざまな情報を見つけましたが、必要な情報が見つかりませんでした...

誰か説明してくれませんか?

ありがとう。

アンドレア。

4

2 に答える 2

1

Python に精通している場合は、deapを使用して遺伝的アルゴリズムと pso を学習しました。優れたチュートリアルとドキュメントがいくつかあります。

定義: PSO は、ここでは粒子と呼ばれる候補解の集団を持ち、単純な数式に従ってこれらの粒子を探索空間内で移動させることによって、問題を最適化します。粒子の動きは、検索空間内で見つかった最良の位置によって導かれます。この位置は、粒子によってより良い位置が見つかると更新されます。

粒子とは

粒子には、現在の位置、速度、および過去の位置の記録があります。各パーティクルには、独自の速度と位置の更新ルールがあります。

最適化検索はどのように機能しますか?

指定された回数だけアルゴリズムを実行します。各反復で、各パーティクルの速度と位置を更新します。次に、最善の解決策または十分な解決策が見つかることを願っています。

具体例。

検索の目的が星を見つけることだと想像してください。各反復で、星を見つけるのに最も近い粒子を見つけます。次に、他のすべてのパーティクルをその方向に移動します。

PSO 写真

画像提供:wirelesstech

于 2016-02-08T21:54:20.500 に答える
0

「自分のプログラムで各粒子をどのように表現すればよいか」と尋ねている場合、おそらくそれらを自分が作成するクラスのオブジェクトにしたいと思うでしょう。たとえば、その粒子の位置と状態の情報を含む「Particle」クラスがあり、それらの粒子のコレクションがあり、アルゴリズムの新しい反復ごとに、そのコレクションをループして何でも行うことができます各粒子に発生する必要があります。– ケビン・ウェルズ

于 2016-04-07T08:23:17.393 に答える