Skip to main content
IBM Quantum Platform

Utilità operatore

qiskit_addon_obp.utils.operations

Funzioni di utilità per la retropropagazione operatore.

apply_op_to

apply_op_to(op1, op1_qargs, op2, op2_qargs, *, apply_as_transform=False)

GitHub

Applicare l'operatore op2 all'operatore op1.

Questi operatori non devono necessariamente agire sullo stesso numero di qubit, poiché si presume che agiscano su un sistema più ampio. La posizione nel sistema di ogni operatore è definita dal corrispondente qargs. L'operatore di uscita sarà definito su union(op1_qargs, op2_qargs).

Per impostazione predefinita, questa funzione applica op1 a op2 nel modo seguente:

op2 @ op1

Impostando apply_as_transform=True, questa funzione applica op1 a op2 nel modo seguente:

op2.adjoint() @ op1 @ op2

Parametri

  • op1 (SparsePauliOp) – L'operatore su cui verrà applicato op2 .
  • op1_qargs (list[int]) – Gli indici dei qubit per op1.
  • op2 (SparsePauliOp) – L'operatore da applicare a op1.
  • op2_qargs (list[int]) – Gli indici dei qubit per op2.
  • apply_as_transform (bool) – Se applicare op2 a op1 come trasformazione.

Risultati

La tupla (op, qargs) dove op è l'input op1 con op2 applicato a sinistra e qargs è una lista di indici di qubit per il nuovo operatore op. Gli ID dei qubit in uscita op corrispondono all'ID del qubit globale nello stesso indice in qargs.

Per esempio, se l'uscita op è un SparsePauliOp("YX") e qargs è [3, 4], il termine X sul qubit 0 dell'operatore corrisponde al qubit ID globale 3.

Aumenti

ValueError - Il numero di qarg unici dell'operatore deve corrispondere al numero di qubit dell'operatore corrispondente.

Tipo di restituzione

tupla [*SparsePauliOp*, lista[ int ]]

apply_reset_to

apply_reset_to(op, qubit_id, inplace=False)

GitHub

Applicare un'operazione di reset a un operatore di Pauli.

Questa funzione applica un'operazione di reset a op nel modo seguente:

<0|op|0>

I termini contenenti termini Pauli X o Y su qubit-qubit_id avranno il loro peso ridotto a 0.0. I termini contenenti Pauli Z su qubit_id avranno tale Pauli Z sostituito da un'identità.

Parametri

  • op (SparsePauliOp) – L'operatore a cui verrà applicato il reset.
  • qubit_id (int) – Indice del qubit su cui applicare il reset.
  • inplace (bool) – Se modificare l'operatore in loco.

Risultati

L'operatore trasformato

Tipo di restituzione

SparsePauliOp

to_global_op

to_global_op(op, qargs, n_qubits)

GitHub

Converte un operatore locale in un operatore globale inserendo identità sui qubit non utilizzati.

Parametri

  • op (SparsePauliOp) – Operatore locale in espansione.
  • qargs (list[int]) – Indici Qubit per l'operatore locale.
  • n_qubits (int) – Numero di qubit nel sistema globale.

Risultati

Un operatore su n_qubits qubit

Aumenti

ValueError - ID Qubit fuori portata

Tipo di restituzione

SparsePauliOp

reduce_op

reduce_op(global_op)

GitHub

Creare una rappresentazione snella di un operatore di Pauli globale.

Questa funzione restituisce una rappresentazione snella dell'operatore in ingresso, in cui tutti i qubit associati esclusivamente ai termini di Pauli-I sono stati rimossi. Viene restituito anche un elenco di indici che indicano su quali qubit agisce l'operatore lean.

Ad esempio:

>>> global_op = SparsePauliOp(["IXI", "IIZ"])
>>> reduced_op, qargs = reduce_op(global_op)
>>> reduced_op
SparsePauliOp(['XI', 'IZ'],
              coeffs=[1.+0.j, 1.+0.j])
>>> qargs
[0, 1]

Parametri

global_op (SparsePauliOp) – L'operatore globale per il quale generare una rappresentazione snella

Risultati

  • Una rappresentazione snella dell'operatore di input con i qubit associati ai soli termini di identità rimossi.
  • Un elenco di indici che specificano i qubit su cui agisce l'operatore lean.

Aumenti

ValueError - L'operatore di input non può essere l'operatore di identità.

Tipo di restituzione

tupla [*SparsePauliOp*, lista[ int ]]

Questa pagina è stata utile?
Segnala un bug, un errore di battitura o richiedi contenuti su GitHub.