我在C#中有一個應用程序,我需要做一些優化計算,像Excel Solver插件一樣,一個選項當然是寫我自己的求解器實現,但我有點時間不夠,所以我調查已經存在的可以幫助我的圖書館。如何在C#中實現Excel求解器功能?
我一直在嘗試Microsoft Solver Foundation,它看起來非常整齊,很酷,問題在於它似乎不適用於我需要做的那種計算。
在這個問題的最後,我添加了關於我需要執行和優化的計算的信息。
所以基本上我的問題是,如果你們中的任何一個知道我可以用於這個目的的任何其他庫,或者任何可以幫助我做自己的求解器的教程,或者任何讓我帶頭解決這個問題的想法。
謝謝。
附加信息:
這是我需要計算的數據:
我有7個變量,讓我們稱他們爲VAR1,VAR2,...,var7
的約束這些變量是:
- 所有這些需要是0 <的Varn = < = 0.5(其中,n是數Ò F中的變量)
- 所有變量的總和應等於1
的目標是最大化目標公式,在Excel中看起來像這樣:
(MMULT(TRANSPOSE(L26:L32),M14:M20))/(SQRT(MMULT(MMULT(TRANSPOSE(L26:L32),M4:S10),L26:L32)))
範圍那你在這個公式中看到,L26:L32實際上是具有上面變量var1,var2,...,varn的範圍。
M14:M20和M4:S10是我從不同來源獲得的數據的範圍,有更多可能的十進制值。我之前說過,我使用Microsoft Solver Foundation,我用它來模擬幾乎所有東西,我創建了處理目標公式操作的函數,但是當我試圖解決模型時總是失敗,我認爲這是因爲操作的複雜性。
在任何情況下,我只是想顯示這些數據,以便您可以瞭解我需要實現的計算類型。