Your software can solve transport matrices of more than 9000 cells of variables?

3 views (last 30 days)
I am solving a problem that involves 59 factories and needs to be delivered to 146 different locations. When using solver in excel to minimize transportation costs, it tells me that the number of variables is too many. Through consultations they indicate to me that their software can solve these types of problems. Can you confirm if I can do it with your software? Thank you
John D'Errico
John D'Errico on 5 Aug 2022
It is not clear what your problem is. MATLAB is not a tool to explicitly solve specific problems, any more than is Excel. You will need to write the calls, and the code to call whatever solver is appropriate. You have not said enough for us to know the exact problem you would formulate.
Having said that, can MATLAB solve problems of similar size? Yes, with a caveat. We still don't know any specifics of what you need to solve.

Sign in to comment.

Answers (1)

Walter Roberson
Walter Roberson on 5 Aug 2022
Edited: Walter Roberson on 5 Aug 2022
Generally speaking:
There are some algorithms that require storage space that is linear in the number of variables being optimized.
There are other algorithms, such as algorithms that involve gradients or covariance matrices, that require storage space proportional to the square of the number of variables being optimized.
There are some algorithms, such as ones that deal with cross-correlation, that can involve storage space proportional to the 4th power of the number of variables being optimized.
The largest variable supported by MATLAB is:
junk = zeros(1,2^48-1, 'uint8');
Error using zeros
Requested 1x281474976710655 (262144.0GB) array exceeds maximum array size preference (30.9GB). This might cause MATLAB to become unresponsive.
If, hypothetically, you were operating on a system that had 2^48 bytes of memory, then MATLAB could use all of it (except one byte). It is, however, rather unlikely that you are using a system with that much memory. (HP has a server that can get pretty close to this.)
2^48 bytes is the limit of the Intel x64 architecture for all publicly known implementations -- the architecture is only defined to have 48 address lines. I wouldn't know if there is a secret government implementation with more address lines.
The realistic limit is the amount of physical memory on your system.
The amount of memory needed by your algorithm is something we do not know at the moment, as we do not know which algorithm you are using.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!