Нет, это невозможно с MATLAB API. Существует два MATLAB API: CPLEX для MATLAB Toolbox и класс Cplex. Соответствующие функции / поля в каждом будут иметь вид cplexmiqp и Cplex.Model.Q. Ни один из них не позволяет делать именно то, о чем вы просите.
Однако (я раньше не знал об этом), MATLAB API действительно принимает один разреженная матрица для Q-матрицы (см. также MATLAB API советы по программированию).
Например, эти два примера взаимозаменяемы:
cplex.Model.Q = [-33 6 0 0;
6 -22 11.5 0;
0 11.5 -11 0;
0 0 0 0];
или, используя разреженную матрицу:
cplex.Model.Q = sparse([1, 1, 2, 2, 2, 3, 3], [1, 2, 1, 2, 3, 2, 3], [-33, 6, 6, -22, 11.5, 11.5, -11], 4, 4)
Это более очевидно с другими API (например, C Callable Library, C ++, Python и т. Д.). Если вам интересно, примеры, поставляемые с CPLEX, демонстрируют, как это делается.
person
rkersh
schedule
08.06.2016