# How to decide bias in Hamiltonian Ising model?

I am trying to code finance portfolio optimisation problem into a quantum annealer, using the Hamiltonian Ising model. I am using the dwave module

neal.sampler.SimulatedAnnealingSampler.sample_ising


I was wondering how one gets to decide what the bias is? I don't really get how that works. On the documentation of Dwave it says the following:

import neal
>>> sampler = neal.SimulatedAnnealingSampler()
h = {'a': 0.0, 'b': 0.0, 'c': 0.0}
J = {('a', 'b'): 1.0, ('b', 'c'): 1.0, ('a', 'c'): 1.0}
sampleset = sampler.sample_ising(h, J, num_reads=10)
print(sampleset.first.energy)


So, to get the bias terms the problem first needs a formulation as a constrained optimization problem. Examples are given in the Ocean docs, e.g. for a map coloring problem. There are some tools to derive a BQM from constraint optimization problems (pyqubo or dwavebinarycsp ). This needs to get transformed into an Ising problem to be used for neal.sampler.SimulatedAnnealingSampler.sample_ising. The dimod package provides tools for this task. The terms really depend on the problem structure.