Skip to content
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

Feature: Min-relative entropy for quantum states #40

Closed
vprusso opened this issue Mar 4, 2021 · 9 comments
Closed

Feature: Min-relative entropy for quantum states #40

vprusso opened this issue Mar 4, 2021 · 9 comments

Comments

@vprusso
Copy link
Owner

vprusso commented Mar 4, 2021

Implement a function that calculates the min-relative entropy for quantum states.

The functionality for this should be created in state_props/min_relative_entropy.py with corresponding unit tests found in tests/test_state_props/test_min_relative_entropy.py. Be sure to also update the docs in /docs/states.rst under "Properties of Quantum States" with toqito.state_props.min_relative_entropy.py.

For a definition of min-relative entropy for quantum states, consult:
https://arxiv.org/abs/1905.11629

See related tasks:

@victor-onofre
Copy link
Contributor

victor-onofre commented May 18, 2021

Hi @vprusso, I want to try to do this feature. I saw the definition in https://arxiv.org/abs/1905.11629, but I don't understand how to compute the quantities. Is there some examples to do this? or maybe another type of explanation?

Also, I found this thesis https://arxiv.org/abs/1611.08802 in the definition 3.2.2 (page 38),there is another definition of min-relative entropy using the fidelity:

D_min( rho || sigma) = - 2 log F( rho , sigma ) + 2log tr(rho)

Is this other definition useful?

The function for the Bures distance was so fun to do. I will not make the same mistakes this time.
Thank you for the help again!

@vprusso
Copy link
Owner Author

vprusso commented May 18, 2021

Hi @victor-onofre. Glad to see you back for another task, and I'm happy to hear you had fun working on the other function, that's great!

Regarding this task, now that I am looking over this task and #41, I am wondering if it would make sense to combine both of these into a single function relative_entropy.py within the state_metrics folder.

I'm thinking this function would essentially implement Definition 5.18 in https://cs.uwaterloo.ca/~watrous/TQI/TQI.pdf.

At least, that is my initial thought on this. Any input or questions you have of course, do let me know!

@victor-onofre
Copy link
Contributor

I like the idea @vprusso. I will start working on that. I will let you know if I have more questions.
Thank you!

@vprusso
Copy link
Owner Author

vprusso commented May 18, 2021

Cool! Sounds like a plan, @victor-onofre. Really excited to see what you put together here! :)

@victor-onofre
Copy link
Contributor

Hi @vprusso, I have finished the first version of the function relative_entropy.py. Right now, I'm trying to find some numerical examples of the relative entropy to create the test cases. But, I cannot find any. Do you have any source of numerical examples to compare my results? I will keep looking in the meantime.

Thank you for the help!

@vprusso
Copy link
Owner Author

vprusso commented May 25, 2021

Hi @victor-onofre. Nice to hear about the initial pass on the function, that's great news.

W.r.t. examples of known results, I'm not sure off the top of my head I know of any exact numerical quantities for certain states, however, there are certainly known bounds that exist for these quantities.

Indeed, if you check Felix's thesis that you previously linked (https://arxiv.org/pdf/1611.08802.pdf), things like known that the relative entropy should be 0 when both rho = sigma is something that can be checked. I think incorporating tests that align with the known bounds on this quantity would be a good way to test it.

Hope that makes sense, and let me know if not!

@victor-onofre
Copy link
Contributor

I have checked the bounds for the function, it looks like that part works. Now, I'm trying to replicate the results of this paper: https://arxiv.org/abs/1909.05826. Specifically that D(E || F) = 0.9176 for rho = diag(0.8355, 1-0.8355) using the equation 9. Also, I want to replicate figure 1 in the paper.

I'm having trouble applying the Choi matrices, I'm assuming that:
sqrt(rho_R) J_RB sqrt(rho_R) = (sqrt(rho_R) \tensor I_B*) J_RB*(sqrt(rho_R) \tensor I_B)
Is this correct?. Is there a way to apply this channels using toqito? I'm a little lost here.

Thank you for the help @vprusso!

@vprusso
Copy link
Owner Author

vprusso commented May 26, 2021

Hi @victor-onofre.

Okay, if I understand correctly, you need to calculate the quantity:

sqrt(rho_R) J_{RB}^{E} sqrt(rho_R)

It looks like they provide an explicit construction of the J_{RB}^{E} matrix above equation (9), so all you should need to do is to multiply on the left and right by sqrt(rho_R).

A few things that might be relevant to watch out for here is:
- You're taking the square root of an operator, so you'll want to ensure you are using sqrtm over sqrt.
- You're multiplying operators in the quantity expression, so you'll want to ensure you multiply using the @ symbol over the * symbol.

Since they provide the

sqrt(rho_R) J_{RB}^{E} sqrt(rho_R)

closed-form to you already, you shouldn't need to do anything with applying Choi matrices. However, for the record, there is indeed functionality to do this in toqito, and this can be found in the apply_channel.py and partial_channel.py files.

Let me know if something I'm saying is unclear or if you have follow-up questions.

@purva-thakre purva-thakre self-assigned this Dec 21, 2023
@purva-thakre purva-thakre removed this from To do in toqito Jan 30, 2024
@purva-thakre purva-thakre added this to the v1.0.8 milestone Feb 24, 2024
@vprusso
Copy link
Owner Author

vprusso commented Apr 20, 2024

Closing as part of task clean-up.

@vprusso vprusso closed this as completed Apr 20, 2024
Unitary Grant Fall 2023 - Spring/Summer 2024 automation moved this from To do to Finished (Issues) Apr 20, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Development

No branches or pull requests

3 participants