Qiskitで量子回路を初期化する(QuantumCircuit)

本記事では、Qiskitで量子回路を初期化する方法を説明する。

qiskit.org

QuantumRegister — Qiskit 0.43.1 documentation

実際に量子回路を使用する際はこれにゲートを追加することになるが、ゲートについては別の記事で扱う。

Qiskitでは量子回路を扱うクラスとしてQuantumCircuitが用意されている。

from qiskit import QuantumCircuit

コンストラクタには量子ビットと古典ビットのサイズを指定する。

整数を1つ指定した場合、量子ビットのみからなる回路となる。

QuantumCircuit(4)
# > 4つの量子ビットからなる回路

整数を2つ指定した場合、量子ビットと古典ビットからなる回路となる。

QuantumCircuit(4, 3)
# > 4つの量子ビットと3つの古典ビットからなる回路

整数を3つ以上与えるのは誤り。 その場合は、例外CircuitErrorが発生する。

QuantumCircuit(1, 2, 3)
# > CircuitError: 'QuantumCircuit parameters can be Registers or Integers. If Integers, up to 2 arguments. ...

引数を何も指定しないことは可能。その場合は空の回路となる。

QuantumCircuit()
# > 空の回路

また、レジスタRegister)のリストを指定することもできる。

from qiskit import QuantumRegister, ClassicalRegister

QuantumCircuit(QuantumRegister(4))
# > 4つの量子ビットからなる回路
QuantumCircuit(QuantumRegister(4), ClassicalRegister(3))
# > 4つの量子ビットと3つの古典ビットからなる回路
QuantumCircuit(QuantumRegister(4, 'qr0'), QuantumRegister(2, 'qr1'))
# > 'qr0'という名前でサイズ4の量子レジスタと'qr1'という名前でサイズ2の量子レジスタからなる回路