我们在目标函数和1500条件中涉及100K变量的问题。 CPLEX是否支持这样的数字? 如果是这样,CPLEX的限制和性能基准是什么?
此致
佳日
答案 0 :(得分:2)
是强>
在this thread中引用CPLEX开发人员的回复,日期为2010年:
CPLEX can handle 30 million variables.
The more interesting question will be:
does your machine have enough memory for that.
CPLEX needs to store lower, upper bounds and objective function coefficients
as double precision values for each variable.
This results in a storage requirement of at least 30000000 * (8 + 8 + 8) bytes
which are roughly 680 MB.
And then you have variable names, constraints etc.
然后
This is a little subtle to answer as this number may depend on the
features of CPLEX you use (implicitly). However, CPLEX definitely supports up to
262,500,000 integral variables (that is the 2,100,000,000
claimed by Roland divided by sizeof(double)) with all features --
provided that there is enough memory for that.
The space required for simply creating that many variables would be roughly 6 GB
(one double precision number for lower bounds, upper bound and
objective function coefficient).
效果基准
以下是official page of Hans Mittelman,其中包含LP解算器性能的基准,这里是mixed-integer linear programming benchmarks(问题描述为here)。
您会注意到这些集合中存在一些实际上比您的问题更大的问题。
但是,在MIP(整数变量的问题)中,您的里程可能会因性能而异。只有200个整数变量存在问题,其中CPLEX在一小时的计算中不能达到低于10%的差距。问题的大小并不总是解算器性能的良好预测器。