У меня проблема с использованием YALMIP; Я подозреваю, что делаю что-то глупое, и я был бы очень признателен, если бы кто-то сказал, что это такое.YALMIP возвращает, что программа является недопустимой, когда она не является
Я пытаюсь решить некоторые SDP. Когда я не определяю цель, YALMIP возвращает решение (подразумевая, что проблема возможна). Однако, когда я прикрепляю к нему цель, YALMIP возвращает, что проблема недопустима, что немного меня озадачило.
Вот код для простейшего SDP, который я мог бы приготовить, в котором происходит это. Объявление переменных и установления ограничений выглядит следующим образом:
y = sdpvar(6,1);
M = sdpvar(3,3);
C = [0,0,0,0,0,0; 0,0,0,0,0,0; -2,0,1.8,0,2,1; 0,0,0,0,0,0; 1,0,-1,0,-1.2,0;
0,0,0,0,0,0;];
F = [C*y==0, y(6) == 1, M>=0];
F = [F,M(1,1) == y(1), M(2,1) == y(2), M(3,1) == y(3),...
M(2,2) == y(4), M(3,2) == y(5), M(3,3) == y(6)];
Теперь, если я просто попросить YALMIP найти допустимое решение с
solvesdp(F)
возвращает
info: 'Successfully solved (LMILAB)'
problem: 0
и некоторые выполнимо M и y (я проверял, что они действительно есть). Тем не менее, если я добавляю цель «минимизировать у (3)» (или вообще любая линейная комбинация элементов матрицы у) с
solvesdp(F,y(3))
она возвращает, что задача неразрешима:
info: 'Infeasible problem (LMILAB)'
problem: 1
и y и M полны токенов «NaN».
Большое спасибо заранее.
Привет Johan, спасибо за ответ (и большое спасибо за сделать YALMIP доступный онлайн в первую очередь!). – jkn