Я пытаюсь свести к минимуму очень большую двоичную проблему квадратичного программирования с линейными ограничениями, используя CPLEX MATLAB API. Однако квадратичная функция f = x'Qx имеет очень плотную матрицу Q. Я могу переписать Q с очень разреженными матрицами U и A: Q = U A.Может ли Cplex взять две разреженные матрицы в качестве ввода для Q
Следовательно, существует ли способ передать эти матрицы в CPLEX вместо полной матрицы Q (которая слишком велика для хранения)?
Вы используете C Callable Library и [CPXXcopyquad] (http://www.ibm.com/support/knowledgecenter/SSSA5P_12.6.3/ilog.odms.cplex.help/refcallablelibrary/qpapi/copyquad.html)? Если это так, эта функция уже принимает разреженное представление Q-матрицы (через qmatbeg, qmatcnt, qmatind, qmatval) ... Вы уже пробовали это? Какую ошибку вы получаете? – rkersh
Я использую интерфейс matlab. – Yuki