チュートリアル5 分散して走れ

問題

3台の車を3つのルートに分散して走らせます。ルート選択にはどのようなパターンがありますか?

考え方1

この問題も「車はa, b, cのどれを通るか」というものであり、そのまま量子ビットに対応させることができない。

そこで次のような表を作ってみよう。

表の各マスに量子ビットを対応させ、アニーリングで1になった場所で解釈する。こうすれば3択以上の問題も表現できるね!

考え方2

それでは設定を考えよう。

まず、各車は必ず1つのルートを通る。言い換えると「表の各行の3つの量子ビットは必ず1つだけ1になる」ということだ。

また、分散して走らせるということは、各ルートはできるだけ空いていてほしい。言い換えると「各ルートとも車はできれば1台も走ってほしくない」ということだ。うまく設定できるかな?

これらを設定してアニーリングして結果を確認しよう!

やってみよう

解答の確認

結果は何通り出たかな?この問題も理論的には6通りあるはずだ。

使う量子ビットが多いほど、一つ一つの結果の出現回数は少なくなる傾向にある。そのためすべての最適解がヒットしないこともある。実行ボタンの左にある回数をデフォルトの100から500くらいに増やして実行すれば、すべての最適解にヒットする確率が高まるぞ!

解答例

 解答例をそのまま「実行」すると正解が確認できます。アニーリング回数を500くらいに増やしてみよう。