# Weight range for CQM constraints

The new version/release of CQM solver can take weights inside cqm.add_constraint(some constraint, weight = ?) method. What is the weight range for the parameter?

i.e what is the minimum and maximum possible value for the weight parameter inside the cqm's add_constraint() method?

## Comments

Perez T(Report)Hi.

I guess according to Joel's video lecture, (has since left D-Wave), from what I gather, you start with some conservative value, say it's single-digit, and work up, or work down from that value. I think it really depends on how out-of-balance the objective factors are. You can first try, eg., for a optimization of 2 objective functions, you can do:

objective = A*obj_1 + B*obj_2

Here, the goal is to have both factors "compete" agaonst each other. That said, you don't want A = B. You won't get a minimum energy (ground state) that way. The Eigenspectrum will be bogus,

For a simple QM, If I didn't have any way to know where to start, intuitively, I'd start with;

A=1, B=2

Submit to the Solver, eg., LeapHybridCQMSolver, and interpret your results. I'd then reverse the numbers:

A=2, B=1

Submit and compare and interpret.

/////////////////////////////////////////////////////

For my project, I had this simple setup:

QM = objective + L*constraint s.t. L - Lambda, the "fudge" factor.

I found a "sweet spot", "L"ambda, for one of my problems in the project to be = 5. Ie., Lambda=5.

The related problem in the same project showed that the lowest energy, was when L=15.

I covered cases: L=1, 2, 3, 6, 8, 15 and 30 for both of my related test-suites.

The ground states showed that L=5 for case-a, and L=15 for case_b, I was happy : )

I hope this helps.

T

Tanvi M(Report)Hi Aniruddha,

The weight parameter must be a positive float. There is no maximum range for the parameter but that being said you do not want to assign a randomly large number.

Similar to Lagrange multiplier, the weight parameter acts as a weighing coefficient to balance the objective and soft constraint of the problem. Setting the weight parameter to a value smaller than problem biases might lead to violated constraint and to an arbitrarily high value might be bad for performance.

Perez provided good insights to tune the weight parameter. A good point to start is by estimating the value that the objective function will have in an optimal solution and choose a value for weight parameter that puts the constraint in same order. Then increase or decrease the weight iteratively until you get good results.

I hope this helps!

Please sign in to leave a comment.