I am working on a project involving some pattern recognition. For this I need to find the maximum value in a huge multidimensional dataset. For example I have a discrete 5-dimensional space containing 10^10 data points. Of course I can just do an exhaustive search but time is of the essence so I am searching for an time (and memory) efficient algorithm that can help me with this. Probably something like gradient descent. FYI, the project is done is Java.
Without knowing more about your data, it is not possible to do better than the exhaustive search. This would be memory efficient, but linear in time.
If your data set does not contain local minima, you could simply follow the steepest descent. This still has a worst case linear time however.
A possibly better solution would be the downhill-simplex algorithm