2015-04-22 20 views
1

我有一個線性規劃,有N^4階變量和N^4階約束。如果我想在AMPL中解決這個問題,我可以逐個定義約束,而不必擔心精確的係數矩陣。沒有內存問題出現。但是,在Matlab中使用標準LP解算器時,我需要明確定義矩陣。在Matlab中的大型線性程序

當我有四個下標的變量時,這將導致維數階N^4×N^4的大規模稀疏矩陣。這個矩陣甚至不適合內存中的非平凡問題大小。

除了各種列生成/切割平面技術之外,有沒有一種方法可以解決使用Matlab的這個問題?由於AMPL設法解決它,我想他們要麼自動進行某種分解,要麼他們以某種方式解決LP問題,而沒有明確地處理這個稀疏怪物矩陣。

+1

你看過MATLAB的['稀疏'](http://mathworks.com/help/matlab/ref/sparse.html)矩陣嗎? –

+0

哦,這太棒了。謝謝! –

+0

@ m.s。考慮讓這個答案,我會upvote它 – krisdestruction

回答

0

轉換我的評論到一個答案:

MATLAB支持使用sparse命令,它允許你建立你的約束矩陣不超過內存限制稀疏矩陣。

1

除了由m.s.提到的sparse。你也可以使用MATLAB的AMPL API。如果你已經有了一個AMPL模型並且想要使用MATLAB來處理它,那麼它特別有用。