Мне нужно решить полуопределенную программу следующего вида, в которой мы оптимизируем положительные полуопределенные матрицы G.
maximize trace(GW)
subject to G in C
G >= 0
Дана матрица W
. Ограничение G>=0
обеспечивает положительную полуопределенность, и CVXPY имеет документацию по этому вопросу. Тем не менее, я не знаю, как применить G in C
, где C
- выпуклое множество.
Некоторые подробности о C
: выпуклый набор C
- это набор всех положительных полуопределенных матриц X
, таких что S(X) >= v
для некоторого значения v
и где S(A) = -trace(A*log(A))
. S()
является энтропией фон Неймана и, как известно, является вогнутой, и поэтому полученное таким образом множество C
является выпуклым множеством.
Как кодировать этот тип ограничения в CVXPY?