2015-09-30 8 views
0

У нас есть проблема с переменными 100K в целевой функции и 1500 условиях. Поддерживает ли CPLEX такие номера? Если да, то каковы пределы и показатели производительности CPLEX?Пределы CPLEX

Привет,

Йаш

ответ

2

ДА.

Цитирование ответа от разработчиков CPLEX в this thread, датированный в 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% пробела за час вычислений. Размер проблемы не всегда является хорошим предиктором производительности решателя.