# How does D WAVE do the mapping?

After we calculated the bias on each qubit and the coupler strength on each edge, we can get our Hamiltonian function. The next step would be connecting to the D WAVE system sampler and let the Quantum annealer envolves to it's lowest energy state and find the corresponding assignment on those qubits. So can anyone tell me how does D WAVE map the Ising model to the Chimera graph?

## Comments

David J(Report)Hello,

Let me link you to a couple of resource!

This Community post talks about how problems are solved on the QPU.

The Getting Started Guide walks through formulating a problem to running it on the QPU.

Specifically you might want to look at the Chimera Graph page and the Minor Embedding page, which talk about the QPU architecture, and mapping a problem to that architecture respectively.

The QPU represents ising problems natively, representing qubits as spins taking on a +1 or -1 state, as described in this document, specifically in section

2.1.1 Ising Model.I hope this was helpful!

Please let us know if you need any further information or clarification.

YUWEI J(Report)Hi,

I already read the materials you mentioned above. I am looking for how exactly D Wave maps the Ising model to the Chimera graph? Like which logical qubit map to which single physical qubit or a couple of chained physical qubits? One strategy I know is placement-and-routing. similar to the mapping on FPGA, you can place primitives, binary operators, on Chimera graph and connecting them by apply chain functions avoiding that one physical qubit is sharing by two different paths.

I am curious about what kind of strategy does D wave utilizes to do the mapping from the Ising model to the Chimera graph?

Thank You

David J(Report)For our particular implementation, find_embedding, you can take a look at the open source code in GitHub:

https://github.com/dwavesystems/minorminer

In particular, if you take a look at the README.rst file, you will see a link to the following paper:

https://arxiv.org/abs/1406.2741

This gist of this algorithm is that it picks a random spot and then tries to build the embedding.

It is not always successful.

There are also other embedding algorithms, such as clique embedding.

Here is a reference to the code:

https://docs.ocean.dwavesys.com/projects/system/en/stable/_modules/dwave/embedding/chimera.html#find_clique_embedding

Clique embedding uses polynomial embedder:

https://github.com/dwavesystems/dwave-system/blob/master/dwave/embedding/polynomialembedder.py

There is a paper on clique embedding here:

https://arxiv.org/abs/1507.04774

Please let us know if this answers your question, and if you need any more information.

Please sign in to leave a comment.