dwavesystems / dwave-system

An API for easily incorporating the D-Wave system as a sampler, either directly or through Leap's cloud-based hybrid samplers
https://docs.ocean.dwavesys.com/
Apache License 2.0
87 stars 62 forks source link

Adapt TilingComposite to Zephyr architecture #456

Open mdecandia opened 2 years ago

mdecandia commented 2 years ago

Description Right now the TilingComposite is only defined for Chimera-structured hardware graphs. It is not defined for Zephyr or Pegasus-structured either, see #295.

To Reproduce

from dwave.system.samplers import DWaveSampler
from dwave.system import TilingComposite

sampler = DWaveSampler(solver=dict(topology__type='zephyr'))   
tiled_sampler = TilingComposite(sampler, 1, 2, 4)

Error

File /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/dwave/system/composites/tiling.py:157, in TilingComposite.__init__(self, sampler, sub_m, sub_n, t)
    155 else:
    156     if len(sampler.properties['topology']['shape']) != 1:
--> 157         raise ValueError('topology shape is not of length 1 '
    158                          '(not compatible with pegasus)')
    159     # Full yield in odd-couplers also required.
    160     # Generalizes chimera subgraph requirement and leads to some
    161     # simplification of expressions, but at with a cost in cell-yield
    162     edges_per_cell += t