The codes are written in Julia. 

The names of other files are self-explanatory. 
- main.jl is the file to be executed. Problem parameters, e.g., the number of qubits, are also set here.
- algorithms.jl implements the algorithms. 
- functions.jl contains all functions, in particular those for generating the synthetic dataset. 
- myplot.jl contains a function for plotting the figures in the paper. 

To run the numerical experiement, just include "main.jl" in the Julia environment. Currently the number of qubits is set to 4 so an iteration of the algorithms does not take a long time. If you want to try the 6-qubit case, please manually set the parameter in "main.jl". 

To plot the figures, include "myplot.jl" and call the function as "myPlot("[output file name of main.jl]", 200, 200, 10)". 

We did not manage to clean the codes. 
