A5: Generate One-hot Superposition State II

実行時間制限:3 秒

メモリ制限:512 MiB

配点:200点

Writer:ST12

解説

問題 A4 の想定解法では量子回路の深さは 2n12n - 1 となり、この問題を解くことができません。では、どのように量子回路を改善すればよいのでしょうか?

以下の 44 量子ビットの例を確認してみましょう。

Wstate

この量子回路は、量子状態 14(1000+0100+0010+0001)\frac{1}{\sqrt{4}} (\ket{1000} + \ket{0100} + \ket{0010} + \ket{0001}) を生成しますが、各量子ゲートはその前のすべてのゲートが作用したあとに作用し、同時に作用させることはできません。

この回路では同じ量子ビットに対して連続して制御 RyR_y ゲートと制御 XX ゲートが適用されていますが、この部分を改良し、先に制御 RyR_y ゲートをすべて適用させた後に制御 XX ゲートを適用させることを考えましょう。

Wstate_short

こうすることで、最後の制御 RyR_y ゲートと最初の 制御 XX ゲートは異なる量子ビットのペアに作用するため、同時に作用させることができます。 こうして、量子回路の深さは 7 から 6 に改善されました。

以上の操作を一般の nn について行うと、量子回路の深さは n+2n + 2 となり、この問題を解くことができます。

解答例

解答例は以下の通りです。

import math
 
from qiskit import QuantumCircuit
 
 
def solve(n: int) -> QuantumCircuit:
    qc = QuantumCircuit(n)
 
    theta = [2 * math.atan(math.sqrt(i)) for i in range(n - 1, 0, -1)]
 
    qc.x(0)
 
    for i in range(n - 1):
        qc.cry(theta[i], i, i + 1)
 
    for i in range(n - 1):
        qc.cx(i + 1, i)
 
    return qc