def sample(self, bqm, num_reads=10, flux_biases=[], **kwargs): # we are altering the bqm if flux_biases given info = dict(problem_id=str(uuid4())) label = kwargs.get('label') if label is not None: info.update(problem_label=label) if not flux_biases: ss = SimulatedAnnealingSampler().sample(bqm, num_reads=num_reads) ss.info.update(info) return ss new_bqm = bqm.copy() for v, fbo in enumerate(flux_biases): self.flux_biases_flag = True new_bqm.add_variable(v, 1000. * fbo) # add the bias response = SimulatedAnnealingSampler().sample(new_bqm, num_reads=num_reads) # recalculate the energies with the old bqm return dimod.SampleSet.from_samples_bqm([{v: sample[v] for v in bqm.variables} for sample in response.samples()], bqm, info=info)
def sample(self, bqm, num_reads=10, flux_biases=[]): # we are altering the bqm new_bqm = bqm.copy() for v, fbo in enumerate(flux_biases): self.flux_biases_flag = True new_bqm.add_variable(v, 1000. * fbo) # add the bias response = SimulatedAnnealingSampler().sample(new_bqm, num_reads=num_reads) energies = [ bqm.energy(sample) for sample in response.samples(sorted_by=None) ] return dimod.Response.from_samples(response.samples(sorted_by=None), {'energy': energies}, {}, bqm.vartype)
def sample(self, bqm, num_reads=10, flux_biases=[]): # we are altering the bqm if not flux_biases: return SimulatedAnnealingSampler().sample(bqm, num_reads=num_reads) new_bqm = bqm.copy() for v, fbo in enumerate(flux_biases): self.flux_biases_flag = True new_bqm.add_variable(v, 1000. * fbo) # add the bias response = SimulatedAnnealingSampler().sample(new_bqm, num_reads=num_reads) # recalculate the energies with the old bqm return dimod.SampleSet.from_samples_bqm( [{v: sample[v] for v in bqm} for sample in response.samples()], bqm)