簡體   English   中英

如何在 Julia 中使用求解 cvxopt?

[英]how can I use a solve cvxopt in Julia?

嗨,我正在嘗試在 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

(提示:如果代碼是開源的,請查看他們的測試文件夾,看看他們在遇到問題時如何調用他們的庫。這將顯示他們的庫通常如何在腳本中調用。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM