1

Particle Swarm Algorithm を使用して Monoalphabetic Substitution Ciphers を解決する C# アプリケーションを作成しています。

基本的に私はプロセスを理解し、ベクトル ect を更新するために必要なすべてのアルゴリズムを見つけました。私がうまくいかないのは、問題空間で26文字のソリューションの位置/座標を計算する方法です。これにより、ここにあるアルゴリズムでそれを使用できます: http://www.codeproject.com/Articles/42258/Particle-swarm -関数最適化の最適化

位置は単にアルファベットの文字位置に関連する int の配列ですか?

どんな助けでも大歓迎です。

4

1 に答える 1

2

PSO は基本的に連続空間で動作します。もちろん、離散問題のバージョンもあり、この問題は離散問題のようです。

スペースを定義しました。境界 (0, 26) で連続させます。これで、粒子の位置を統計分布の平均として使用したり、単に値の下限を取得したりできます。重複通話が多くなるのでメモしておくと良いと思います。

次は制約です。同じ文字に置き換えることはできません。複数の方法で解決できますが、最も簡単な方法は修復関数です。アルゴリズムが既に設定されている値に遭遇した場合 (複数の値が同じ床を持つため)、そのままにしておいて、後で何の文字かがわかったときに戻ってきます。まだ利用可能です。

ところで、PSO を使用して、言語内の文字出現の統計を使用して問題を解決する ANN をトレーニングすることもできます。

それが役立つことを願っています。乾杯!

于 2014-05-26T21:22:14.897 に答える