Simulação de rede tensorial
qiskit_addon_aqc_tensor.simulation
Esse módulo fornece uma interface para a simulação de rede tensorial que é independente de qual backend é usado.
Atualmente, há uma única implementação, que usa o simulador de estado de produto matricial (MPS) Qiskit Aer como backend.
Back-ends disponíveis
Funções
As funções a seguir fornecem uma interface comum que pode ser usada com qualquer backend compatível. Independentemente do backend usado, você invocará essas funções como uma interface comum.
Em cada função abaixo, a documentação mostra todas as implementações distintas disponíveis para essa função. O addon escolherá qual implementação usar com base nos tipos de argumentos que você fornecer. (Esse paradigma é chamado de "despacho múltiplo")
tensornetwork_from_circuit
tensornetwork_from_circuit(qc, settings, /)
Crie um estado de rede tensorial simulando um circuito quântico.
settings O tipo do estado da rede tensorial corresponderá ao tipo do objeto. Por exemplo, um QiskitAerSimulationSettings fará com que essa função retorne um QiskitAerMPS.
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
Parâmetros
- qc (QuantumCircuit)
- settings (TensorNetworkSimulationSettings)
Tipo de retorno
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]
Parâmetros
- qc (QuantumCircuit)
- settings (TensorNetworkSimulationSettings)
Tipo de retorno
Tipo de retorno
Parâmetros
- qc (QuantumCircuit)
- settings (TensorNetworkSimulationSettings)
apply_circuit_to_state
apply_circuit_to_state(qc, psi, settings, /, *, out_state=None)
Aplique um circuito quântico a um estado de rede tensorial.
O estado de entrada (psi) não é modificado.
Tipo de retorno
Retorna
O novo estado.
Parâmetros
- 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
Parâmetros
- qc (QuantumCircuit)
- psi (TensorNetworkState)
- settings (TensorNetworkSimulationSettings)
- out_state (ndarray | None)
Tipo de retorno
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]
Parâmetros
- qc (QuantumCircuit)
- psi (TensorNetworkState)
- settings (TensorNetworkSimulationSettings)
- out_state (ndarray | None)
Tipo de retorno
Aplique um circuito quântico a um estado de rede tensorial.
O estado de entrada (psi) não é modificado.
Retorna
O novo estado.
Parâmetros
- qc (QuantumCircuit)
- psi (TensorNetworkState)
- settings (TensorNetworkSimulationSettings)
- out_state (ndarray | None)
Tipo de retorno
compute_overlap
compute_overlap(psi_1, psi_2, /)
Calcule a sobreposição de dois estados quânticos: .
OBSERVAÇÃO: ao contrário de numpy.dot, as implementações desse método executarão a conjugação complexa no primeiro argumento.
Parâmetros
- psi_1 (
TensorNetworkState) – primeiro estado quântico. - psi_2 (
TensorNetworkState) – segundo estado quântico.
Tipo de retorno
Retorna
valor do produto escalar complexo.
compute_overlap(mps1: qiskit_addon_aqc_tensor.simulation.aer.state.QiskitAerMPS, mps2: qiskit_addon_aqc_tensor.simulation.aer.state.QiskitAerMPS, /) → complex
Parâmetros
- psi_1 (TensorNetworkState)
- psi_2 (TensorNetworkState)
Tipo de retorno
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
Parâmetros
- psi_1 (TensorNetworkState)
- psi_2 (TensorNetworkState)
Tipo de retorno
Classes abstratas
Essas são classes abstratas, implementadas por cada backend.