書籍 p.82 のコードの通りだと現時点でうまくバックエンドを掴めない。
from qiskit import IBMQ provider = IBMQ.load_account() try: backend = provider.get_backend('ibmq_5_yorktown') print(backend.configuration().basis_gates) except: available_cloud_backends = provider.backends() print(available_cloud_backends)
でダメな時は他の候補を探したほうが良さそう。例えば ibmq_lima
がいけた。ネイティブゲートとしては次のものがあるようだ:
['id', 'rz', 'sx', 'x', 'cx', 'reset']
SX ゲートは $\sqrt{X}$ ゲートとも書くようだが、$X$ は正値行列ではないので厳密にはちょっと気になる。つまり、
\begin{align*}
\left\langle
\begin{pmatrix}
0 & 1 \\
1 & 0
\end{pmatrix} \begin{pmatrix}
x \\ y
\end{pmatrix}, \begin{pmatrix}
x \\ y
\end{pmatrix} \right\rangle = 2xy
\end{align*}
なので、正ではないのでシックリくる形で $\sqrt{X}$ は定義できないように思う。が・・・
\begin{align*}
\frac{1}{4} \begin{pmatrix}
1+ i & 1-i \\
1-i & 1+i
\end{pmatrix}^2 = \frac{1}{2} \begin{pmatrix}
\exp(i \frac{\pi}{4}) & \exp(-i \frac{\pi}{4}) \\
\exp(-i \frac{\pi}{4}) & \exp(i \frac{\pi}{4})
\end{pmatrix}^2 = X
\end{align*}
なので、形式的には
\begin{align*}
\sqrt{X} = \frac{1}{x} \begin{pmatrix}
1+ i & 1-i \\
1-i & 1+i
\end{pmatrix}
\end{align*}
と考えるというのも理解はできる。
ネイティブゲートへの変換では現時点ではふぅん・・・という絵が出てきた。
この辺はよく分かっていないが「量子コンピューティング」p.204 とか p.223 の接続トポロジーといった物理的な詳細をライブラリ側である程度吸収したりするそうなので、まぁいい感じに吸収してネイティブゲートで表してくれるのだろう。今日の時点では上記がその “いい感じ” であった・・・と。