最近注目されたことは、「新しい最高得点」が生まれたときに、他のものより遅くなることでした。これは間違いなく、「新しいベストスコア」を生むあらゆるステップで起こっているソリューションのクローニングです。解決策「新しい最高得点」が連続して発生するステップでクローン化が発生する
「新しいベストスコア」のステップが連続していない場合は、これは問題ありません。たとえば、50ステップが連続している場合、ソリューションのクローニング処理は50回実行されます。よりスマートな方法は、シーケンスの最後にクローン処理を行うことです(1回のみ)。
これは簡単に実装できますか、それを防ぐ他の方法がありますか?
「新しいベストスコア」のステップごとにクローンを作成し、ステップとして選択された移動によって変更された計画エンティティインスタンスを複製し、それらを最良のソリューションに追加することだけが考えられます。
ジェフリー・アイムあなたが私のことを完全に理解しているかどうかはわかりませ50ステップを連続したポイントは、それぞれが「新しいベストスコア」を作成したことです(計算されたスコアのために作業ソリューションが最高であることを100%確信しています)。悪いスコア。ステップの中で何が行われているのは、doとundoの動きの束であり、最後にはステップ自体です。したがって、最後の元に戻す移動の後で、ステップ自体の前にクローニングを行うことができます。 –
"pickEarly"オプションが有効になっている場合( "FIRST_LAST_STEP_SCORE_IMPROVING"またはFIRST_BEST_SCORE_IMPROVING)には、単に移動が行われますが、これは再び動作します。これは、単にステップが早く行われた場合には、ステップ。 –
2番目のアイデアは、ソリューションを増分的に行うことでした(インクリメンタルスコア計算と同様)。インクリメンタルスコア計算が機能しているように(最初にすべてのエンティティのスコアを計算する)、ソリューション全体をクローンします(一度だけ)。基本的にヒューリスティックな構築の後のクローン。したがって、この時点でクローン作成されたソリューション全体が作成され、ステップ(「新しいベストスコア」を生成する)を行う際のローカル検索では、ムーブされたエンティティインスタンスがクローン化されたソリューション全体で取得、クローンおよび更新されます。スコアも更新されます。 –