Qiskitでレジスタを扱う(QuantumRegister、ClassicalRegister)

この記事ではQiskitで量子レジスタおよび古典レジスタを扱う方法について説明する。

https://qiskit.org/documentation/locale/ja_JP/stubs/qiskit.circuit.QuantumRegister.html#qiskit.circuit.QuantumRegister https://qiskit.org/documentation/locale/ja_JP/stubs/qiskit.circuit.ClassicalRegister.html#qiskit.circuit.ClassicalRegister

Qiskitで量子レジスタと古典レジスタを生成するには、それぞれqiskitモジュールに含まれるQuantumRegisterClassicalRegisterを使う。

from qiskit import QuantumRegister, ClassicalRegister

これらはともにRegisterのサブクラスになっている。

コンストラクタの引数として、基本的にはビット数(size)と名前(name)を指定する。

QuantumRegister(2, 'qbit1')
# > 2つの量子ビットからなるレジスタをqbit1という名前で生成
ClassicalRegister(3, 'cbit1')
# > 3つの古典ビットからなるレジスタをcbit1という名前で生成

名前(name)の指定は任意。指定しなかった場合は一意な名前が自動的に付与される。

QuantumRegister(5)
# > 5つの量子ビットからなるレジスタを生成。名前はq0などが自動的に割り当てられる

一方、ビット数(size)を指定しないと、例外CircuitErrorが発生する。

QuantumRegister()
# > CircuitError: 'Exactly one of the size or bits arguments can be provided. Provided size=None bits=None.'

これらのレジスタは基本的に、量子回路に組み込んで使う。

レジスタを利用した量子回路の初期化方法については以下の記事を参照。

happy-quantum.hateblo.jp