Giter Site home page Giter Site logo

Comments (7)

Manvi-Agrawal avatar Manvi-Agrawal commented on May 26, 2024

@CarlosLaraM, I like the demo suggested by you. But I am not sure if we should add a demo task in the kata. Are you open to the possibility of creating a tutorial for QEC_BitFlipCode?

As a general rule of thumb , kata offers only programming exercises on a topic and some reference material (links, lecture notes, etc); while a tutorial offers the theory and demos on some topic, complimented by some exercises.

For some topics like Grover's Algorithm, Deutsch Jozsa algorithm, we initially started with a kata and then created a tutorial to make it easy for learner to follow along.

For more details, you can refer structure of kata/tutorial.

@tcNickolas thoughts?

from quantumkatas.

CarlosLaraFP avatar CarlosLaraFP commented on May 26, 2024

@Manvi-Agrawal I love your idea of creating a tutorial for QEC_BitFlipCode, and it definitely makes sense to add the demo(s) there.

What do you think about giving the tutorial a broader name (i.e. QuantumErrorCorrection) so that we can include additional QEC codes (phase flip, Shor, Steane)?

from quantumkatas.

Manvi-Agrawal avatar Manvi-Agrawal commented on May 26, 2024

@CarlosLaraM , the idea of naming tutorial as "Quantum Error Correction" sounds good to me since it would allow us to include additional QEC codes in future

It would be helpful if you could share a short structure of the QEC tutorial before raising the PR. More specifically a highlight of different demos and exercises that would be added in PR.

@tcNickolas thoughts?

from quantumkatas.

CarlosLaraFP avatar CarlosLaraFP commented on May 26, 2024

@Manvi-Agrawal, this is the proposed structure of the QEC tutorial:

Bit Flip Code

  • Task 1.1: Computational basis parity measurement
  • Task 1.2: Encode logical qubit into 3 physical qubits
  • Task 1.3: Detect bit flip error on the first qubit
  • Task 1.4: Correct bit flip error on the first qubit
  • Task 1.5: Detect bit flip error on any qubit
  • Task 1.6: Correct bit flip error on any qubit
  • Task 1.7: Verify bit flip code does not disturb the initial state
  • Demo: Error-free arbitrary state transmission using bit flip code
  • Task 1.8: Implement bit flip code using Microsoft.Quantum.ErrorCorrection

Sign Flip Code

  • Task 2.1: Hadamard basis parity measurement
  • Task 2.2: Encode logical qubit into 3 physical qubits
  • Task 2.3: Detect sign flip error on the first qubit
  • Task 2.4: Correct sign flip error on the first qubit
  • Task 2.5: Detect sign flip error on any qubit
  • Task 2.6: Correct sign flip error on any qubit
  • Task 2.7: Verify sign flip code does not disturb the initial state
  • Demo: Error-free arbitrary state transmission using sign flip code
  • Task 2.8: Implement sign flip code using Microsoft.Quantum.ErrorCorrection

Shor code

  • To be continued...

Steane code

  • To be continued...

These tasks will be accompanied by theory markup cells as needed.

My plan is to split the work over several small PRs, completing one section at a time (or perhaps 1-2 tasks at a time). Small batches will minimize the time spent in code review and deliver value to learners incrementally.

Thoughts?

from quantumkatas.

Manvi-Agrawal avatar Manvi-Agrawal commented on May 26, 2024

@CarlosLaraM , thanks for your plan. Sounds good to me. I would like to wait for @tcNickolas's thoughts on this approach.

from quantumkatas.

tcNickolas avatar tcNickolas commented on May 26, 2024

I would really like to take a look at #418 before we start working on a new variant of QEC tutorial, and to spend some time figuring out the best way to move forward with the broader QEC tutorials. For example, we have noise simulator in the QDK that can be used to explore error correction - it would be interesting to think how we can incorporate it into these tutorials.

Returning to the question that spawned this thread, we're absolutely free to add end-to-end tasks to the katas, as well as bits of theory. For example, BB84 kata is something mid-way between a pure kata and a tutorial - the protocol is simple enough that it doesn't need extensive theory, so we added some bits of theory and E2E tasks instead of doing a separate tutorial. (For Deutsch-Jozsa algorithm, I did a tutorial after the kata because I really wanted to spend time on the classical solution and especially on the concept of oracles that is a major thing to learn.)

To summarize: I think it's a good idea to add an E2E task to the QEC_BitFlipCode kata, similar to task 2.6 in KeyDistribution_BB84: comments highlighting each step and // ... to fill each step, no automatic test but a %simulate cell to run that task in the notebook and an @Test annotation to run it in the VS/VS Code environment.

from quantumkatas.

tcNickolas avatar tcNickolas commented on May 26, 2024

@CarlosLaraFP Are you planning to make the pull request to add the E2E task following the structure of the code in your screenshot? I think it's the best next step here, let me know!

from quantumkatas.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.