チュートリアル5 牛さらい
問題
1970年代のアメリカで、牛などの家畜が血を抜かれた状態で死亡しているという報告が多発しました。これはキャトルミューティレーション(直訳:牛が骨抜きにされる)と呼ばれています。一説によると、牛たちは謎の力でUFOの中に引きずり込まれ、レーザーでカットされたとのことです。
さて、いまUFOが3頭の牛を連れ去ろうとしています。UFOがすべての牛をさらう順番にはどのようなパターンがありますか?
考え方1
これまでの問題は、「おはぎと饅頭」や「お客さんが座る、座らない」のように2択のどちらを取るか?というものだった。なので人や席をそのまま量子ビットに対応させて、「おはぎ=0」「饅頭=1」のように考えることができた。
ところがこの問題は「牛A, B, Cをどの順で連れ去るか」なので3択みたいなものである。3択はそのまま量子ビットに対応させることができない。
そこで次のような表を作ってみよう。
表の各マスに量子ビットを対応させ、アニーリングで1になった場所で解釈する。こうすれば順番の問題も表現できるぞ!
考え方2
それでは設定を考えよう。
まず、1番目に訪れる牛は必ず1頭だけだ。1番目に訪れる牛が0頭だとUFOは1ターン休んでいることになるし、2頭を同時にさらうこともできないからだ。つまり「表の各行の3つの量子ビットは必ず1つだけ1になる」ということだ。
また、各牛が連れ去られる順番(番目)も必ず1回だ。ある牛が1回もさらわれないということはないし、2回連れ去られることもない。うまく設定できるかな?
これらを設定してアニーリングして結果を確認しよう!
やってみよう
解答の確認
結果は何通り出たかな?理論的には6通りあるはずだ。
解答例
解答例をそのまま「実行」すると正解が確認できます。