https://github.com/iitis/statisticalverificationofisingenergies
implementation of cumulant's based method to verify whether the Ising output contains a ground state energy
https://github.com/iitis/statisticalverificationofisingenergies
Last synced: 3 months ago
JSON representation
implementation of cumulant's based method to verify whether the Ising output contains a ground state energy
- Host: GitHub
- URL: https://github.com/iitis/statisticalverificationofisingenergies
- Owner: iitis
- License: other
- Created: 2021-09-02T11:23:40.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2023-09-25T07:15:13.000Z (over 2 years ago)
- Last Synced: 2025-01-17T13:32:23.237Z (over 1 year ago)
- Language: Julia
- Size: 10.5 MB
- Stars: 0
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# StatisticalVerificationOfIsingEnergies
implementation of cumulant's based method to verify whether the Ising output contains a ground state energy
# Analysing Ising energy spectrum
### Estimating ground state energy
To estimate ground state energy from data
```julia
estimate_ground_state_energy(energies::Vector{Float64}, α::Float64)
julia> energies = [0.1, 1., 1.2, 2., 2.2, 3., 3.1, 3.5];
julia> estimate_ground_state_energy(energies, 0.19)
9.745023110079497
```
### Bootstrap series of samples of estimated minimal energies
Statistics and histogram can be computed from these
```julia
bootstrap_hists_of_mins(energies::Vector{Float64}, α::Float64, s::Int, l::Int=length(x))
julia> energies = [1. ,1.5, 2., 3., 4.];
julia> Random.seed!(1234);
julia> h = bootstrap_hists_of_mins(energies, 0.19, 3)
3-element Vector{Float64}:
10.327274688631618
-4.407048476374387
-4.721357273543485
```
### Squared error of estimated minimal energy, for comparison with bootstrap
```julia
julia> squared_error(energies::Vector{Float64}, α::Float64)
julia> energies = [1. ,1.5, 2., 3., 4.];
julia> squared_error(energies, 0.19)
8.633622351519547
```
### Testing energy spectrum
To get the p-value, the probability that the minimal enegry can be the ground state energy (using the Boodstad resampling):
```julia
bootstrap_get_pvalue(energies::Vector{Float64}, α::Float64, s::Int = 1_000)
julia> Random.seed!(1234);
julia> energies = [0.1, 1., 1.2, 2., 2.2, 3., 3.1, 3.5];
julia> bootstrap_get_pvalue(energies, 0.19)
0.655
```
### Estimate temperature, given a ground state energy
```julia
estiamte_temperature(energies::Vector{Float64}, ground_energy::Float64)
julia> energies = [1. ,1.5, 2., 3., 4.];
julia> estiamte_temperature(x, -5.)
3.4826659310464034
```
## Citing this work
Krzysztof Domino, Mátyás Koniorczyk, Zbigniew Puchała, Domino, K., M. Koniorczyk, and Z. Puchała, "Statistical quality assessment of Ising-based annealer outputs", Quantum Information Processing, vol. 21, issue Article number: 288 (2022), 08/2022, https://link.springer.com/article/10.1007/s11128-022-03623-5
This project was supported by the Foundation for Polish Science (FNP) under grant number TEAM NET POIR.04.04.00-00-17C1/18-00