optimization/permutation problem: select those rows in a matrix whose mean produces the maximal value of a certain function

1 view (last 30 days)
Lets say I have a matrix nxm and a certain function y=f(1:m) that uses a row (or the mean of several rows) of my matrix as input. Now I just want to find the right combination of the n rows that produce the highest y value. The difficulty is that for a high n (will be around 100) there are too many permutations possible (the solution can be a single row, or the mean of two, three, or all rows...).
How could I use the matlab optimization toolbox for my problem? Something like the function createOptimProblem, but instead of fitting parameters of a function to a curve, to use indices for the matrix rows as parameter...
  3 Comments
Felix
Felix on 8 Feb 2013
I don't quite understand why it shouldn't be possible. If I had a fast enough computer I could just brute force calculate the function value for all combinations and there has to be an optimum. I can of course first calculate the function value for each row individually and set a certain threshold to reduce the dimensions (since its unlikely that a row that by itself has a very low function value, will contribute in a positive way).
ChristianW
ChristianW on 9 Feb 2013
Repeating myself. Its not possible in general. It might be possible in your case, depending on matrix M and function f. Do you want to show them?

Sign in to comment.

Answers (0)

Products

Community Treasure Hunt

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

Start Hunting!