非常にに大きな数とします。しなければいけません。最小にするもの、ということになります。最小値をとる」状態になります。代わりにを最小化すればよいことがわかります。求めるコードは以下のとおりです。あることを使っています。量子アニーリングマシンに投げれば、最適解を得ることができます。シミュレーションの結果はこちらをご覧ください。シミュレーション上述の通り、量子アニーリングを使って最適化問題を解くには、以下のステップを踏みます。深掘りして、シミュレーションの仕組みについて紹介したいと思います。最適解を見つける仕組み量子アニーリングのシミュレーションに進む前に、そのもととなったシミュレーティッドアニーリングについて、簡単に説明します。)を表していると思ってください。連続でないので、正確にはこのようななめらかな図にはなりませんが、イメージは伝わると思います。小さい点を探していきます。簡単で、さまざまなアルゴリズムのベースとなるものとして挙げられるのは、近傍探索法と呼ばれる以下のような方法です。小さくなるよね」という発想です。図のように凸凹がたくさんある場合は、山を超えることができずに局所的な最適解にトラップされてしまうため、そのような方法ではうまくいきません。そこで、「適当な確率で山を飛び越えるようにしよう」というのがシミュレーティッドアニーリングです。小さい値から徐々に大きくしていきます。(これは徐々に温度を下げていくことに対応します。大きくなると、小さな山しか超えられないようになります。大きくすることで、解を安定させます。シミュレーティッドアニーリングのアルゴリズムは、以下のとおりです。上記を繰り返すシミュレーティッドアニーリングは、温度を十分にゆっくりと下げていけば確実に最適解を得られることが理論的には知られていますが、温度の下げ方が速すぎると局所解にトラップされてしまう可能性があります。βを大きくする部分に分けて実装しています。興味があればご確認ください。個とします)の地点で同時に探索を始めます。ことをトロッタ数と言います。個の状態が互いに独立ではなく、お互いに干渉しながら最適な状態を探していくことです。これによって、山の向こう側を「覗き見」しながら最適解を探せることになります8。干渉が強ければお互いに同じ状態になろうとして、小さければお互いを気にせずに(局所的な)最適解を探すことになります。小さい方が実現されやすいようにしておくことで、徐々にエネルギーの低い状態に引き寄せられるように集まっていくようになります。物理学では横磁場の強さと呼ばれているものです。磁石と見立てたときに、横から磁場をかけることに対応しています。話が抽象的なので、具体的な式で説明します。代わりにを最小化します。個のシミュレーションを同時に走らすことを表しています。大きくなり、干渉が強くなることがわかります。同じ値を取りやすくなります。