示例#1
0
 def test_pfs_traverse_disconnected_some_visited(self):
     eid = EnergyImpactDecomposer(size=None, traversal='pfs')
     bqm = dimod.BinaryQuadraticModel({}, {'ab': 1, 'bc': 1, 'cd': 1, 'da': 1, 'ef': 1, 'fg': 1}, 0.0, dimod.SPIN)
     priority = collections.OrderedDict(zip('abcdefg', itertools.count(0, -1)))
     var = eid.traverse(bqm=bqm, sample=None, ordered_priority=priority, visited=set('abc'), size=3)
     # pick 'd' from first graph component, and 'ef' from the second
     self.assertEqual(var, set('def'))
示例#2
0
 def test_pfs_traverse_connected_too_small(self):
     eid = EnergyImpactDecomposer(size=None, traversal='pfs')
     bqm = dimod.BinaryQuadraticModel({}, {'ab': 1, 'bc': 1, 'cd': 1, 'da': 1}, 0.0, dimod.SPIN)
     priority = collections.OrderedDict(zip('bdac', itertools.count(0, -1)))
     var = eid.traverse(bqm=bqm, sample=None, ordered_priority=priority, visited=set(), size=5)
     # start from 'b', try to pick more then there is (get complete graph back)
     self.assertEqual(var, set('abcd'))
示例#3
0
 def test_pfs_traverse_connected_some_visited(self):
     eid = EnergyImpactDecomposer(size=None, traversal='pfs')
     bqm = dimod.BinaryQuadraticModel({}, {'ab': 1, 'bc': 1, 'cd': 1, 'da': 1, 'bd': 1}, 0.0, dimod.SPIN)
     priority = collections.OrderedDict(zip('bdac', itertools.count(0, -1)))
     var = eid.traverse(bqm=bqm, sample=None, ordered_priority=priority, visited=set('b'), size=3)
     # start with 'b' visited, so use 'd' as root and pick 2 more neighbors
     self.assertEqual(var, set('dac'))
示例#4
0
 def test_pfs_traverse_connected(self):
     eid = EnergyImpactDecomposer(size=None, traversal='pfs')
     bqm = dimod.BinaryQuadraticModel({}, {'ab': 1, 'bc': 1, 'cd': 1, 'da': 1}, 0.0, dimod.SPIN)
     priority = collections.OrderedDict(zip('bdac', itertools.count(0, -1)))
     var = eid.traverse(bqm=bqm, sample=None, ordered_priority=priority, visited=set(), size=3)
     # start from 'b', pick 2 connected variables, traversed in order of best energy (priority)
     self.assertEqual(var, set('bad'))
示例#5
0
 def test_energy_traverse(self):
     eid = EnergyImpactDecomposer(size=1, traversal='energy')
     priority = collections.OrderedDict((v, v) for v in range(1, 4))
     var = eid.traverse(bqm=None,
                        sample=None,
                        ordered_priority=priority,
                        visited=[2, 1],
                        size=2)
     self.assertEqual(var, [3])