テンソルネットワークシミュレーション
qiskit_addon_aqc_tensor.simulation
このモジュールはテンソルネットワークシミュレーションへのインタフェースを提供します。
現在のところ、Qiskit Aerの行列積状態(MPS)シミュレータをバックエンドとする実装が1つある。
利用可能なバックエンド
関数
以下の関数は、サポートされているバックエンドで使用できる共通のインターフェイスを提供します。 どのバックエンドを使っても、これらの関数は共通のインターフェースとして呼び出される。
以下の各関数では、その関数で利用可能なすべての異なる実装がドキュメントに示されている。 アドオンは、指定した引数のタイプに基づいて、使用する実装を選択します。 (このパラダイムは「多重派遣」と呼ばれる)
tensornetwork_from_circuit
tensornetwork_from_circuit(qc, settings, /)
量子回路をシミュレートしてテンソルネットワークの状態を作る。
settings テンソルネットワークの状態の型は、オブジェクトの型に対応します。 QiskitAerMPSたとえば、a の場合、この関 QiskitAerSimulationSettings 数は を返すことになります。
tensornetwork_from_circuit(qc: qiskit.circuit.quantumcircuit.QuantumCircuit, settings: qiskit_addon_aqc_tensor.simulation.aer.simulation.QiskitAerSimulationSettings | plum._type.ModuleType[qiskit_aer.AerSimulator], /, *, out_state: numpy.ndarray | None = None) → qiskit_addon_aqc_tensor.simulation.aer.state.QiskitAerMPS
パラメーター
- qc (QuantumCircuit)
- settings (TensorNetworkSimulationSettings)
戻りの型
tensornetwork_from_circuit(qc: qiskit.circuit.quantumcircuit.QuantumCircuit, settings: qiskit_addon_aqc_tensor.simulation.quimb.QuimbSimulator, /, *, out_state: numpy.ndarray | None = None) → plum._type.ModuleType[quimb.tensor.CircuitBase] | plum._type.ModuleType[quimb.tensor.Circuit]
パラメーター
- qc (QuantumCircuit)
- settings (TensorNetworkSimulationSettings)
戻りの型
戻りの型
パラメーター
- qc (QuantumCircuit)
- settings (TensorNetworkSimulationSettings)
apply_circuit_to_state
apply_circuit_to_state(qc, psi, settings, /, *, out_state=None)
テンソルネットワークの状態に量子回路を適用する。
入力状態(psi)は変更されない。
戻りの型
戻り値
新しい国家。
パラメーター
- qc (QuantumCircuit)
- psi (TensorNetworkState)
- settings (TensorNetworkSimulationSettings)
- out_state (ndarray | None)
apply_circuit_to_state(qc: qiskit.circuit.quantumcircuit.QuantumCircuit, psi: qiskit_addon_aqc_tensor.simulation.aer.state.QiskitAerMPS, settings: qiskit_addon_aqc_tensor.simulation.aer.simulation.QiskitAerSimulationSettings | plum._type.ModuleType[qiskit_aer.AerSimulator], /, *, out_state: numpy.ndarray | None = None) → qiskit_addon_aqc_tensor.simulation.aer.state.QiskitAerMPS
パラメーター
- qc (QuantumCircuit)
- psi (TensorNetworkState)
- settings (TensorNetworkSimulationSettings)
- out_state (ndarray | None)
戻りの型
apply_circuit_to_state(qc: qiskit.circuit.quantumcircuit.QuantumCircuit, circ0: plum._type.ModuleType[quimb.tensor.CircuitBase] | plum._type.ModuleType[quimb.tensor.Circuit], settings: qiskit_addon_aqc_tensor.simulation.quimb.QuimbSimulator, /, *, out_state: numpy.ndarray | None = None) → plum._type.ModuleType[quimb.tensor.CircuitBase] | plum._type.ModuleType[quimb.tensor.Circuit]
パラメーター
- qc (QuantumCircuit)
- psi (TensorNetworkState)
- settings (TensorNetworkSimulationSettings)
- out_state (ndarray | None)
戻りの型
テンソルネットワークの状態に量子回路を適用する。
入力状態(psi)は変更されない。
戻り値
新しい国家。
パラメーター
- qc (QuantumCircuit)
- psi (TensorNetworkState)
- settings (TensorNetworkSimulationSettings)
- out_state (ndarray | None)
戻りの型
compute_overlap
compute_overlap(psi_1, psi_2, /)
2つの量子状態の重なりを計算する: .
注: numpy.dot と異なり、このメソッドの実装では、第1引数に対して複素共役を行う。
パラメーター
- psi_1 (
TensorNetworkState) – 最初の量子状態。 - psi_2 (
TensorNetworkState) – 第2の量子状態。
戻りの型
戻り値
複素ドット積の値。
compute_overlap(mps1: qiskit_addon_aqc_tensor.simulation.aer.state.QiskitAerMPS, mps2: qiskit_addon_aqc_tensor.simulation.aer.state.QiskitAerMPS, /) → complex
パラメーター
- psi_1 (TensorNetworkState)
- psi_2 (TensorNetworkState)
戻りの型
compute_overlap(circ1: plum._type.ModuleType[quimb.tensor.CircuitBase] | plum._type.ModuleType[quimb.tensor.Circuit], circ2: plum._type.ModuleType[quimb.tensor.CircuitBase] | plum._type.ModuleType[quimb.tensor.Circuit], /) → complex
パラメーター
- psi_1 (TensorNetworkState)
- psi_2 (TensorNetworkState)
戻りの型
抽象クラス
これらは抽象クラスで、各バックエンドによって実装されます。