5

我正在尝试解决一个简单的优化问题,我们想要一个复杂的值 Hermitan 矩阵,因为它是变量(主题是量子力学)

using Convex  #load the optimization solvers
using SCS

# define pauli-y+ projector
# by construction a positive operator valued hermitian matrix
y_plus = [1,im]/sqrt(2)
My0 = y_plus*y_plus'

# define the variable; a 2x2 density matrix
rho = Variable(2, 2)
problem.constraints += [rho == rho']     # hermitian
problem.constraints += [trace(rho) == 1] # unit trace
problem.constraints += [rho in :SDP]     # positive definite


# define the objective
problem = maximize(trace(rho*My0))

# solve
solve!(problem,SCSSolver(verbose=false))

problem.optval

问题是,Julia/JuMP/Convex.jl 在涉及到

maximize(trace(rho*My0))

由于 原则上 的迹rho*My0线是复杂的,但是我们应该确信它rho*My0是真实的,因为 和 的rho约束My0

如何处理这些问题?可能有一个简单的解决方案。在最坏的情况下,我们可能不得不拆分实部和虚部。

4

0 回答 0