微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在 Julia 中使用求解 cvxopt?

如何解决如何在 Julia 中使用求解 cvxopt?

嗨,我正在尝试在 Julia 中使用求解器 cvxopt。所以我做了一个这样的代码

@time begin  
using PyCall  
using Pkg ENV["PYTHON"]=""        
Pkg.add("CVXOPT")  
Pkg.test("CVXOPT")  
using Compat.SparseArrays 
using NPZ

npzread("C:/Users/skqkr/Desktop/Semesterarbeit/Chiwan_Q1.npz") 
   Q = 2*(Matrix10["Q"]) 
   p = (Matrix10["p"])  
   G = (Matrix10["G"]) 
   h = (Matrix10["h"]) ## Rechte Seite von der Ungleichung
    
    sol = cvxopt.solvers.qp(Q,p,G,h,kktsolver="ldl",options=["kktreg":1e-9])
    
    print(sol) print(sol["x"])
    
        
         end  
end

似乎一切正常,但在迭代之后出现了这样的错误

    Certificate of dual infeasibility found.

     Testing CVXOPT tests passed 

undefvarerror: cvxopt not defined

如何在 Julia 中使用 CVXOPT 求解器,我的代码会出现什么问题??

谢谢!

解决方法

CVXOPT 大写。确保在大写名称中也引用它(您的代码使用小写 cvxopt):

@time begin  
using PyCall  
using Pkg ENV["PYTHON"]=""        
Pkg.add("CVXOPT")  
Pkg.test("CVXOPT")  
using Compat.SparseArrays 
using NPZ

npzread("C:/Users/skqkr/Desktop/Semesterarbeit/Chiwan_Q1.npz") 
   Q = 2*(Matrix10["Q"]) 
   p = (Matrix10["p"])  
   G = (Matrix10["G"]) 
   h = (Matrix10["h"]) ## Rechte Seite von der Ungleichung
    
    sol = CVXOPT.solvers.qp(Q,p,G,h,kktsolver="ldl",options=["kktreg":1e-9])
    
    print(sol) print(sol["x"])
    
        
         end  
end

(提示:如果代码是开源的,请查看他们的测试文件夹,看看他们在遇到问题时如何调用他们的库。这将显示他们的库通常如何在脚本中调用。)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。