「状態の作成」の問題を3つの部分に分割することで、問題を単純化できます。
- 位相やどの状態にどの大きさがあるかを気にすることなく、必要な大きさのコレクションを準備します。
- フェーズを修正します。
- 順序を修正します。
次に、ハーディ状態について考えます。私たちが作る必要がある大きさは何ですか?3 / √のインスタンスが1つ必要です3/12−−√1/ √のインスタンスの 12および3つのインスタンス1/12−−√。分割し続ける「残りの振幅」状態にすることで、一度に1つずつ作成できます。
私たちは、左の励起、と一方の状態にあるすべての振幅で始まりℓ0|1000...00⟩どこℓ0=1。私たちがやりたいことは、望ましい大きさを残しながら、励起を右方向に移動することです。だから始めに、マグニチュード3 / √を残したい3/12−−√Ry(θ0)θ3/12−−√|1000...00⟩+ℓ1|1100...00⟩ℓ1|1000...00⟩+3/12−−√|0100...00⟩1/12−−√Ryθ1ℓ2|1000...00⟩+3/12−−√|0100...00⟩+1/12−−√ℓ2|0010...00⟩
kRz(ϕk)ϕk
次に、正しい順序にしたい。これを行う最も簡単な方法は、出力キュービットであるいくつかの追加のキュービットを用意することです。これまでに準備した各キュービットと各出力キュービットについて、2つの間にCNOTを追加するか、しないかです。たとえば、振幅状態の場合3/12−−√|11⟩
これらの手順を適用すると、ハーディ状態を作成するための非効率的ではあるが正しい回路が生成されます。Quirkで回路を開くことができます。
あまりワークスペースを使用せずに状態を生成したい場合、タスクは難しくなります。ただし、マグニチュード、フェーズ、順序パターンの順に従うこともできます。また、素敵なパターンを持つマグニチュードセットを準備する賢い方法もあります。たとえば、1つの振幅のみが他の振幅と異なる場合、部分的な振幅増幅を1回行うだけで状態を準備できます。