Skip to content

Sensors in queso

Sensors describe the quantum system used for

import jax
import matplotlib.pyplot as plt
# import matplotlib
# matplotlib.use('TkAgg')
from queso.sensors import Sensor

%matplotlib inline
Please first ``pip install -U cirq`` to enable related functionality in translation module

for preparation in (
    'hardware_efficient_ansatz',
    'trapped_ion_ansatz',
    'photonic_graph_state_ansatz',
):
    sensor = Sensor(
        n=4, 
        k=1,
        **dict(preparation=preparation)
    )
    print(f"Sensor with probe state preparation using a '{preparation}' ansatz.")
    display(sensor.circuit(sensor.theta, sensor.phi, sensor.mu).draw(**dict(output="text")))
Sensor with probe state preparation using a 'hardware_efficient_ansatz' ansatz.

     ┌───────┐┌───────┐   ┌───────┐┌───────┐          ░ ┌───────┐ ░ ┌───┐ ░ 
q_0: ┤ Ry(0) ├┤ Rz(0) ├─■─┤ Ry(0) ├┤ Rz(0) ├──────────░─┤ Rz(0) ├─░─┤ r ├─░─
     ├───────┤├───────┤ │ └───────┘├───────┤┌───────┐ ░ ├───────┤ ░ ├───┤ ░ 
q_1: ┤ Ry(0) ├┤ Rz(0) ├─■─────■────┤ Ry(0) ├┤ Rz(0) ├─░─┤ Rz(0) ├─░─┤ r ├─░─
     ├───────┤├───────┤       │    ├───────┤├───────┤ ░ ├───────┤ ░ ├───┤ ░ 
q_2: ┤ Ry(0) ├┤ Rz(0) ├─■─────■────┤ Ry(0) ├┤ Rz(0) ├─░─┤ Rz(0) ├─░─┤ r ├─░─
     ├───────┤├───────┤ │ ┌───────┐├───────┤└───────┘ ░ ├───────┤ ░ ├───┤ ░ 
q_3: ┤ Ry(0) ├┤ Rz(0) ├─■─┤ Ry(0) ├┤ Rz(0) ├──────────░─┤ Rz(0) ├─░─┤ r ├─░─
     └───────┘└───────┘   └───────┘└───────┘          ░ └───────┘ ░ └───┘ ░ 
c: 4/═══════════════════════════════════════════════════════════════════════
                                                                            
Sensor with probe state preparation using a 'trapped_ion_ansatz' ansatz.

     ┌───────┐┌───────┐┌─────────┐ ┌───────┐ ┌───────┐          ░ ┌───────┐ ░ »
q_0: ┤ Ry(0) ├┤ Rz(0) ├┤0        ├─┤ Ry(0) ├─┤ Rz(0) ├──────────░─┤ Rz(0) ├─░─»
     ├───────┤├───────┤│  Rxx(0) │┌┴───────┴┐├───────┤┌───────┐ ░ ├───────┤ ░ »
q_1: ┤ Ry(0) ├┤ Rz(0) ├┤1        ├┤0        ├┤ Ry(0) ├┤ Rz(0) ├─░─┤ Rz(0) ├─░─»
     ├───────┤├───────┤├─────────┤│  Rxx(0) │├───────┤├───────┤ ░ ├───────┤ ░ »
q_2: ┤ Ry(0) ├┤ Rz(0) ├┤0        ├┤1        ├┤ Ry(0) ├┤ Rz(0) ├─░─┤ Rz(0) ├─░─»
     ├───────┤├───────┤│  Rxx(0) │└┬───────┬┘├───────┤└───────┘ ░ ├───────┤ ░ »
q_3: ┤ Ry(0) ├┤ Rz(0) ├┤1        ├─┤ Ry(0) ├─┤ Rz(0) ├──────────░─┤ Rz(0) ├─░─»
     └───────┘└───────┘└─────────┘ └───────┘ └───────┘          ░ └───────┘ ░ »
c: 4/═════════════════════════════════════════════════════════════════════════»
                                                                              »
«     ┌───┐ ░ 
«q_0: ┤ r ├─░─
«     ├───┤ ░ 
«q_1: ┤ r ├─░─
«     ├───┤ ░ 
«q_2: ┤ r ├─░─
«     ├───┤ ░ 
«q_3: ┤ r ├─░─
«     └───┘ ░ 
«c: 4/════════
«             
Sensor with probe state preparation using a 'photonic_graph_state_ansatz' ansatz.

     ┌───┐      ┌───┐         ░ ┌───────┐ ░ ┌───┐ ░ 
