Lingo和Matlab在解決最優化問題的時候的優缺點?

時間 2021-06-01 05:40:20

1樓:蝦兵蟹將

瀉藥最近參加我們學校的建模校賽,賽後有一點經驗比較符合你這個問題,就是在處理大規模優化問題的時候如果不改進演算法,不應用二分法,智慧型演算法之類的優化的話,推薦使用matlab,而且不能使用現成的函式,必須自己編函式檔案。因為在處理優化問題的時候,lingo一般使用的方法通俗講挨個找,非常浪費時間,而matlab現成函式由於自身會考慮非常多的情況,也非常浪費時間。

在這次校賽我們要處理32000多個資料,拿lingo編好,沒用優化演算法,算了15個鐘頭沒出結果(說實話,由於我是建模,不太了解優化演算法,而且程式設計的也不給力,但不用擔心,最後我們改進方法最後還是完成了賽題),賽後問另乙個隊咋做的,他們就是拿matlab自己編的函式檔案,一起處理32000個資料,30min就出結果了。

之後就有了這條經驗。。。。。

要是小規模優化問題,推薦lingo。

2樓:曲伽西

新版的MATLAB也提供了更具可讀性的問題描述方法:c=[2

15134;

104145

;9141613;

78119

];prob

=optimproblem

('ObjectiveSense'

,'min');x

=optimvar

('x',4

,4,'Type'

,'integer'

,'LowerBound',0

,'UpperBound',1

);prob

.Objective

=sum

(sum(c

.*x));prob

.Constraints

.cond1

=sum(x

,1)==

1;prob

.Constraints

.cond2

=sum(x

,2)==

1;% prob.showproblem

sol=

prob

.solve

;sol.x

輸出結果:LP:

Optimal

objective

value

is28.000000

.Optimal

solution

found

.Intlinprog

stopped

atthe

root

node

because

theobjective

value

iswithin

agap

tolerance

ofthe

optimal

value

,options

.AbsoluteGapTolerance=0(the

default

value

).The

intcon

variables

areinteger

within

tolerance

,options

.IntegerTolerance

=1e-05

(the

default

value

).ans=0

0010

1001

0000

010如果是老版本的話可以用 YALMIP, 這個東西就是專門用來在MATLAB中定義優化問題,並且提供不同求解器的介面方便呼叫。也就是說只需要定義一次問題就可以呼叫不同的求解器(當然也包括 MATLAB本身的求解器),這是他整數規劃的例子:

Integer programming

支援的不同規劃也挺多的:

YALMIP

支援的求解器更是不少啦~

Solvers

而且YALMIP本身是完全免費的

Mathematica 和 MATLAB 都有什麼不同?做數學分析哪個比較專業?

HyperGroups 即然是數學分析相關 那肯定就是Mathematica了。因為Mathematica還擅長排版啊,無論是手工代替草稿紙進行 數學分析 還是機器推符號進行 數學分析 還是數形結合進行數學的分析 都很擅長啊 完了還能把文件轉換成Latex進行網上交流知乎上傳MarkDown功能又瞎...

matlab在AMD上相容嗎?

迅工 相容啊,就是速度問題哈 我來說說說筆記本,僅限筆記本聊兩句,個人感受,變數控制能力有限,供參考 例如用matlab官方程式,field2 檔案測試下拯救者R7000 r7 4800H版本 我幾年前的遊戲本,巨集碁的 i5 4210H 2核四執行緒 DDR3記憶體,sata協議的固態硬碟,測試m...

和 Python 相比,Matlab 能否成為深入學習資料探勘的工具

追日少年明仔 資料探勘包括資料獲取以及資料分析。如果能用matlab寫個爬蟲,我覺得還是可以的。但是matlab收費,python普遍不收費吧。 大德魯伊 這學期做自然語言處理,用python,快捷方便,matlab我一直不會用,不過畢竟數學計算能力比較好。不過還是推薦py做,萬能的語言,而且比較實...