Tensor-Netzwerk-Simulation
qiskit_addon_aqc_tensor.simulation
Dieses Modul bietet eine Schnittstelle zur Tensornetzsimulation, die unabhängig davon ist, welches Backend verwendet wird.
Derzeit gibt es eine einzige Implementierung, die den Qiskit Aer Matrix-Product State (MPS) Simulator als Backend verwendet.
Verfügbare Backends
Funktionen
Die folgenden Funktionen bieten eine gemeinsame Schnittstelle, die mit jedem unterstützten Backend verwendet werden kann. Unabhängig davon, welches Backend Sie verwenden, werden Sie diese Funktionen als eine gemeinsame Schnittstelle aufrufen.
In der nachstehenden Dokumentation sind für jede Funktion die verschiedenen Implementierungen aufgeführt, die für diese Funktion verfügbar sind. Das Addon wählt die zu verwendende Implementierung auf der Grundlage der von Ihnen angegebenen Argumenttypen aus. (Dieses Paradigma wird als "Mehrfachversand" bezeichnet.)
tensornetwork_from_circuit
tensornetwork_from_circuit(qc, settings, /)
Erzeugen Sie einen Tensornetzzustand durch Simulation eines Quantenschaltkreises.
Der Typ des Tensor-Netzwerk-Zustands entspricht dem Typ des settings Objekts. QiskitAerMPSBeispielsweise führt ein QiskitAerSimulationSettings dazu, dass diese Funktion ein zurückgibt.
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
Parameter
- qc (QuantumCircuit)
- settings (TensorNetworkSimulationSettings)
Rückgabetyp
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]
Parameter
- qc (QuantumCircuit)
- settings (TensorNetworkSimulationSettings)
Rückgabetyp
Rückgabetyp
Parameter
- qc (QuantumCircuit)
- settings (TensorNetworkSimulationSettings)
apply_circuit_to_state
apply_circuit_to_state(qc, psi, settings, /, *, out_state=None)
Anwendung eines Quantenschaltkreises auf einen Tensornetzzustand.
Der Eingangszustand (psi) wird nicht verändert.
Rückgabetyp
Rückgabe
Der neue Staat.
Parameter
- 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
Parameter
- qc (QuantumCircuit)
- psi (TensorNetworkState)
- settings (TensorNetworkSimulationSettings)
- out_state (ndarray | None)
Rückgabetyp
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]
Parameter
- qc (QuantumCircuit)
- psi (TensorNetworkState)
- settings (TensorNetworkSimulationSettings)
- out_state (ndarray | None)
Rückgabetyp
Anwendung eines Quantenschaltkreises auf einen Tensornetzzustand.
Der Eingangszustand (psi) wird nicht verändert.
Rückgabe
Der neue Staat.
Parameter
- qc (QuantumCircuit)
- psi (TensorNetworkState)
- settings (TensorNetworkSimulationSettings)
- out_state (ndarray | None)
Rückgabetyp
compute_overlap
compute_overlap(psi_1, psi_2, /)
Berechnen Sie die Überlappung zweier Quantenzustände: .
HINWEIS: Im Gegensatz zu numpy.dot führen Implementierungen dieser Methode die komplexe Konjugation am ersten Argument durch.
Parameter
- psi_1 (
TensorNetworkState) – ersten Quantenzustand. - psi_2 (
TensorNetworkState) – zweiten Quantenzustand.
Rückgabetyp
Rückgabe
wert des komplexen Punktprodukts.
compute_overlap(mps1: qiskit_addon_aqc_tensor.simulation.aer.state.QiskitAerMPS, mps2: qiskit_addon_aqc_tensor.simulation.aer.state.QiskitAerMPS, /) → complex
Parameter
- psi_1 (TensorNetworkState)
- psi_2 (TensorNetworkState)
Rückgabetyp
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
Parameter
- psi_1 (TensorNetworkState)
- psi_2 (TensorNetworkState)
Rückgabetyp
Abstrakte Klassen
Dies sind abstrakte Klassen, die von jedem Backend implementiert werden.