You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This module provides tools for constructing cluster state circuits using Google's Cirq framework.
4
+
5
+
## Module Structure
6
+
7
+
The Cluster State MIPT module consists of the following components:
8
+
9
+
-`cluster_state.py`: Core functionality for creating quantum circuits for cluster states
10
+
-`data_collect.py`: Data collection utilities for quantum measurements
11
+
-`cluster_state_test.py`: Tests for the cluster state functionality
12
+
-`data_collect_test.py`: Tests for the data collection functionality
13
+
14
+
## Circuit Construction
15
+
16
+
The module implements a 6x6 grid of qubits with ancilla qubits for error mitigation. The circuit construction process involves:
17
+
18
+
1.**Grid Setup**:
19
+
- Creates a 6x6 grid of physical qubits
20
+
- Adds ancilla qubits for error mitigation
21
+
- Positions probe qubits at specific distances (3-6 units apart)
22
+
23
+
2.**Circuit Generation**:
24
+
- Applies Hadamard gates to all qubits
25
+
- Applies CZ gates to create cluster state
26
+
- Implements single-qubit rotations (Rz and Ry gates)
27
+
- Adds basis rotations for measurement in X, Y, or Z basis
28
+
- Includes ancilla qubit operations for error mitigation
29
+
- Measures all preparation qubits to create entanglement pairs for probe qubits
30
+
31
+
### Implementation Details
32
+
33
+
The circuit is constructed on a 6x6 grid of qubits. Let $L$ be the system linear dimension and initialize all qubits in the product state $|0\rangle^{\otimes N}$. The protocol proceeds as follows:
34
+
35
+
1.**Apply Hadamard gates:** $\bigotimes_j H_j$
36
+
2.**Apply nearest-neighbor $ZZ$ gates for $t = \pi/4$:**
After these steps, projective measurement in the $Z$ basis is performed on the preparation qubits (solid red in the figure below) to prepare the probe qubits' states (solid green). Shadow measurements are then performed on the probe qubits using the $X$, $Y$, and $Z$ bases with equal probability to collect data.
41
+
42
+
The nearest-neighbor gate $e^{i(\pi/4)\sum_{\langle j,k \rangle} Z_j Z_k}$ is implemented by first applying a controlled-$Z$ ($\mathrm{CZ}$) gate between each pair of qubits, followed by local $Z^{-1/2}$ on both qubits, i.e., $\mathrm{CZ}_{jk}Z_j^{-1/2}Z_k^{-1/2}$. All nearest-neighbor two-qubit gates are applied in the following sequence to maintain constant circuit depth as the system size scales up: first, odd horizontal links; then, even horizontal links; followed by odd vertical links and finally even vertical links.
43
+
44
+

45
+
46
+
*Figure: Experimental realization of the circuit on a quantum chip with $6\times6$ lattice at $d=5$. Solid red: preparation qubits; solid green: probe qubits A and B. Faded qubits are ancillaries for readout error mitigation.*
47
+
48
+
#### Error Mitigation
49
+
50
+
Since the dominant source of error in this experiment is readout error, a replication-based error mitigation strategy is employed. After all gates (including basis rotations on probe qubits for shadow measurement), an additional CNOT gate is inserted from each perimeter qubit to its corresponding ancillary qubit (represented as faded boxes in the figure above, indicated by yellow bonds). This operation replicates the measurement outcome of the physical qubit onto the ancillary qubit. In post-processing, only measurement outcomes with matching values on each physical-ancillary pair are retained (post-selection), further enhancing the reliability of the experimental results on the mitigated qubits.
51
+
52
+
## Usage
53
+
54
+
To use the module:
55
+
56
+
```python
57
+
from recirq.cluster_state_mipt import get_two_qubits_6x6, get_circuit
58
+
59
+
# Create a 6x6 grid with probe qubits at distance 6
0 commit comments