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

12 views (last 30 days)
Felix on 7 Feb 2013
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...

ChristianW on 7 Feb 2013
I dont think its possible in that generalized way. The optimization function has 100 dimentions and there are only 2 states in every dimention.
Are you able to find an/the optima manually? If yes, you can maybe get information out of your matrix or your function-f. Like a f-output, that says: "i need a row with high values" or something.
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 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?