The challenge is devided into different parts.
Before takkling the challenge right away, please make sure that you have carefully read the tutorials.
⚠️ General guidelines:
- Always check your results. Do they make sense? If in doubt, ask your peers or some of the Alice & Bob team.
- Visualize your results. Use plots to visualize your results. You can check the different plotting options at dynamiqs.org. You are also invited to make your own plots using
matplotlib
,holoviews
, or your preferred plotting tool.- Document what you do. In order to keep track of your progress, make sure to document your steps (also those that did not work out). This may include mathematical derivations, plots, and code.
- Be curious. We invite you to explore and understand the physics better. Play with parameters and see what happens, even if it is not explicitly stated in the challenge. Document your findings, it will be reflected in the grading.
- Have fun. This challenge is about learning and finding out about new things - together in a team - in a fun and casual atmosphere. If you find that you have problems for whatever reasons, feel free to reach out to us and we will find a solution.
The grade will be determined by the following factors:
- Code: 40%
- Documentation: 30%
- Presentation on Sunday: 10%
- Ingenuity: 20%
Tasks: The tasks are weighted. This gives you the insight of where to focus your work.
- Task 1: 40%
- Task 2: 60%
-
Fork the repository
Click the Fork button in GitHub to create your own copy of the challenge repository. -
Clone your fork
git clone https://github.com/<your_username>/<repo_name>.git cd <repo_name>
-
Create a branch
git checkout -b submission/<group_name>
-
Create your submission folder
mkdir submissions/<group_name>
Add your project files (code, documentation, etc.) into this folder.
-
Commit and push your changes
git add . git commit -m "Add initial submission" git push origin submission/<group_name>
-
Create a Merge Request
- Go to Pull Requests (or Merge Requests, depending on the platform) in your forked repository.
- Choose the branch
submission/<group_name>
you just pushed. - Target the original challenge repository’s main branch.
- Submit the request.
You can update your submission at any time before the deadline by committing more changes to submission/<group_name>
and pushing again. The merge request will automatically update.
In your submission folder, please include:
- Code (plain
.py
files or.ipynb
files) - Documentation (could be a standalone
.pdf
file or together with a jupyter notebook.ipynb
file) This documentation includes:
- Briew documentation of your code: Explain non-trivial approaches.
- Plots to support your findings.
- Any mathematical derivations.
- Discussion/analysis of the results.
Presentation of your results: On Sunday Feb. 2, you will present your results as a team. For this, please prepare a slideshow. You have 10 min per team to present your results.
In Tutorial 1, we have introduced that we can dissipatively stabilize a cat qubit by coupling a memory mode that will store our cat qubit to a lossy buffer mode with a specific interaction that exchanges two photons of the memory mode with one photon in the buffer mode.
For this, consider the Lindblad master equation:
The Hamiltonian of the system is given by
Here,
Task 1.1: Getting started with dynamiqs
Using dynamiqs
, simulate the time-evolution of this system with the following parameters:
(For now, we pretend that the parameters are without dimensions)
Use an initial state
Simulate the dynamics for a time
Plot the wigner function of mode a (as a GIF or as a mosaic plot).
Also plot the expectation value of the number of photons, as well as the photon number parity in the memory mode.
Task 1.2: Comparison with eliminated buffer mode
Compare your result from Task 1.1 to the system where the buffer mode is adiabatically eliminated, in which the dynamics of the memory mode is given by:
with two-photon dissipation rate
Compute the time-evolution of the fidelity between the time-evolved states computed with the two-mode system from Task 1.1. What do you observe if you lower
Task 1.3: Performing a Zeno-gate
To fully control a cat qubit, we also need to be able to perform gates.
a) Simulate the time-evolution that maps
b) Optimize parameters: In a real-world scenario, also our memory mode is subject to losses of single photons. Let
For various values of
For the parameter range of
Task 1.4: Optimal control for state-preparation
In Task 1.1, we assumed that the parameter
We would like to answer the question: What is the optimal function of time of
For this, first find and define an adequate loss function.
Then, optimize over
When simulating a quantum system at the circuit level, the system becomes a bit more complex. In Tutorial 2, we have seen that ATS with a flux pump can be used to engineer the two-photon interaction, let's simulate this in practice:
For this, consider the Lindblad master equation:
At the saddle point (
Here,
Task 2.1: Lab frame simulation
Using dynamiqs
, simulate the time-evolution of this system with the following parameters (taken from this paper):
Starting from the vacuum in both modes, simulate the dynamics of this system for a time
Task 2.2: Rotated-displaced frame simulation
To compare with the system at the effective Hamiltonian level, we have to transform our circuit level system into a rotated-displaced frame. Find the correct rotated-displaced frame for the system.
Then, simulate the time-evolution of this system with the previous parameters.
Plot again the evolution of the wigner funciton in mode a. What is different in this frame?
Task 2.3: Comparison with effective model
Compare the results from Task 2.2 with the effective model, indroduced in Task 1.1. Calculate the fidelity between these two models as a function of time. You can use dq.fidelity
for this. What do you observe?
Task 2.4. Optimal control In this task, you are invited to really explore what is possible and come up with your own fresh ideas. No limits here!
Here, we want to optimize parameters again to inflate the cat as fast as possible from the vacuum to a cat, but this time on the full circuit Hamiltonian.
What are parameters that can easiliy be changed for an existing fabricated chip? a) First, optimize over one or multiple of such parameters. You can optimize the constant values and/or assume that some parameters can be time-dependent (Such as the ATS drive or buffer drive amplitudes).
Properly visualize your results.
Finally, if you could also tune parameters that are given by the circuit: Optimize over one or multiple of such parameters. Think about what might be feasible or unfeasible physically.