方程式の線形システム(HHL09)の量子アルゴリズム:ステップ2-初期状態の準備


9

これは、の続きです何がある-ステップ2:方程式の線形システムに対する量子アルゴリズム(HHL09)|Ψ0


論文:線形方程式系の量子アルゴリズム(Harrow、Hassidim&Lloyd、2009)では、アルゴリズムの実際の実装の詳細は示されていない。どのように正確に状態| B 作成され、ソート「であるブラックボックス」(ページ2-3を参照)。|Ψ0|b

|Ψ0=2Tτ=0T1sinπ(τ+12)T|τ

および

|b=1Nbi|i

ここでクロック・レジスタの初期状態であると | B 入力レジスタの初期状態です。|Ψ0|b

(言う)IBM キュービット量子コンピューターでアルゴリズムを実行したい。16そして、特定の方程式を解きたいここで、Aは実際のエントリを持つ4 × 4エルミート行列で、bは実際のエントリを持つ4 × 1列ベクトルです。Ax=bA4×4b4×1

例を見てみましょう:

A=[1234215635174671]

そして

b=[1234]

寸法は、所与の及びBを、我々は必要べきログ2 4 = 2入力レジスタの量子ビットと他の6つの我々は、固有値はで表すことにすると仮定レジスタクロックに量子ビットを90 %の精度、最大3ビット精度固有値の場合(これは以前にここで説明されいます)。したがって、合計2 + 6 + 1 = 9キュビットがこの目的に必要になります(追加の1キュビットは補助です)。Ablog24=2690%32+6+1=91

質問:

  1. この情報を使用して、それが可能な初期状態を作成します| B IBMに16量子ビット版?|Ψ0|b16

  2. が大きすぎてIBM量子コンピューターに実装できないと思われる場合は、2 × 2エルミート行列Aの初期状態の準備のを示すこともできます(または、そのような例への参照を示します)。4×42×2A

IBM 16キュービット量子コンピューターでこれが可能かどうか(つまり、それが可能かどうか)と、そのために必要なゲートについての一般的な考えを知りたいだけです。IBM 16キュービット量子コンピューターでない場合、QISKitシミュレーターを使用して初期状態の準備を再作成できますか?Ψ 0| b H HHLアルゴリズムで?これを実行する他のより良い代替手段はありますか?|Ψ0|b


1
私が知る限り、異なる時間の重ね合わせで物事を行うため、IBMはHHLを実行できませんが、私が間違っていても驚かないでしょう。@James Woottoonが答えをよく知っているかもしれません。
user1271772

@ user1271772私もそう考えましたが、誰かがチャットでIBMでこれに続いて HHLをシミュレートしたと誰かに言われたので、私は少し懐疑的です。4×4
Sanchayan Dutta

そうですね、多分、Yudong Caoの論文(リンクした論文)の図4で十分です。
user1271772

@ user1271772はい、しかし残念ながら、それはその特定のマトリックスに対してのみ機能します。一般的な手法を探しています。その手法については、この記事をより詳しく読む必要があります。
Sanchayan Dutta

John Watrousがコメントの1つに、誰かが特定の回路を要求しているところの質問に対して述べたように、「面倒でありながら概念的には面白くない仕事をするように人々に要求しています」。ユードンはこれらの回路を作ったとき、学部の工学部の学生でした。彼はあなたよりも多くのトレーニングを受けていませんでした(実際、あなたの急速な進歩に基づいて、おそらく、その論文を書いている時点で彼が行っていたよりも量子コンピューティングについてもっと知っています)。彼がこの回路を作ることができれば、目の前に来るHHLの例に対応する回路を作ることができるはずです。
user1271772

回答:


3

|Ψ0|b IBMチップによって実装されたゲートがこの可能性を提供するため、可能です。

ここでは、2つの異なる量子状態を要求します。

  1. |b|bN
  2. |Ψ0|bbi

|b|Ψ0|Ψ0|Ψ0

|b|Ψ0

|Ψ0|Ψ0

QISKitでの実装のために、与えられた量子状態を初期化するサンプルを以下に示します。

import qiskit

statevector_backend = qiskit.get_backend('local_statevector_simulator')

###############################################################
# Make a quantum program for state initialization.
###############################################################
qubit_number = 5
Q_SPECS = {
    "name": "StatePreparation",
    "circuits": [
        {
            "name": "initializerCirc",
            "quantum_registers": [{
                "name": "qr",
                "size": qubit_number
            }],
            "classical_registers": [{
                "name": "cr",
                "size": qubit_number
            }]},
    ],
}
Q_program = qiskit.QuantumProgram(specs=Q_SPECS)

## State preparation
import numpy as np
from qiskit.extensions.quantum_initializer import _initializer

def psi_0_coefficients(qubit_number: int):
    T = 2**qubit_number
    tau = np.arange(T)
    return np.sqrt(2 / T) * np.sin(np.pi * (tau + 1/2) / T)

def get_coeffs(qubit_number: int):
    # Can be changed to anything, the initialize function will take
    # care of the initialisation.
    return np.ones((2**qubit_number,)) / np.sqrt(2**qubit_number)
    #return psi_0_coefficients(qubit_number)

circuit_prep = Q_program.get_circuit("initializerCirc")
qr = Q_program.get_quantum_register("qr")
cr = Q_program.get_classical_register('cr')
coeffs = get_coeffs(qubit_number)
_initializer.initialize(circuit_prep, coeffs, [qr[i] for i in range(len(qr))])

res = qiskit.execute(circuit_prep, statevector_backend).result()
statevector = res.get_statevector("initializerCirc")
print(statevector)

1ここで「エラー」とは、完全な量子コンピューターを扱うときの理想的な状態と近似の間のエラーを指します(つまり、デコヒーレンスなし、ゲートエラーなし)。


0

4 x 4行列AのHHLアルゴリズムは、IBMコンピューターでは大きすぎる場合があります。arXiv 1302.1210 link 線形方程式の解法システムによるアルゴリズムの小さなおもちゃバージョンを試しました

私はこのスタックエクスチェンジでこの回路について少し説明しました:https ://cs.stackexchange.com/questions/76525/could-a-quantum-computer-perform-linear-algebra-faster-than-a-classical-computer/ 77036#77036

残念ながら、これはA = 2 x 2行列の1量子ビット入力に過ぎず、答えにはIBM回路へのリンクが示されています。


4x4 HHL実装の問題は、量子ビットの数(7量子ビットが必要です)ではなく、量子ゲートのエラー率とデコヒーレンス時間です。QISKitを使用した4x4システムの実装は、こちらから入手できます。実装はarxiv.org/abs/1110.2232v2に従います。
Nelimee

4 x 4 HHLの優れた実装。
Bram
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.