2017-04-19 6 views
-1

enter image description here使用C#が

が、私はC#Microsoft.SolverFoundationを使用するようにquadratic programming問題(mean-variance portfolioを)解決するために練習accord.netに単純に次の最適化を解くが、

https://msdn.microsoft.com/en-us/library/ff759370(v=vs.93).aspx

で紹介します誰も私が簡単に処理することができる特定の例や他の無料のlibarayを与えることができますか?ここ

I左質問は、ベクトルX =(X_1、X_2、...、x_nに関する)以来としてX、Y、Zを作成する方法

  1. あるaccord.net

    // Declare symbol variables 
    double x = 0, y = 0, z = 0; 
    
    // Create the function to be optimized 
    var f = new QuadraticObjectiveFunction(() => x * x - 2 * x * y + 3 * y * y + z * z - 4 * x - 5 * y - z); 
    
    // Create some constraints for the solution 
    var constraints = new List<LinearConstraint>(); 
    constraints.Add(new LinearConstraint(f,() => 6 * x - 7 * y <= 8)); 
    constraints.Add(new LinearConstraint(f,() => 9 * x + 1 * y <= 11)); 
    constraints.Add(new LinearConstraint(f,() => 9 * x - y <= 11)); 
    constraints.Add(new LinearConstraint(f,() => -z - y == 12)); 
    
    // Create the Quadratic Programming solver 
    GoldfarbIdnani solver = new GoldfarbIdnani(f, constraints); 
    
    // Minimize the function 
    bool success = solver.Minimize(); 
    
    double value = solver.Value; 
    double[] solutions = solver.Solution; 
    

    使用します私は多くの変数を持っています(行列f = xMx 'の形式として目的関数を書いてください)?

  2. は、私が推奨されていませんaccord.net

答えて

0

Microsoft.SolverFoundationにvectorためにlinq queryを使用することができます。

C#で行う必要がある場合は、Accord.Netを使用することをお勧めします。

+0

このライブラリにいくつかの例を挙げることができますか、私は本当にこの問題を解決することを急いでいます。どうもありがとう。 –

+0

https://github.com/accord-net/framework/wiki/Sample-applications#quadratic-programming-qp-solver – jamesbascle

+0

非常に役に立ちます!いくつかの質問が残って、plsは更新を参照してください。 –