HardwareEfficientAnsatz

HardwareEfficientAnsatz es un ansatz eficiente en hardware adaptado a las topologías de dispositivos cuánticos. Opciones de configuración:

  • layers: Número de capas repetidas de puertas.

  • connectivity:

    • circular: Los qubits forman un anillo.

    • linear: Los qubits están conectados linealmente.

    • full: Conectividad de todos con todos.

    • O una lista de tuplas que especifican explícitamente la conectividad.

  • one_qubit_gate: Elige la puerta parametrizada de un qubit (p. ej., U1, U2, U3).

  • two_qubit_gate: Elige el tipo de interacción de dos qubits (p. ej., CNOT, CZ).

  • structure:

    • grouped: Aplica primero todas las puertas de un qubit, seguidas de todas las puertas de dos qubits.

    • interposed: Intercala puertas de un qubit y de dos qubits.

  • final_rotation_layer: If True (the default), a trailing single-qubit block is appended after the last entangling block, so the circuit has (layers + 1) parameterized blocks and ends on tunable rotations. If False, the circuit has layers parameterized blocks and ends on an entangling block.

Ejemplo

from qilisdk.digital.ansatz import HardwareEfficientAnsatz
from qilisdk.digital import U3, CNOT


ansatz = HardwareEfficientAnsatz(
    nqubits=4,
    layers=3,
    connectivity="Circular",
    one_qubit_gate=U3,
    two_qubit_gate=CNOT,
    structure="Interposed"
)
ansatz.draw()

Este ansatz puede usarse luego como un circuito. Por ejemplo, podemos ejecutar este ansatz usando el backend QuTiP (que debe instalarse por separado):

from qilisdk.backends import QutipBackend
from qilisdk.functionals import DigitalPropagation
from qilisdk.readout import Readout

backend = QutipBackend()

backend.execute(DigitalPropagation(ansatz), readout=Readout().with_sampling(nshots=1000))