流行算法類工具盤點(一):混合整數(shù)線性規(guī)劃(MILP)解算器lpsolve

2017-01-17  by:CAE仿真在線  來源:互聯(lián)網

名稱:lpsolve
解決問題:純線性問題,混合的整型和二進制問題,半蟬聯(lián)性與特別命令集(SOS) 板型
應用平臺:由ANSI C編著,可應用于Linux和WINDOWS等不一樣平臺。
使役案例:解決下圖所示的最大流問題(這幅圖已經標注出求解結果了):
lpsolve IDE背景中只需輸入如次的文本,是不是十分簡單直觀:
而后按一個運行按鍵(紅框標注),出現(xiàn)以下的求解結果,紅框標注的是結果,藍框標注的是求解信息,涵蓋浪費時間等等:
關于lpsolve IDE背景的詳細使役申說可以參考其使役手冊(lpsolve下載主頁上可自由下載),看見這搭或許有人會問,上頭的例子很簡單,假如對于復雜的網絡拓撲,自個兒手動輸入這些表現(xiàn)式顯然是不事實的, 那該怎么辦,好在lpsolve可以集成在別的開發(fā)背景中,它提供了一全副API,可供調用,具體也請參考使役手冊,上頭提到的博客里對于matlab調用lpsolve有簡單的申說,這搭補給說一下,mxlpsolve('write_lp',lp,'a.lp')這個語句可以生成IDE背景里可直接執(zhí)行的腳本文件(C,JAVA等接口也有類似語句),這么復雜的問題可以用高級編程語言建模,而后生成LP腳本文件單獨在IDE中運行,是不是很便捷。
以上這個Max Flow的例子直接用matlab自帶的linprog工具箱求解,開具代碼是:
f = [ -1 -1 -1 0 0 0 0 0 0 0 0 0 ]; A = ; b = ; Aeq = [1 0 0 -1 -1 0 0 0 0 0 0 0 0 1 0 0 0 -1 -1 -1 0 0 0 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 1 0 1 0 0 0 -1 0 0 0 0 0 0 1 0 1 0 1 0 -1 0 0 0 0 0 0 0 0 1 0 0 0 -1 ]; beq = zeros(6,1); lb = zeros(12,1); ub = [3;2;2;5;1;1;3;1;1;4;2;4]; x = linprog(f,A,b,Aeq,beq,lb,ub);求解結果如次,可以看見雖然最大流的值是不錯的,但其他邊上的流卻與lpsolve求解結果有巨大差異:

原文地址(轉載請注明):體育比分直播 www.a9988.net

開放分享:優(yōu)質有限元技術文章,助你自學成才

相關標簽搜索:流行算法類工具盤點(一):混合整數(shù)線性規(guī)劃(MILP)解算器lpsolve MatLab培訓 MatLab培訓課程 MatLab在線視頻教程 MatLab技術學習教程 MatLab軟件教程 MatLab資料下載 MatLab代做 MatLab基礎知識 Fluent、CFX流體分析 HFSS電磁分析 Ansys培訓 Abaqus培訓 

編輯
在線報名:
  • 客服在線請直接聯(lián)系我們的客服,您也可以通過下面的方式進行在線報名,我們會及時給您回復電話,謝謝!
驗證碼

全國服務熱線

1358-032-9919

廣州公司:
廣州市環(huán)市中路306號金鷹大廈3800
電話:13580329919
          135-8032-9919
培訓QQ咨詢:點擊咨詢 點擊咨詢
項目QQ咨詢:點擊咨詢
email:kf@1cae.com