2016-03-28 11 views
0

私はDorigo & Gambardella (1997)の論文をアリコロニーシステム(ACS)で検討しています。フェロモン更新ルールには、ローカル更新とグローバル更新の2つがあります。しかし、私はどのようにそれぞれを適用すべきか明確ではない。アリは、新しい都市に移動した後のツアー、すなわちを構築するようフェロモンのルールはどのようにアリコロニーシステムに適用されますか?

  1. 更新:

    ローカル更新

    は、私の知る限り3つのオプションがあります。 (p.56の本文で示唆されているように)

  2. 蟻がツアーを作った後、次の蟻が始まる前に更新されました。 (図3のp.55で示唆したように)
  3. すべてのアリがツアーを作った後に更新します。 (付録Aに明記されているように、アルゴリズムは最も並列化可能であると主張している)。

どのオプションが対象ですか?

グローバル更新ルールのフェロモン蒸発部分は、すべてのエッジまたは唯一のグローバル上のものに適用される場合には、テキスト(式4、P.56)と付録からも明らかではない

を更新最高のツアー。

グローバルアップデートルールの下ですべてのエッジがエバポレーションを受けますか?

編集

私はので、次のルールは、場所を取るように見えるDorigoの元のコードが含まれているように思われ、この GitHub repository発見した

:各アリ遷移として

  1. ローカル更新(蒸発+堆積を)新しい都市(すなわち上記のオプション1)に移動します。
  2. すべてのエッジの全体的な蒸発(または特定のフラグが設定されている場合は、近くの都市のみ)。
  3. グローバルベストツアーに沿ったグローバルアップデート(エバポレーション+デポジット)。

これは、二重(または三重)蒸発が起こっていることを示唆しているので、さらに混乱します。

答えて

1

Clever Algorithms book (by Jason Brownlee)にあるトラベルセールスマン問題のAnt Colony Systemの実装は、Dorigo(1997)の論文に基づいていると主張しています。コードに従ってフェロモン更新処理を含め、以下のように進む:Antがソリューションを構築完了した後

  • ローカルフェロモン更新処理がトリガされます。このプロセスは特定のフェロモン蒸発率を有し、溶液品質に依存しない。
  • グローバルフェロモン更新プロセスは、コロニーのすべてのアリが解を構築したときに、反復の最後に位置します。この段階は異なる蒸発率で機能し、溶液の品質に依存します。

この実施形態では、フェロモン更新プロセスは、全てのアリおよびそのすべての溶液成分(および対応するフェロモンマトリックス細胞)について起こる。 I ported the algorithm to Javaと私は最適に近いソリューションを得ているので、提案された手順はうまくいくようです。

+0

最適なソリューションはどのようにして見つけられますか? – Andrei

1

グローバルアップデートルールの下ですべてのエッジがエバポレーションを受けますか?

はい。

より多くのアリ(短い経路)によって取られた経路はより多くのフェロモンを持ち、より多くのアリによって捕獲され、最終的にすべての蟻がその経路をとるという考えがあります。だから、いつかフェロモンが蒸発し(自然のプロセスと同じように)、フェロモンの含有量を減らして蒸発をシミュレートする必要があります。

+0

ありがとう、それは意味がありますが、付録はこのビットを残して私を混乱させました。私はそれ以来、Dorigoによって書かれたように、質問の編集でいくつかのコードを見つけました。グローバルなベストツアーのエッジが二重に蒸発するという点で、実装がさらに異なるようです。 – James

関連する問題