For a project I'm working on, I want to use D-Wave systems to estimate the probabilities of a Boltzmann distribution given a QUBO (Hamiltonian), this being performed through sampling and the use of the law of large numbers. Yet, I have some problems.
- There is a difference between the mathematical QUBO I have, that I define in Python, and the physical QUBO that is actually implemented. Such a difference must exist for multiple reasons:
- A priori, the QUBO I define can have arbitrary big coefficients, while a physical system cannot have arbitrary big energies. Thus, my QUBO must be scaled at some point.
- The QUBO written in Python is physically dimensionless, while an actual energy has a physical dimension (ML^2T^-2). Thus, an energy scale must be involved.
- The physical Boltzmann distribution depends on temperature through a factor
This can be summarized by saying that denoting by H the QUBO defined in Python, what the machine implements and samples from is some
\beta_eff*H. While having a positive
\beta_eff ensures that the ground states remain the same and therefore allows for the discovery of the ground state of my mathematical QUBO, the Boltzmann distribution is changed by this factor.
- Getting an estimation of a probability distribution through a statistical sampling implies having enough samples to reach convergence in the law of large numbers. As a first approximation, if N is the amount of qubits involved in my QUBO, then there are 2^N possible states and thus 100*2^N is a decent estimation of the amount of samples required to reach the aforementioned convergence. Now, when trying to sample from a distribution, I encountered an error stating that
num_readsis at maximum 10 000, which (according to the previous estimation) allows for no more than 6 qubits, so not enough for me. I thought of simply make multiple batches of 10 000 reads and concatenate them together with Python ; however, this forum thread implies that it won't be a solution.
Hence the question : Is it possible to sample from a given Boltzmann distribution using a D-Wave computer, and if yes, how to do so ?
Thanks in advance for your help