フィルターのクリア

How to find the minimum sum of multiple different routes

1 回表示 (過去 30 日間)
Valkmi
Valkmi 2016 年 9 月 21 日
コメント済み: Valkmi 2016 年 9 月 21 日
Hi everyone, this is my first question and I appreciate for all the help I can get. I'm having a problem solving the following problem:
For example: x1 = 2
x2 = 3
x3 = 1.5
y1 = 5
y2 = 4
y3 = 1
z1 = 2
z2 = 4
z3 = 2
I need to find the minimum sum of x,y and z while the indices 1,2,3 are only used once, for example the solution could be x1 + y2 + z3 or z1 + x2 + y3. In this case the solution would be z1 + x2 + y3. This is simple version of the problem, in reality I have much more data, which is why I need to create this algorithm.
  2 件のコメント
Adam
Adam 2016 年 9 月 21 日
編集済み: Adam 2016 年 9 月 21 日
It would be trivial to do in a nested for loop using circshift and sum, but I'm sure someone can come up with a better solution that that.
As an aside though don't name your variables like that.
Either put them all in one 3 x 3 array of have 3 arrays x, y, z each of length 3, depending which works better for your solution.
John D'Errico
John D'Errico 2016 年 9 月 21 日
編集済み: John D'Errico 2016 年 9 月 21 日
Yes. Just put your data in an array. You will gain greatly learning to use arrays.
Just as important, tell us what the real problem is. Is this a problem where you have n variables, each of which can appear in the sum only once? In that case, the problem has complexity of factorial(n), so expect it to be quite difficult to solve if n is at all large.

サインインしてコメントする。

採用された回答

Steven Lord
Steven Lord 2016 年 9 月 21 日
This sounds like the assignment problem. The matrix formulation of the Hungarian algorithm linked to by that page shouldn't be too difficult to implement in MATLAB.
  1 件のコメント
Valkmi
Valkmi 2016 年 9 月 21 日
That was exactly what is was looking for, thank you! In the bottom of the Hungarian algorithm wikipedia page is a link to MATLAB implementation of this algorithm.

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeLoops and Conditional Statements についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by