Randomizing physical position of embedded graph in QPU

Thinking high level and knowing that there are several embedding strategies in Ocean's DWave.

If I have a problem for which the physical embedded graph on the QPU < Pegasus physical graph on the QPU, each time I sample a set of solutions from the QPU:

a) is the embedding algorithm always choosing the same subgraph with the same Qubits/Connections on the QPU? 
b) is the embedding algorithm choosing a random subgraph with different Qubits/Connections on the QPU?
c) is there a parameter to switch between behaviour a) and b) ?

E.g in this call:
response = EmbeddingComposite(DWaveSampler(token=self.sapi_token, endpoint=self.url, solver='Advantage_system1.1'), ).sample_qubo(self.qubo_dict, chain_strength=self.chainstrength, num_reads=self.numruns,annealing_time=self.annealing_time, auto_scale=True, reduce_intersample_correlation=False)
where could I define the parameter mentioned in question c) ?

0

Comments

2 comments
  • Those are good questions! I'll answer your questions in the order you laid them out. 

     

    a) No, the EmbeddingComposite does not find the same embedding every time it's called (although sometimes it may).  If you were to run your example code twice, you would end up with two different embeddings. One easy way to see this is to use the Inspector to view your results by calling 

    inspector.show(response)

    Once the Inspector opens, click on the 'b' view in the top right of the screen to see where your problem is embedded on the QPU. 

    You can save and reuse embeddings though. Here's a post that explains how to do so. This post has a more detailed discussion on saving and viewing an embedding. 

     

    b) The embedding algorithm searches for an embedding that minimizes chain length. Although embeddings are often different every time they are computed, they aren't random. Here's the embedding tool we use. 

     

    c) We don't have a way of switching between using a saved embedding and computing a new embedding, but you can create either behavior in the way you program your code (as outlined in the posts above). 

    I hope this helps! Let me know if you have any more questions. 

    0
    Comment actions Permalink
  • Thx Alex it helps and the Inspector is cool :-)

    0
    Comment actions Permalink

Please sign in to leave a comment.

Didn't find what you were looking for?

New post