軟件名稱:lpsolvehtml
解決問題:純線性問題,混合的整型和二進制問題,半連續性與特殊命令集(SOS) 模型編程
應用平臺:由ANSI C編寫,可應用於Linux和WINDOWS等不一樣平臺。網絡
解決下圖所示的最大流問題(這幅圖已經標註出求解結果了):編程語言
lpsolve IDE環境中只需輸入以下的文本,是否是很是簡單直觀:工具
而後按一個運行按鈕(紅框標註),出現如下的求解結果,紅框標註的是結果,藍框標註的是求解信息,包括耗費時間等等:ui
關於lpsolve IDE環境的詳細使用說明能夠參考其使用手冊(lpsolve下載主頁上可自由下載),看到這裏也許有人會問,上面的例子很簡單,若是對於複雜的網絡拓撲,本身手動輸入這些表達式顯然是不現實的, 那該怎麼辦,好在lpsolve能夠集成在別的開發環境中,它提供了一整套API,可供調用,具體也請參考使用手冊,上面提到的博客裏對於matlab調用lpsolve有簡單的說明,這裏補充說一下,mxlpsolve('write_lp',lp,'a.lp')這個語句能夠生成IDE環境裏可直接執行的腳本文件(C,JAVA等接口也有相似語句),這樣複雜的問題能夠用高級編程語言建模,而後生成LP腳本文件單獨在IDE中運行,是否是很方便。spa
以上這個Max Flow的例子直接用matlab自帶的linprog工具箱求解,寫出代碼是:.net
1unix 2code 3 4 5 6 7 8 9 10 11 12 13 |
|
求解結果以下,能夠看到雖然最大流的值是正確的,但其它邊上的流卻與lpsolve求解結果有很大差異:
詳細使用請參閱peonyding的ChinaUnix博客>>