Hill Climbing アルゴリズムは、局所的な最適値を見つけるのに優れており、現在の状態の小さな部分を変更してより良い (この場合はより短い) パスを取得することで機能します。
より良い解決策を見つけるために小さな変更をどのように実装するかは、あなた次第です。単純に 2 つのノードを切り替えて、現在のソリューションよりも優れている場合にのみ結果を保持するとします。
2 番目の町を他の町と交換するだけで、次のようになります。
# first iteration
start: ABCDEFGA
next: ACBDEFGA, ADCBEFGA, AECDBFGA, AFCDEBGA, AGCDEFBA
# second iteration
start: ADCBEFGA
next: ACDBEFGA, ABCDEFGA, AECBDFGA, AFCBEDGA, AGCBEFDA
これらの可能性のそれぞれの適合性をチェックし、最良のものを保持する必要があります。次に、次の可能性がどれも現在の状態より良くなるまで繰り返します。反復ごとに同じアルゴリズムを継続的に使用する必要があります。
最初の繰り返しで 2 番目の都市、2 番目の反復で 3 番目の都市、3 番目の反復で 4 番目の都市を切り替えることができます。1 つのスポットに固執し、別のスポットと交換することをお勧めしますが、最終的には、これにどのように取り組んでも、さまざまな次善の答えが得られることになります。