擅长:python、mysql、java
<p>我解决了这个问题,首先添加二次项,设置它们的系数,然后在单独调用中添加线性项,见下文。在</p>
<pre><code>problem.objective.set_sense(problem.objective.sense.minimize)
varLower = [0]*len(target.v)
varNames = ["s%s"%x for x in range( len(target.v) )]
problem.variables.add(names=varNames, lb=varLower)
problem.objective.set_quadratic(
[[[x],[1]] for x in range( len(target.v) )]
)
varCoefs = [-1]
varLower = [0]
varNames = ['mu']
varCoefs += [1]*(numB + numQ)
varLower += [0]*(numB + numQ)
varNames += ["b%s"%x for x in range( numB )]
varNames += ["q%s"%x for x in range( numQ )]
varCoefs += [10]*len(deltas)
varLower += [1]*len(deltas)
varNames += ["delta%s"%x for x in range( len(deltas) )]
problem.variables.add(names=varNames, lb=varLower, obj=varCoefs)
</code></pre>
<p>然而,我仍然想知道为什么它是这样工作的,而不是相反的。在</p>