Newsletter

Get each update by email

One short email when we publish something new. Buttondown asks you to confirm first, and every email has an unsubscribe link.

Almost done.

Method

How it works

The first four sections give you the idea in plain words. The equations follow, so you can check the mathematics against the engine’s code.

The machine moves

IBM publishes calibration data for each of its quantum computers: how long each qubit keeps its state (T1 and T2), how often each gate fails, how often a measurement is misread.

  • The numbers drift, sometimes slowly and sometimes in jumps, as the chip and its refrigerator change.
  • The evidence is on the home page: real T1 calibrations of one qubit on ibm_fez, from May to October 2026.

Qiskit’s NoiseModel.from_backend copies the latest calibration into a noise model. That model is exact for its moment, and nothing in your simulation shows how far the machine has moved since.

The pipeline in seven stages

SuperconducTED sits between the calibration data and Qiskit Aer, the simulator. Each snapshot goes through seven stages:

  1. Ingest. A scheduled job archives the calibrations of IBM’s ibm_fez, in public, since May 2026.
  2. Summarise. Three features describe the snapshot: mean T1, mean T2 and mean readout error.
  3. Fuzzify. Overlapping fuzzy sets (“low”, “typical”, “high”) describe each feature. Every combination of sets is a rule, and each rule fires as strongly as the snapshot matches it.
  4. Combine. Each rule proposes noise parameters as a linear function of the features; the engine averages the proposals, weighted by how strongly each rule fired.
  5. Squash. The result is mapped into the range the physical parameter can take.
  6. Check eligibility. Only gates that the snapshot reports get a noise channel.
  7. Project. The parameters become amplitude and phase damping channels that Aer simulates.

The rule base is a Takagi-Sugeno-Kang (TSK) fuzzy system. ANFIS trains it the way a small neural network is trained.

Why a range

One calibration is one sample of a machine that keeps moving.

  • An interval type-2 fuzzy set has a lower and an upper membership. The gap between them holds what is not known about the input.
  • An ensemble of noise models that spans that uncertainty turns one simulation into a range of outcomes.
  • The aim is a range that brackets what the hardware does across calibration cycles.

Where it stands

Research preview. This section reports the engine’s state, not a result.

  • Working: the calibration archive, feature extraction, the fuzzy pipeline end to end, channel projection, and an ensemble of Aer noise models. The suite has 859 NC-021 tests.
  • In progress: training. The ridge least-squares fit of the rule outputs merged on 15 October 2026 PR #114. Training needs five distinct device states per trainable parameter, 1,170 NC-045 in all; 868 NC-069 are archived.
  • Open: how ensemble members differ ADR-015, how their results combine into an interval ADR-016, and type-1 or interval type-2 ADR-009. Until these land, the outputs are point estimates.

Every design decision is in the engine’s decision record, the design in its architecture document, and every figure in its numerical-claims register.

The equations

The definitions match the engine’s code (fuzzy/membership.py, fuzzy/tsk.py, fuzzy/defuzzification.py, channels/kraus.py).

Features. A snapshot gives x=(x1,x2,x3)x = (x_1, x_2, x_3): the mean T1, the mean T2 and the mean readout error.

Membership. Each rule rr has one Gaussian set per feature, with a centre cc and a width σ\sigma that training learns:

μr,i(xi)=exp⁡(−12(xi−cr,iσr,i)2) \mu_{r,i}(x_i) = \exp\left(-\frac{1}{2}\left(\frac{x_i - c_{r,i}}{\sigma_{r,i}}\right)^{2}\right)

Firing strength. The product of the rule’s memberships:

wr(x)=∏i=13μr,i(xi) w_r(x) = \prod_{i=1}^{3} \mu_{r,i}(x_i)

Rule output. First-order TSK: each rule proposes the two noise parameters as a linear function of the features,

yr(x)=Ar[x1],Ar∈R2×4 y_r(x) = A_r \begin{bmatrix} x \\ 1 \end{bmatrix}, \qquad A_r \in \mathbb{R}^{2 \times 4}

Combination. The average of the proposals over the RR rules, weighted by firing strength:

y(x)=∑r=1Rwr(x) yr(x)∑r=1Rwr(x) y(x) = \frac{\sum_{r=1}^{R} w_r(x)\, y_r(x)}{\sum_{r=1}^{R} w_r(x)}

With three sets per feature there are R=33=27R = 3^3 = 27 rules and 234 NC-045 trainable parameters: 216 in the matrices ArA_r, and 18 centres and widths NC-037.

Channel. Squashing turns yy into an amplitude-damping parameter γ\gamma and a phase-damping parameter λ\lambda, both in [0,1][0, 1]. Each eligible gate then gets amplitude damping, with Kraus operators

K0=[1001−γ],K1=[0γ00], K_0 = \begin{bmatrix} 1 & 0 \\ 0 & \sqrt{1-\gamma} \end{bmatrix}, \qquad K_1 = \begin{bmatrix} 0 & \sqrt{\gamma} \\ 0 & 0 \end{bmatrix},

composed with phase damping of parameter λ\lambda.

The type-2 path. An interval Gaussian set has two widths, σlow<σhigh\sigma^{\mathrm{low}} < \sigma^{\mathrm{high}}, so each membership becomes an interval and each rule fires with a lower strength w‾r\underline{w}_r and an upper strength w‾r\overline{w}_r. The engine’s Nie-Tan defuzzifier averages the two weighted averages:

y(x)=12(∑rw‾r(x) yr(x)∑rw‾r(x)+∑rw‾r(x) yr(x)∑rw‾r(x)) y(x) = \frac{1}{2}\left( \frac{\sum_{r} \underline{w}_r(x)\, y_r(x)}{\sum_{r} \underline{w}_r(x)} + \frac{\sum_{r} \overline{w}_r(x)\, y_r(x)}{\sum_{r} \overline{w}_r(x)} \right)

The range. The plan is for the range to come from the ensemble: NN noise models (32 NC-018 by default), each simulated, with their results combined into an interval. How the members differ and how their results combine are the open decisions above.

We answer on GitHub, in public, so your answer helps the next reader too.

Search

Type two letters or more. Try drift, ANFIS or Kraus.