Сбой решателя MATLAB Gurobi [в cvx]

#matlab #gurobi #cvx

#matlab #gurobi #cvx

Вопрос:

Когда я пытался решить очень простую проблему с упаковкой файлов, решатель Gurobi просто не работал. Я пробую очень простую задачу оптимизации с ограничением неравенства 1 с помощью Gurobi, и это работает. Но он всегда возвращает NA для небольших сложных задач. Я очень расстроен. Очень признателен за помощь, если кто-нибудь может помочь

 %% By Linear programming
clear;clc;
weight = [4,4,5,7]';
cvx_begin
cvx_solver SDPT3
variables I(4,1) X(4,4)
minimize sum(I)
subject to
    X * weight <= 10 * I;
    sum(X) == [1,1,1,1];
    X >= 0
    X <= 1
    I >= 0
    I <= 1
cvx_end

X
I

%% By Integer programming
clear;clc;
weight = [4,4,5,7]';
cvx_begin
cvx_solver Gurobi
variables I(4,1) X(4,4)
minimize sum(I)
subject to
    X * weight <= 10 * I
    sum(X) == [1,1,1,1]
    X >= 0
    X <= 1
    I >= 0
    I <= 1
cvx_end

X
I
 

И это сообщение об ошибке

  
Calling Gurobi 9.00: 44 variables, 28 equality constraints
------------------------------------------------------------
------------------------------------------------------------
Status: Error
Optimal value (cvx_optval): NaN
 
Error using cvx_end (line 267)
model.quadcon must be a struct array with fields q, and rhs
 

Комментарии:

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

2. @mattmilten я не совсем понимаю. Итак, как использовать квадроциклы в этом случае? Кстати, я просто обнаружил, что мои друзья могут запускать точный код в его Matlab.

3. Ухх, это стресс для его решения. И я только что погуглил свой собственный вопрос, лол

Ответ №1:

Попробуйте использовать эти команды вместо решателя Gurobi

 cvx_solver Gurobi_3
 

или

 cvx_solver Gurobi_2
 

Кажется, использование Gurobi в качестве внешнего решателя cvx не является разумным выбором. Смотрите: http://ask.cvxr.com/t/cvx-with-gurobi-error-warning/7072/3 . Они сообщили об ошибке несколько месяцев назад.