私はアリのコロニー最適化アルゴリズムをやっています。いくつか質問があります。throw ant-colonyを検索しようとしましたが、何も見つかりませんでした。
1 — アルゴリズムの結果は?
いくつかのグラフがあり、開始点から目標点までの最適なパスを見つける必要がありますよね? このアルゴリズムは、ダイクストラ アルゴリズム (1 つの最短パスを見つける) のようには機能しません。そこには確率要素があります。10 サイクル後、5000 匹のアリが最悪の経路を選択できますが、それにもかかわらず、より良い経路のフェロモンは 1000 倍になります。つまり、4999 匹のアリが選択した(99% の確率)1 -> 3 -> 5
という事実にもかかわらず、 5000 番目のアリがパスを選択できることを意味します(平均確率は 1%)。1 -> 2 -> 5
あくまでも一例です。したがって、問題は、最も最適化された (最適な、いくつかのパラメーターで最適な) パスを検出する方法です。それを検出する必要がありますか、または1 -> 2 -> 5
私の例では正しい結果 (起こります...) であり、最後に選択したパスを出力する必要がありますか?
2 — 結果の出力方法
この答えはおそらく最初の答えに依存します。どうやって?各サイクルの動作アルゴリズムとプロトコルの総まとめを出力する必要があると思います。
要約データは次のようになります。
Path found: Yes/no
Path: path/message, that best path is not found
Iteration: N
プロトコルは次のとおりです。
Start data for iteration 3
Pheromone level for this iteration
Path found on this level or not (?)
Path on this iteration (?)
End data for iteration 3
Start data for iteration 2
Pheromone level for this iteration
Path found on this level or not (?)
Path on this iteration (?)
End data for iteration 2
Start data for iteration 1
Pheromone level for this iteration
Path found on this level or not (?)
Path on this iteration (?)
End data for iteration 1
助言がありますか?各反復の出力データを手伝ってください。
3 — フェロモン レベルは、特定の値に達すると成長を停止します
なぜそうなのですか?例えば(500匹のアリ)、ベストパス上のフェロモンレベルは検索(サイクル)の最大10ステップまで成長し、その後安定します。それは良い動作ですか、それとも私のアルゴリズムにエラーがあることを意味しますか? エラーがない場合、なぜこの動作が表示されるのですか?
4 — 私のプログラムのアーキテクチャ
onclick
アルゴリズムの NEXT STEP (次のサイクル) を呼び出すハンドラを作成するのが良い方法だと思います。しばらくループしていた例を見ました(リンクを覚えていない、お見せできません:'(今)。私の方法は受け入れられますか、それともまったく間違っていますか?