qiskit-community / qiskit-hackathon-taiwan-20

32 stars 10 forks source link

Generation of stretched single qubit gates for Richardson error extrapolation #18

Open nkanazawa1989 opened 3 years ago

nkanazawa1989 commented 3 years ago

Abstract

With QiskitPulse you can create custom quantum gates that is not provided by a backend. One of easy and practical examples is single qubit gates. In this project, you generate u1, u2, u3 gates with different stretch factor using QiskitPulse and run randomized benchmarking algorithm to estimate systematic error.

Description

In IBM Quantum backends u1, u2, u3, id, cx gates are provided as basis gates and any quantum circuit can be decomposed into this set. Two main sources of the error of those quantum gates are incoherent error due to limited T1 and T2 times and imperfection of pulse calibration.

Given T1 and T2 are time invariant, you can eliminate this noise with Richardson error extrapolation [1]: image Here you need to calibrate underlying quantum gates with different stretch factor c_i. In the case of circuit composed of single qubit gates, you need to calibrate u1, u2, u3 gates. Because these gates are generated from x90 or y90 pulse with virtual z rotation (pre-processing of pulse envelope), you just need to calibrate x90 and y90 pulses.

This is partially demonstrated by the joint work of U Chicago with IBM by using QiskitPulse [2]. In this paper they rescaled pulse amplitude with respect to the target rotation angle, but here we need to rescale both pulse duration and amplitude while the rotation angle remain unchanged, i.e. keeping the area under curve of your pulse envelope for different stretch factors.

[goal1]

Finally you can run a single qubit randomized benchmarking algorithm with your stretched x90 and y90 pulses. If your pulses are well calibrated, you will observe a result like this.

image

[goal2]

What you can investigate (advanced):

Reference: [1] https://www.nature.com/articles/s41586-019-1040-7 [2] https://arxiv.org/abs/2004.11205

Members

xiaotai-yang commented 3 years ago

I would like to join this project~

itsuka021 commented 3 years ago

I'm interesting in joining this project.

nkanazawa1989 commented 3 years ago

Welcome! :) Please assign youself to the issue (top right of this page). If you are not familiar with pulse you can learn the pulse syntax with this module.

supergravity commented 3 years ago

I'm interested

HuberyMing commented 3 years ago

Looks good. May I in?

itsuka021 commented 3 years ago

Github repo for our project is https://github.com/itsuka021/18-Generation_of_stretched_single_qubit_gates_for_Richardson_error_extrapolation