-
Notifications
You must be signed in to change notification settings - Fork 107
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Migrate Nonlocal Games katas to quantum.microsoft.com #1596
Comments
I'd like to work on these issues Here are a few clarifying questions: Suggestion for sections (total 10, maybe 13):
|
This breakdown sounds about right, yes. You'll probably want to start with adding just the first game to the kata in one PR, and then send two more PRs with the other games. This way the scope of each review would be smaller and I'll be able to do it faster :-) |
@tcNickolas Maria - thank you for information. namespace Kata { I think, it make sense to merge 2 cells into 1 exercise but ask student to implement both of functions. |
If the operation returns a tuple of functions, how would you implement peeking from one of them into the other? They still cannot share a state, since Q# doesn't have global variables, and sharing some function code wouldn't help. My idea is to still have two separate functions for Alice and Bob, yes, but use the wrapper that returns both these functions, similar to task Entanglement Swapping in Teleportation kata. The learner then implements both functions indeed, but they live in one exercise. |
@tcNickolas - thank you for clarification. I confused 2 values tuple with 2 functions tuple. |
I'd put it either after Superdense Coding and before Oracles or after all the oracular algorithms before QEC. Oracles and oracular algorithms are one unit logically, so I wouldn't break them up. These games don't rely on the concept of an oracle, so they can go before, together with the "simple algorithms". On the other hand, they're an optional topic (I don't cover them in my course, for example) so they can be closer to the end. |
@tcNickolas I am ready to submit PR for quantum CHSH but it depends on #1710 (particularly: nonlocal_games/index.md) |
I reviewed now! Thank you for your patience, I needed to wrap up some urgent work on other katas, and the heat this week was not helpful. |
The link to the issue: #1596 This pull requests is covering 1. inital folder structure for nonlocal_games 2. CHSH classical tasks (1.1 and 1.2/3) Other PRs will follow after this commit. Details of this PR: Context is (mostly) copied from previous version QuantumKatas. 1. index.md for nonlocal_games is added. - Brief overview for nonlocal games is new. 2. chsh_classical_win_condition (task 1.1) is added. - index.md: Reference to Q# samples is rephrased to point to this the kata (reference implementation will be added in next quantum PR). 3. chsh_classical_strategy (combined tasks 1.2 1.3) is added. 4. Conclusion section sentence is new. Testing done: 0. Build "python ./build.py --npm" is successful 1. Placeholder cases are syntactically correct but failing verifications. 2. Solutions are successful. 3. Some other failure scenarios were tested manually. 4. Content screenshots are attached.    --------- Co-authored-by: Mariia Mykhailova <[email protected]>
@tcNickolas However, the difference might cause learners confusion.
What do you think? |
Good question!! I like that in this variant of the game the measurements are done in Z and X bases, since they are quite commonly used in other katas, unlike the measurement in Y basis that Wikipedia suggests for the game with GHZ state. I also like that the solution for this variant is already written up :-) I would lean towards the first option you suggested, keep the current approach and add a note that this game is equivalent to the game with GHZ state itself, and mention the strategy for that state, but we probably don't need to write up the proof of these two games being equivalent, just mention that if the learner is curious they can do it as an exercise. |
The link to the issue: #1596 This pull request is covering 1. CHSH quantum tasks (2.2, 2.4; 2.5 is converted to a demo) 2. CHSH discussion 3. Few changes in CHSH classical --------- Co-authored-by: Mariia Mykhailova <[email protected]>
The link to the issue: #1596 This pull request is covering 1. GHZ classic tasks 1.1 2. GHZ task 1.2 (random) is dropped. Task 1.3 is expanded into implementation of 3 strategies (Alice, Bob and Charlie) This approach allow to create more complicated output like [true, false, false] or [r, DrawRandomBool(0.8), not t] 3. GHZ classic task 1.4 --------- Co-authored-by: Mariia Mykhailova <[email protected]>
The link to the issue: #1596 This pull request covering 1. GHZ quantum tasks 2.1 (creating entangled triple). 2. GHZ quantum task 2.2 (quantum strategies). 3. Quantum strategy discussion. 4. GHZ quantum task 2.3 (quantum game) is converted to demo. --------- Co-authored-by: Mariia Mykhailova <[email protected]> Co-authored-by: César Zaragoza Cortés <[email protected]>
Current CHSH game, GHZ game, and Mermin-Peres magic square game katas cannot be used with the modern QDK. It would be nice to have them available as part of the new katas experience.
I think each of them is too small to warrant a separate kata in the new experience, so it would make sense to merge them together into one kata called "Nonlocal Games: CHSH, GHZ, and Mermin-Peres".
We'll probably want to explain each quantum strategy ahead of the exercises that implement it, same as we did in QEC Shor kata, since it's tricky to come up with independently (especially for the magic square!)
isAlice
, keep 1.2 and 1.3 (merge two cells in 1.3 in one task returning a tuple), keep 2.1, drop 2.2 (it will be verified in 2.3 automatically), keep 2.3-2.7.The text was updated successfully, but these errors were encountered: