示例#1
0
    def test_instantiation(self):
        for factory in [dimod.ExactSolver, dimod.RandomSampler, dimod.SimulatedAnnealingSampler]:
            sampler = dimod.StructureComposite(factory(), [0, 1, 2], [(0, 1), (0, 2), (1, 2)])

            dit.assert_sampler_api(sampler)
            dit.assert_composite_api(sampler)
            dit.assert_structured_api(sampler)
示例#2
0
    def test_instantiation_triangle(self):
        sampler = FixedEmbeddingComposite(MockSampler(), {'a': [0, 4], 'b': [1, 5], 'c': [2, 6]})

        dtest.assert_sampler_api(sampler)  # checks adj consistent with nodelist/edgelist

        self.assertEqual(sampler.nodelist, ['a', 'b', 'c'])
        self.assertEqual(sampler.edgelist, [('a', 'b'), ('a', 'c'), ('b', 'c')])
示例#3
0
    def test_initialization(self):
        sampler = dimod.RandomSampler()

        dtest.assert_sampler_api(sampler)

        self.assertEqual(sampler.properties, {})
        self.assertEqual(sampler.parameters, {'num_reads': []})
示例#4
0
    def test_instantiation(self):
        for factory in [dimod.ExactSolver, dimod.RandomSampler, dimod.SimulatedAnnealingSampler]:

            sampler = dimod.SpinReversalTransformComposite(factory())

            dit.assert_sampler_api(sampler)
            dit.assert_composite_api(sampler)
示例#5
0
    def test_instantiation(self):
        sampler = dimod.ExactSolver()

        dtest.assert_sampler_api(sampler)

        # this sampler has no properties and has no accepted parameters
        self.assertEqual(sampler.properties, {})
        self.assertEqual(sampler.parameters, {})
示例#6
0
 def test_pegasus_topology(self):
     grid_parameter = 4
     sampler = MockDWaveSampler(topology_type='pegasus',
                                topology_shape=[grid_parameter])
     # P4 fabric only has 264 nodes
     self.assertTrue(len(sampler.nodelist) == 264)
     dit.assert_sampler_api(sampler)
     dit.assert_structured_api(sampler)
示例#7
0
    def test_instantiation_empty_embedding(self):
        sampler = FixedEmbeddingComposite(MockDWaveSampler(), {})

        dtest.assert_sampler_api(sampler)  # checks adj consistent with nodelist/edgelist

        self.assertEqual(sampler.edgelist, [])

        self.assertTrue(hasattr(sampler, 'embedding'))
        self.assertIn('embedding', sampler.properties)
示例#8
0
    def test_instantiation_empty_adjacency(self):
        sampler = FixedEmbeddingComposite(MockDWaveSampler(), source_adjacency={})

        dtest.assert_sampler_api(sampler)  # checks for attributes needed in a sampler

        self.assertEqual(sampler.edgelist, [])

        self.assertTrue(hasattr(sampler, 'embedding'))
        self.assertIn('embedding', sampler.properties)
示例#9
0
    def test_instantiate_chimera(self):
        # Use the provided architectures
        target_graph = generators.dw2x_graph()

        # Use any sampler and make structured (i.e. Simulated Annealing, Exact) or use structured sampler if available (i.e. D-Wave machine)
        structsampler = StructureComposite(RandomSampler(), target_graph.nodes,
                                           target_graph.edges)
        sampler = EmbeddingComposite(structsampler, minorminer)

        dtest.assert_sampler_api(sampler)
    def test_instantiate_pegasus(self):
        # Use the provided architectures
        target_graph = generators.p6_graph()

        # Use any sampler and make structured (i.e. Simulated Annealing, Exact) or use structured sampler if available (i.e. D-Wave machine)
        structsampler = StructureComposite(SimulatedAnnealingSampler(),
                                           target_graph.nodes,
                                           target_graph.edges)
        sampler = LayoutAwareEmbeddingComposite(structsampler)

        dtest.assert_sampler_api(sampler)
示例#11
0
 def test_zephyr_topology(self):
     grid_parameter = 3
     tile_parameter = 4
     sampler = MockDWaveSampler(
         topology_type='zephyr',
         topology_shape=[grid_parameter, tile_parameter])
     # P4 fabric only has 264 nodes
     self.assertTrue(
         len(sampler.nodelist) == tile_parameter * grid_parameter *
         (8 * grid_parameter + 4))
     dit.assert_sampler_api(sampler)
     dit.assert_structured_api(sampler)
示例#12
0
 def test_chimera_topology(self):
     grid_parameter = 5
     tile_parameter = 2
     sampler = MockDWaveSampler(
         topology_type='chimera',
         topology_shape=[grid_parameter, grid_parameter, tile_parameter])
     # C5 (shore 2) fabric only has 200 nodes
     self.assertTrue(
         len(sampler.nodelist) == grid_parameter * grid_parameter *
         tile_parameter * 2)
     dit.assert_sampler_api(sampler)
     dit.assert_structured_api(sampler)