q_0: ┤ H ├─■──■─┤ r ├─────────░─┤ Rz(0) ├─░─┤ r ├─░─
     ├───┤ │  │ └───┘   ┌───┐ ░ ├───────┤ ░ ├───┤ ░ 
q_1: ┤ H ├─┼──┼───■───■─┤ r ├─░─┤ Rz(0) ├─░─┤ r ├─░─
     ├───┤ │  │   │   │ ├───┤ ░ ├───────┤ ░ ├───┤ ░ 
q_2: ┤ H ├─■──┼───■───┼─┤ r ├─░─┤ Rz(0) ├─░─┤ r ├─░─
     ├───┤    │       │ ├───┤ ░ ├───────┤ ░ ├───┤ ░ 
q_3: ┤ H ├────■───────■─┤ r ├─░─┤ Rz(0) ├─░─┤ r ├─░─
     └───┘              └───┘ ░ └───────┘ ░ └───┘ ░ 
c: 4/═══════════════════════════════════════════════
                                                    
for interaction in (
    'local_rz',
    'local_rx',
):
    sensor = Sensor(
        n=4, 
        k=1,
        **dict(interaction=interaction)
    )
    print(f"Sensor with {interaction} interaction between probe state and parameter φ.")
    display(sensor.circuit(sensor.theta, sensor.phi, sensor.mu).draw(**dict(output="text")))
Sensor with local_rz interaction between probe state and parameter φ.

     ┌───────┐┌───────┐   ┌───────┐┌───────┐          ░ ┌───────┐ ░ ┌───┐ ░ 
q_0: ┤ Ry(0) ├┤ Rz(0) ├─■─┤ Ry(0) ├┤ Rz(0) ├──────────░─┤ Rz(0) ├─░─┤ r ├─░─
     ├───────┤├───────┤ │ └───────┘├───────┤┌───────┐ ░ ├───────┤ ░ ├───┤ ░ 
q_1: ┤ Ry(0) ├┤ Rz(0) ├─■─────■────┤ Ry(0) ├┤ Rz(0) ├─░─┤ Rz(0) ├─░─┤ r ├─░─
     ├───────┤├───────┤       │    ├───────┤├───────┤ ░ ├───────┤ ░ ├───┤ ░ 
q_2: ┤ Ry(0) ├┤ Rz(0) ├─■─────■────┤ Ry(0) ├┤ Rz(0) ├─░─┤ Rz(0) ├─░─┤ r ├─░─
     ├───────┤├───────┤ │ ┌───────┐├───────┤└───────┘ ░ ├───────┤ ░ ├───┤ ░ 
q_3: ┤ Ry(0) ├┤ Rz(0) ├─■─┤ Ry(0) ├┤ Rz(0) ├──────────░─┤ Rz(0) ├─░─┤ r ├─░─
     └───────┘└───────┘   └───────┘└───────┘          ░ └───────┘ ░ └───┘ ░ 
c: 4/═══════════════════════════════════════════════════════════════════════
                                                                            
Sensor with local_rx interaction between probe state and parameter φ.

     ┌───────┐┌───────┐   ┌───────┐┌───────┐          ░ ┌───────┐ ░ ┌───┐ ░ 
q_0: ┤ Ry(0) ├┤ Rz(0) ├─■─┤ Ry(0) ├┤ Rz(0) ├──────────░─┤ Rx(0) ├─░─┤ r ├─░─
     ├───────┤├───────┤ │ └───────┘├───────┤┌───────┐ ░ ├───────┤ ░ ├───┤ ░ 
q_1: ┤ Ry(0) ├┤ Rz(0) ├─■─────■────┤ Ry(0) ├┤ Rz(0) ├─░─┤ Rx(0) ├─░─┤ r ├─░─
     ├───────┤├───────┤       │    ├───────┤├───────┤ ░ ├───────┤ ░ ├───┤ ░ 
q_2: ┤ Ry(0) ├┤ Rz(0) ├─■─────■────┤ Ry(0) ├┤ Rz(0) ├─░─┤ Rx(0) ├─░─┤ r ├─░─
     ├───────┤├───────┤ │ ┌───────┐├───────┤└───────┘ ░ ├───────┤ ░ ├───┤ ░ 
q_3: ┤ Ry(0) ├┤ Rz(0) ├─■─┤ Ry(0) ├┤ Rz(0) ├──────────░─┤ Rx(0) ├─░─┤ r ├─░─
     └───────┘└───────┘   └───────┘└───────┘          ░ └───────┘ ░ └───┘ ░ 
c: 4/═══════════════════════════════════════════════════════════════════════