【问题标题】:how can I use a solve cvxopt in Julia?如何在 Julia 中使用求解 cvxopt?
【发布时间】:2021-07-29 20:49:48
【问题描述】:

您好,我正在尝试在 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 求解器,我的代码会出现什么问题??

谢谢!

【问题讨论】:

    标签: julia cvxopt quadratic-programming


    【解决方案1】:

    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
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-12-12
      • 1970-01-01
      • 2019-04-19
      • 1970-01-01
      • 2018-02-13
      • 1970-01-01
      • 2017-12-19
      • 2018-01-14
      相关资源
      最近更新 更多