示例#13
0
    def test_instantiation(self):
        C = dnx.chimera_graph(2, 2, 4)
        for factory in [
                dimod.ExactSolver, dimod.RandomSampler,
                dimod.SimulatedAnnealingSampler
        ]:
            structsampler = dimod.StructureComposite(factory(),
                                                     nodelist=C.nodes(),
                                                     edgelist=C.edges())

            sampler = CheckerboardTransformComposite(structsampler, C)

            dit.assert_sampler_api(sampler)
            dit.assert_composite_api(sampler)
示例#14
0
    def test_construction(self):
        child_sampler = DWaveSampler()

        # get an embedding
        K10_edges = list(itertools.combinations(range(10), 2))
        embedding = minorminer.find_embedding(K10_edges,
                                              child_sampler.edgelist)

        sampler = VirtualGraphComposite(child_sampler, embedding)

        dtest.assert_sampler_api(sampler)

        h = {}
        J = {edge: -1 for edge in K10_edges}
        sampler.sample_ising(h, J)

        sampler.sample_ising(h, J, apply_flux_bias_offsets=False)
示例#15
0
    def test_construction(self):
        child_sampler = self.qpu

        # get an embedding
        K10_edges = list(itertools.combinations(range(10), 2))
        embedding = minorminer.find_embedding(K10_edges,
                                              child_sampler.edgelist)

        sampler = VirtualGraphComposite(child_sampler,
                                        embedding,
                                        flux_bias_num_reads=10)

        dtest.assert_sampler_api(sampler)

        h = {}
        J = {edge: -1 for edge in K10_edges}

        # run with fbo
        sampler.sample_ising(h, J).resolve()

        # and again without
        sampler.sample_ising(h, J, apply_flux_bias_offsets=False).resolve()
示例#16
0
    def test_bug60(self):

        for __ in range(100):

            # make a small K5 bqm
            bqm = dimod.BinaryQuadraticModel.empty(dimod.BINARY)
            for v in range(5):
                bqm.add_variable(v, random.uniform(-1, 1))
            for u, v in itertools.combinations(range(5), 2):
                bqm.add_interaction(u, v, random.uniform(-1, 1))

            sampler_exact = dimod.ExactSolver()

            # get the structure of a C1,2 chimera lattice
            C12 = dnx.chimera_graph(2, 2, 3)
            nodelist = sorted(C12)
            edgelist = sorted(sorted(edge) for edge in C12.edges)

            sampler_structured = dimod.StructureComposite(sampler_exact,
                                                          nodelist=nodelist,
                                                          edgelist=edgelist)

            sampler_embedding = EmbeddingComposite(sampler_structured)

            dtest.assert_sampler_api(sampler_embedding)

            resp_exact = sampler_exact.sample(bqm)
            resp_emb = sampler_embedding.sample(bqm)

            for sample, energy in resp_emb.data(['sample', 'energy']):
                self.assertEqual(bqm.energy(sample), energy)

            ground_exact = dict(next(iter(resp_exact)))
            ground_embed = dict(next(iter(resp_emb)))

            self.assertEqual(ground_embed, ground_exact)
示例#17
0
    def test_instantiation_smoketest(self):
        sampler = EmbeddingComposite(MockDWaveSampler())

        dtest.assert_sampler_api(sampler)
 def test_instantiation_smoketest(self):
     sampler = CutOffComposite(dimod.ExactSolver(), 0)
     dtest.assert_sampler_api(sampler)
    def test_instantiation_smoke(self):
        sampler = ConnectedComponentsComposite(ExactSolver())

        dtest.assert_sampler_api(sampler)
示例#20
0
 def test_construction(self):
     sampler = RoofDualityComposite(dimod.ExactSolver())
     dtest.assert_sampler_api(sampler)
 def test_instantiation_smoke(self):
     sampler = FixVariablesComposite(ExactSolver())
     dtest.assert_sampler_api(sampler)
        def test_instantiation_smoketest(self):
            with self.assertWarns(DeprecationWarning):
                sampler = FixedVariableComposite(ExactSolver())

            dtest.assert_sampler_api(sampler)
 def setUp(self):
     sampler = MockDWaveSampler()
     dit.assert_sampler_api(sampler)
     dit.assert_structured_api(sampler)
 def test_instantiation_smoketest_batch(self):
     sampler = ReverseBatchStatesComposite(dimod.ExactSolver())
     dtest.assert_sampler_api(sampler)
 def test_instantiation_smoketest_advance(self):
     sampler = ReverseAdvanceComposite(dimod.ExactSolver())
     dtest.assert_sampler_api(sampler)
示例#26
0
 def test_api(self):
     sampler = ScaleComposite(dimod.ExactSolver())
     dtest.assert_sampler_api(sampler)
示例#27
0
 def test_instantiation_smoketest(self):
     sampler = ScaleComposite(ExactSolver())
     dtest.assert_sampler_api(sampler)
示例#28
0
 def test_instantiation_smoketest(self):
     sampler = ClipComposite(NullSampler())
     dtest.assert_sampler_api(sampler)
 def test_construction(self):
     with self.assertWarns(DeprecationWarning):
         sampler = RoofDualityComposite(dimod.ExactSolver())
     dtest.assert_sampler_api(sampler)
示例#30
0
    def test_10(self):
        sampler = TruncateComposite(ExactSolver(), 10)
        dtest.assert_sampler_api(sampler)
        dtest.assert_composite_api(sampler)

        self.assertEqual(sampler.parameters, {})