简体   繁体   English

使用SCIP解决混合整数二次程序

[英]Solving a Mixed Integer Quadratic Program using SCIP

I have a mixed integer quadratic program (MIQP) which I would like to solve using SCIP. 我有一个混合整数二次方程序(MIQP),我想使用SCIP解决。 The program is in the form such that on fixing the integer variables, the problem turns out to be a linear program. 该程序的形式使得在固定整数变量时,问题就变成了线性程序。 And on fixing the the continuous variables it becomes a Integer Program. 固定连续变量后,它就变成一个整数程序。 A simple example : 一个简单的例子:

max. 最大。 \\Sigma_{i} n_i * f_i(x_i) \\ Sigma_ {i} n_i * f_i(x_i)

such that. 这样。
n_1 * x_1 + n2 * x_2 < t n_1 * x_1 + n2 * x_2 <t
n_3 * x_1 + n2 * x_2 < m n_3 * x_1 + n2 * x_2 <m
.
.
many random quadratic constraints in n_i's and x_i's n_i和x_i中的许多随机二次约束
so on 依此类推

Here f_i is a concave piecewise linear function. f_i是凹的分段线性函数。
x_i's are continuous variables ( they take real values ) x_i是连续变量(它们取实值)
n_i's are integer variables n_i是整数变量

I am able to solve the problem using SCIP. 我可以使用SCIP解决问题。 But on problems with a large number of variables SCIP takes a lot of time to find the solution. 但是,对于具有大量变量的问题,SCIP需要花费大量时间来找到解决方案。 I have particularly noticed that it does not find many primal solutions. 我特别注意到,它找不到很多原始解决方案。 Thus the rate at which the upper bound reduces is very slow. 因此,上限降低的速度非常慢。 However, I could get better results by doing set heuristics emphasis aggressive. 但是,我可以通过积极地进行集合启发式强调来获得更好的结果。
It would be great if anyone can guide me on the following questions : 如果有人可以指导我解决以下问题,那就太好了:
1) Is there any particular algorithm/ Software package which solves problems that fit perfectly into the model as described above ? 1)是否有特定的算法/软件包可以解决如上所述完全适合模型的问题?
2) Suggestions on how to improve the rate at which primal solutions are found. 2)关于如何提高原始解的发现率的建议。
3) What type of branching can I use to get better results ? 3)我可以使用哪种类型的分支以获得更好的结果?
4) Any guidance on improving performance would be really helpful. 4)任何有关提高绩效的指导都是非常有帮助的。

I am okay with relaxing the integer constraints as well. 我也可以放宽整数约束。

Thanks 谢谢

1) The algorithm in SCIP should fit your problem. 1)SCIP中的算法应该适合您的问题。 There are other software packages that implement similar algorithms, eg, BARON and ANTIGONE. 还有其他实现类似算法的软件包,例如BARON和ANTIGONE。

2) Have a look which primal heuristics were successful in your run and change their parameters to run them more frequently. 2)查看哪些原始启发式方法在您的运行中成功,并更改其参数以更频繁地运行它们。

3) No idea. 3)不知道。 Default should be ok. 默认应该可以。

4) Make sure that your variables have good bounds. 4)确保变量具有良好的界限。 Tighter bounds allow for a tighter relaxation to be constructed. 严格的界限允许构建更紧密的松弛。

If you can post an instance of your problem somewhere, or a log of a SCIP run, including the detailed statistics at the end, maybe someone can give more hints on what to improve. 如果您可以将某个问题的实例发布到某个地方,或者将SCIP运行的日志(包括末尾的详细统计信息)发布到某个地方,则也许有人可以给出更多改进建议。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM