# Are there established best practices for designing Dwave embeddings?

Some of my larger annealer embeddings (~200 qubits) don't anneal down to the ground state while some of them do very easily.

Are there established guidelines for designing annealer embeddings to ensure that ground state configurations can be easily found? If so, where can this information be found?

If not, is addressing this issue more a matter of properly setting annealer parameters/annealing schedule. What are some good papers with information on this?

• Do you have estimates of the gap of $H_t$ as you adiabat from $H_0$ to $H_1$ Jan 11 '19 at 3:31
• I don't know what this is. What is 'the gap'? Or, Where do I find out about it? Jan 11 '19 at 3:33
• Is this in reference to the 'band structure' of the embedding? If i did have an estimate of the gap, how would i use it? Jan 11 '19 at 3:40
• Meaning the energy of the next lowest eigenstate relative to the ground state as H_t varies. Tells you if adiabicity still holds. Jan 11 '19 at 3:43
• Ah i see so it may be a question of whether the embedding is even valid per the adiabatic theorem? I will read more about this thank you. Jan 11 '19 at 4:08

There are multiple factors that affect an embedding's performance, including what Davide mentions. Depending on your background, the following interpretation of Davide's answer might be easier for you to understand:

• Early in the anneal, the Ising (classical/user-input/final) Hamiltonian has no effect, which means that two spins in a chain are not compelled to agree.

• As the anneal progresses, the chain couplings become increasingly impactful... so do the other Ising terms (h's and J's).

• You want the chain terms to become important just before the other Ising terms become important. This is a fine balance that can be influenced by the strength of the chains (relative to the other terms), and by anneal offsets, which can make some qubits anneal slightly in advance of others. This D-Wave whitepaper shows an example where anneal offsets can be effective.

More generally I would start "debugging" an embedding by answering, in order, the following questions:

• Are one or more chains frequently (or almost always) broken in the output? If a chain frequently comes out as partly up and partly down, it suggests that one or all of the couplings in that chain need to be stronger.

• If you find multiple embeddings of the same problem (heuristically using sapiFindEmbedding or similar), do they all "fail" in the same way?

• Does your embedding have some chains that are very large compared to others? If so, the larger chains will have slower dynamics (they will be "heavier") and perhaps should be adjusted with anneal offsets as described in the link.

Note that if your output (without postprocessing) doesn't have any broken chains, it may suggest that your chains are too strong. This means that the non-chain terms will be very small, and therefore the problem will be sensitive to noise and will have a high effective temperature, which is bad.

Good luck!

On parameter setting, check our work: https://journals.aps.org/prx/abstract/10.1103/PhysRevX.5.031040 (Basically you want to make sure that the chains representing the logical qubit have a phase transition synchronized with the minimum gap). But in general this is a hard problem, and precision issues connected to the embedding characteristics are probably the dominant effect that influences performance.