巡回セールスマン問題 (TSP) を解決するために遺伝的アルゴリズムを実装しました。ミューテーションのみを使用すると、クロスオーバーを追加する場合よりも優れたソリューションが見つかります。通常のクロスオーバー メソッドが TSP で機能しないことはわかっているので、Ordered Crossover メソッドとPMX Crossoverメソッドの両方を実装しましたが、どちらも悪い結果に悩まされました。
私が使用している他のパラメータは次のとおりです。
変異: シングル スワップ変異または反転サブシーケンス変異 (ここで Tiendil が説明したように) で、変異率は 1% から 25% の間でテストされています。
選択: ルーレット盤の選択
フィットネス関数: 1 / ツアーの距離
母集団のサイズ: 100、200、500 をテストしました。GA も 5 回実行して、さまざまな開始母集団を用意しました。
停止条件:2500世代
同じ 26 ポイントのデータセットを使用すると、突然変異率の高い純粋な突然変異を使用して、通常、約 500 ~ 600 距離の結果が得られます。クロスオーバーを追加すると、結果は通常 800 距離の範囲になります。もう1つの紛らわしいことは、問題を解決するために非常に単純な山登りアルゴリズムも実装したことです.1000回実行すると(GAを5回実行するよりも高速です)、約410〜450の距離で結果が得られます. GAを使用してより良い結果を得るために。
クロスオーバーを追加すると GA のパフォーマンスが低下する理由について何か考えはありますか? そして、ローカル最大値を見つけたら探索する方法がないため、ローカル最大値に固執する単純なヒルクライムアルゴリズムよりもパフォーマンスがはるかに悪いのはなぜですか?