Gurobi решатель в Matlab - PullRequest
       59

Gurobi решатель в Matlab

0 голосов
/ 12 марта 2011

Я хочу использовать Gurobi Solver в Matlab, но я не знаю, как рассчитать необходимые матрицы (qrow и qcol).

Для справки я копирую пример, приведенный в документации.

0.5 x^2 - xy + y^2 - 2x - 6y

подлежит

x + y <= 2
-x + 2y <= 2, 2x + y <= 3, x >= 0, y >= 0
c = [-2 -6]; % objective linear term

objtype = 1; % minimization

A = sparse([1 1; -1 2; 2 1]); % constraint coefficients
b = [2; 2; 3]; % constraint right-hand side
lb = []; % [ ] means 0 lower bound
ub = []; % [ ] means inf upper bound
contypes = '$<<
vtypes = [ ]; % [ ] means all variables are continuous
QP.qrow = int32([0 0 1]); % indices of x, x, y as in (0.5 x^2 - xy + y^2); use int64 if sizeof(int) is 8 for you system

QP.qcol = int32([0 1 1]); % indices of x, y, y as in (0.5 x^2 - xy + y^2); use int64 if sizeof(int) is 8 for you system

QP.qval = [0.5 -1 1]; % coefficients of (0.5 x^2 - xy + y^2)

Означает ли это, что если у меня есть 4 переменные решения, то я должен использовать 0,1,2,3 в качестве индексов для моих переменных решения x_1, x_2, x_3, x_4.?

Спасибо

Примечание: я пытался использовать mathurl.com, но я не понимаю, как писать в правильном формате, и показать, что он будет отображаться в виде латексного текста. Извините за обозначения.

1 Ответ

0 голосов
/ 12 марта 2011

Кажется, это ваша ссылка . Однако ваш вопрос, похоже, относится к другому примеру. Возможно, вам придется показать это.

В любом случае, согласно документации Gurobi:
Квадратичные члены в целевой функции должны быть определены с помощью opts.QP.qrow, opts.QP.qcol и opts.QP.qval, которые соответствуют входным аргументам qrow, qcol и qval функции GRBaddqpterms. Все они являются одномерными массивами. Первые два аргумента, qrow и qcol, задают индексы строк и столбцов (начиная с 0) для терминов 2-го порядка, таких как и. Третий аргумент, qval, дает их коэффициенты.

Таким образом, ответ - да, используйте показатели [0 1 2 3] для ваших переменных решения x0, x1, x2, x3.

...