2016-03-15 65 views
0

如何使用scip python界面添加二次约束条件? 在其中一个例子中,我看到类似于model.addCons(x*x+y*y<=6) 但是,由于我有很多变量(x1..xn和我的约束形式为x'Qx<=0.2,其中x是n * 1且Q是n * n),这种方法是不可能的。我怎样才能把二次约束放在coeffs的python字典中,就像我做线性约束一样? (coeffs={x**2:3.0,y**2:1.0,z**2:5.0}例如,如果我想3x^2+y^2+5z^2<=10如何在scipsuite python界面中使用coeff添加二次约束条件

+0

'{x:3,y:1,z:5}'与10有什么关系? –

+0

这10个并不重要,只是把这里作为一个例子,其后10个将会通过设置lhs进入约束。 – snyder

+0

,但是如何从3,1和5计算出来? 3 + 1 + 5 = 9所以我试图找出10来自哪里。 –

回答

0

目前不支持此功能。您需要遍历二次约束,并使用表达式方法逐个添加它们。

+0

谢谢你的回答。但是由于我的约束中有大量的二次项(x'Qx,其中Q的比例是5000 * 5000)。我可以有效地循环使用大量的术语吗? – snyder

+0

我不明白你为什么不能。这在很大程度上取决于你的系数如何存储。然而,在创建二次约束时,我强烈建议使用quicksum()方法,而不是明确指出线性或二次表达式。 – mattmilten

+0

如何使用quicksum()方法,是否有关于它的任何文档,谢谢 – snyder