Skip to content

Computing the guesswork in the presence of quantum side information

License

Notifications You must be signed in to change notification settings

ericphanson/GuessworkQuantumSideInfo.jl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

56 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GuessworkQuantumSideInfo

Build Status Coverage Stable documentation Dev documentation arXiv article DOI

This is a package accompanying the preprint Guesswork with Quantum Side Information.

Quick example

Consider one party Alice who draws a random number in the set [1,2,3,4] uniformly at random. If she draws 1 she sends another party, Bob, the quantum state |0⟩; if she draws 2, she sends |1⟩, if she draws 3 she sends |-⟩, and finally if she draws 4, she sends |+⟩. Bob, knowing this general procedure but not which number Alice drew, aims to guess the value Alice drew by performing experiments on the quantum state he was given. The average number of guesses Bob needs in order to get the right answer, minimized over all quantum strategies, is the so-called guesswork with quantum side information. This package provides a means to compute this.

julia> using GuessworkQuantumSideInfo, SCS

julia> p = [0.25, 0.25, 0.25, 0.25];

julia> ketzero = ket(1, 2);

julia> ketone = ket(2, 2);

julia> ketminus = (ket(1, 2) - ket(2,2))/sqrt(2);

julia> ketplus = (ket(1, 2) + ket(2,2))/sqrt(2);

julia> ρBs = dm.([ ketzero, ketone, ketminus, ketplus  ])
4-element Array{Array{Complex{Float64},2},1}:
 [1.0 + 0.0im 0.0 + 0.0im; 0.0 + 0.0im 0.0 + 0.0im]                                                              
 [0.0 + 0.0im 0.0 + 0.0im; 0.0 + 0.0im 1.0 + 0.0im]                                                              
 [0.4999999999999999 + 0.0im -0.4999999999999999 - 0.0im; -0.4999999999999999 + 0.0im 0.4999999999999999 + 0.0im]
 [0.4999999999999999 + 0.0im 0.4999999999999999 + 0.0im; 0.4999999999999999 + 0.0im 0.4999999999999999 + 0.0im]  

julia> output = guesswork(p, ρBs; solver = SCSSolver(verbose=false));

julia> output.optval
1.709431078700102

It turns out it takes (1/4)*(10 - sqrt(10)) ≈ 1.71 guesses on average.

About

Computing the guesswork in the presence of quantum side information

Resources

License

Stars

Watchers

Forks

Packages