遺伝的アルゴリズムのプログラムについて困ったので質問です。今は、純粋に一周するのにかかった総距離の短いもの上位2つを選んでいます。他の例にならってルーレット方式にしようと考えています。10このデータからルーレット方式で2こ選ぶとしてどのように重みをつけ、偏ったルーレットを作れば良いのでしょうか?1つずつswitchで書くわけにもいかないと思います。具体的なコードで教えていただきたいです。・交叉2このデータ(親)から10このデータ(子)を作ろうとしていますが、どの方式をとると良いのでしょうか?また、親のデータをそのまま受け継ぐ子データがあってもいいと思いますか?2こから4こはなんとなくわかりますが、5こ以上作るやり方がわかりません。選択はそのまま上位2つを選び、交叉は下のようにしました。最適化ができていません。最初の方こそそれらしく(1周の総距離が)短くなっていきましたが、よくみる、外側を1周するようにはなりません。何がいけないのでしょうか?改善すべきところを教えてください。交叉についてまずい所もありますが、それ以前の問題のような気がします。遺伝的アルゴリズムは、突然変異と評価と選択さえ機能すれば、解が収束するはずです。これらの機能のみを正しく作り、完成後に交叉を実装してはどうでしょうか。適当な指摘のためには、ソース全体を載せてください。必要ならば都市のデータも。パス表現・順序交叉に変えてみました。以前として解が収束しません。交叉以外の部分が問題のようですね。現在、突然変異は確率1%で1データの通る都市2つを交換するようになっています。評価は総距離に依存しています。選択はルーレット方式になっています。遺伝的アルゴリズムは、突然変異と評価と選択さえ機能すれば、解が収束するはずです。「くっちゃべー」さんでしょうか。名前を統一してください。フォーラムルールも確認してください。交叉以外の部分が問題のようですね。↓やはりうまくいっていないこの状況のみから言えることは、あまりありません。交叉と交叉以外の両方に問題があるかもしれません。変異の確率を上げてデータすべての通る都市の順番が同じになるまで待つとかでしょうか?(1)まず、交叉をやめましょう。それ以外の部分が完成してから挑戦してください。(2)世代ごとに最も評価が高かった個体の総距離を比較してください。世代が進むにしたがって、総距離は減っていくはずです。絶対に親世代より悪化することがないようにしてください。都市数が10程度で見つけられないなら、存在意義に疑問を感じます。10!は総当たりで調べられる数ですから。上記の(2)を試し、問題の切り分けを行ってください。(3)についてはその後の課題です。(交叉は更に後)(※)親世代より悪化することもありえる、という仕様も、ありだとは思います。プログラム全体の難易度が若干上がるので、これも後回しがよいでしょう。