dwavesystems / qbsolv

Qbsolv,a decomposing solver, finds a minimum value of a large quadratic unconstrained binary optimization (QUBO) problem by splitting it into pieces solved either via a D-Wave system or a classical tabu solver. (Note that qbsolv by default uses its internal classical solver. Access to a D-Wave system must be arranged separately.)
https://docs.ocean.dwavesys.com/projects/qbsolv
Apache License 2.0
914 stars 229 forks source link

Documentation - undocumented behavior of QBSolv #135

Open mstechly opened 6 years ago

mstechly commented 6 years ago

Current Problem There is undocumented behavior, that QBSolv doesn't use provided sampler if the size of the problem is smaller than 20. This is misleading since people usually start with small problems.

Also, it's not obvious why one should sampler = EmbeddingComposite(DWaveSampler(token=sapi_token, endpoint=endpoint)) instead of sampler = DWaveSampler(token=sapi_token, endpoint=endpoint).

Furthermore, it's hard to distinguish if QBSolv is using QPU or not. The easiest way to do that is through Leap dashboard and there is no easy way to do that programmatically.

Proposed Solution This behavior should be clearly described in the documentation or some information for the user should be printed.

Also, it would be nice if there was a way to get data about QPU runtimes directly from QBSolv.

Additional context For more details see #134

JoelPasvolsky commented 6 years ago

Thank you, @mstechly! @spreinhardt, this issue is what I was discussing in our email Tuesday.

richardkmichael commented 6 years ago

I was also exploring this out of interest for awhile before @mstechly opened #134.

It's particularly misleading due to this QBSolv example. It's a fine example of QBsolv, obviously, but, since the comment mentions the QPU, it gives the impression the example author expected the QPU to be used, when in fact, it won't.

A quick "fix" would be a few more simple examples, separately demonstrating the concepts and code, would help your users.

cheers!