問題タブ [particle-swarm]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
matlab - BP ニューラル ネットワークを PSO と統合する
PSO を使用して、Matlab で乳がんを予測するために BP ニューラル ネットワークの重みを最適化したいと考えています。ニューラル ツールボックスには、それを行うためのオプションはありません。検索した後、ミーム的アプローチを見つけましたが、Matlab をスローする方法がわかりません。誰でも私を助けることができますか?ありがとう。
matlab - ACO、ABC、PSO、BFO、FA、SSO などのさまざまなアルゴリズムの比較基準を提案できる人はいますか?
これらの方法を matlab を使用して比較したいと思います。では、最適な方法を計算するための基準は何でしょうか。ただし、アプリケーションごとにさまざまな方法が役立ちます。以下のリンクで説明されている目的関数を使用できますか。さらに、どの関数が計算に役立つか。
python - 粒子群最適化を使用した適切なエンコード
問題
私は粒子群最適化について少し調べていたので、テストしてみようと言いました。
私が解決しようとしている問題は、バランス パーティション問題です。または、単純にサブセット合計問題 (合計がすべての数値の半分になる) に縮小されます。
粒子の速度を更新するための一般的な式は
しかし、この質問についてはあまり詳しく説明しません。
サブセット合計問題に対するオンラインでの PSO の試みがないため、代わりに巡回セールスマン問題を調べました。
それらは、訪問した町のセットを取得し、ある町を別の町から減算し、それに対して何らかの操作を行うことを含む、速度を更新するためのアプローチです。
それと上記の式との間に関係は見られませんでした。
私のアプローチ
そこで私は公式を破棄し、部分和問題への独自のアプローチを試みました。
私は基本的にgbest
andを使用しpbest
て、特定の要素をサブセットから削除または追加する確率を決定しました。
つまり、問題空間が[1,2,3,4,5]
(ターゲットが7
または8
) で、現在の[1,None,3,None,None]
粒子(サブセット)gbest
が[None,2,3,None,None]
3
2
1
gbest
私はコードを投稿できますが、それが必要だとは思わないので、アイデアを得ることができます (私は python を使用しています - したがってNone
)。
基本的に、これはある程度機能し、まともな解決策を得ましたが、より大きなデータセットと値では非常に遅くなりました.
私の質問
問題をエンコードして、粒子の「速度」をスマートな方法で更新していますか?
これが正しく収束するかどうかを判断する方法はありますか?
特定の問題空間に対して収束する「更新」式を作成する方法を学ぶために使用できるリソースはありますか?
よろしくお願いします!
optimization - 最適化アルゴリズムの実装に使用される混合整数線形計画法 (遺伝的または粒子群など)
ユーザーの自動グループ化の最適化アルゴリズムについて学んでいます。しかし、私はこれらのアルゴリズムにまったく慣れておらず、関連する文献を調べたときに聞いたことがあります。そして、別の方法として、記事の 1 つで、著者は整数計画法を使用して (独自のロジックに基づいて) 独自のアルゴリズムを実装しました (これが私が IP について聞いた方法です)。
混合整数線形計画法を使用して遺伝的/粒子群 (またはその他の最適化) アルゴリズムを実装する必要があるのか 、それともオプションの 1 つにすぎないのか疑問に思っています。最後に、ユーザーを自動的にグループ化する Web ベースのシステムを構築する必要があります。助けていただければ幸いです。
java - String 要素の ArrayList に整数値を割り当てる方法は?
ユーザーがアプリケーション (Android Studio) に入力するArrayList
文字列要素があります。MainActivity
といいArrayList<String>
serviceNames
ます。サービス名は、Facebook、Fitness App、Clock App などのようなものにすることができます。Swarm Particle アルゴリズムを使用するフィットネス関数に取り組んでいるため、サービスのこれらのユーザー入力のそれぞれに整数値を割り当てたいと考えています。
num_dimensions を 2 (WLAN と DATA) に加えて、ユーザーがメイン アクティビティで入力するサービスの数にしたいと考えています。したがって、4 つのサービスを入力すると、合計で 6 つのディメンションになります。次に、これらのサービスに「int」値を次のように割り当てたいと思います...
それが完了したら、これらの値を次元数のビットとして受け取る関数に渡したいgetGoodness()
ので、Facebook は次元の 3 番目のビットになります。どんな助けやアドバイスも素晴らしいでしょう、私はこれをプロジェクトとして引き受けている大学の学生です。
編集: getGoodness() 関数にハッシュマップを実装しました。私のコードは次のようになります...
NUM_DIMENSIONS の最初の 2 ビットを WLAN と DATA にする必要があります。したがって、ユーザーが入力するサービスごとに、それらに割り当てられる整数値は 2 から 1 ずつ増加します。つまり、(2, Facebook)、(3, Twitter)、(4, Uber) などです。次の問題は、これらを getGoodness() 関数に渡します。各サービスの 0 ~ 100 のユーティリティ (優先度) コストを取得するメイン UI アクティビティから配列リストがあります。これは costUtilities と呼ばれ、80.0 ~ 100.0 (double) のユーティリティを含むビットが有効でない場合は -2000 の値を返すようにします。これについてご協力いただければ幸いです。そうでない場合は、これまでのご支援に感謝し、PSO に関する最終年度の個人プロジェクトでの幸運を祈っています :)