Simulation de réseau de tenseurs
qiskit_addon_aqc_tensor.simulation
Ce module fournit une interface pour la simulation de réseaux tensoriels qui ne dépend pas du backend utilisé.
Actuellement, il n'existe qu'une seule implémentation, qui utilise le simulateur d'état matrice-produit (MPS) de Qiskit Aer comme backend.
Backends disponibles
Fonctions
Les fonctions suivantes fournissent une interface commune qui peut être utilisée avec n'importe quel backend pris en charge. Quel que soit le backend que vous utilisez, vous invoquerez ces fonctions en tant qu'interface commune.
Pour chaque fonction ci-dessous, la documentation présente toutes les implémentations distinctes disponibles pour cette fonction. L'addon choisira l'implémentation à utiliser en fonction des types d'arguments que vous fournissez. (Ce paradigme est appelé "répartition multiple")
tensornetwork_from_circuit
tensornetwork_from_circuit(qc, settings, /)
Créer un état de réseau tensoriel en simulant un circuit quantique.
Le type d'état du réseau de tenseurs correspondra au type de l'objet settings . QiskitAerMPSPar exemple, un QiskitAerSimulationSettings entraînera le retour d'un par cette fonction.
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
Paramètres
- qc (QuantumCircuit)
- settings (TensorNetworkSimulationSettings)
Type de retour
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]
Paramètres
- qc (QuantumCircuit)
- settings (TensorNetworkSimulationSettings)
Type de retour
Type de retour
Paramètres
- qc (QuantumCircuit)
- settings (TensorNetworkSimulationSettings)
apply_circuit_to_state
apply_circuit_to_state(qc, psi, settings, /, *, out_state=None)
Appliquer un circuit quantique à un état de réseau tensoriel.
L'état d'entrée (psi) n'est pas modifié.
Type de retour
Retours
Le nouvel État.
Paramètres
- 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
Paramètres
- qc (QuantumCircuit)
- psi (TensorNetworkState)
- settings (TensorNetworkSimulationSettings)
- out_state (ndarray | None)
Type de retour
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]
Paramètres
- qc (QuantumCircuit)
- psi (TensorNetworkState)
- settings (TensorNetworkSimulationSettings)
- out_state (ndarray | None)
Type de retour
Appliquer un circuit quantique à un état de réseau tensoriel.
L'état d'entrée (psi) n'est pas modifié.
Retours
Le nouvel État.
Paramètres
- qc (QuantumCircuit)
- psi (TensorNetworkState)
- settings (TensorNetworkSimulationSettings)
- out_state (ndarray | None)
Type de retour
compute_overlap
compute_overlap(psi_1, psi_2, /)
Calculer le chevauchement de deux états quantiques : .
NOTE : Contrairement à numpy.dot, les implémentations de cette méthode effectueront la conjugaison complexe sur le premier argument.
Paramètres
- psi_1 (
TensorNetworkState) – premier état quantique. - psi_2 (
TensorNetworkState) – deuxième état quantique.
Type de retour
Retours
valeur du produit complexe de points.
compute_overlap(mps1: qiskit_addon_aqc_tensor.simulation.aer.state.QiskitAerMPS, mps2: qiskit_addon_aqc_tensor.simulation.aer.state.QiskitAerMPS, /) → complex
Paramètres
- psi_1 (TensorNetworkState)
- psi_2 (TensorNetworkState)
Type de retour
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
Paramètres
- psi_1 (TensorNetworkState)
- psi_2 (TensorNetworkState)
Type de retour
Classes abstraites
Il s'agit de classes abstraites, mises en œuvre par chaque backend.