I have a very abstract model where a set of coefficients controls animal behavior. This model is so abstract that the actual values of a global extrema are not particularly interesting. However, the number of local extrema is extremely interesting (If anyone cares why just ask and I'll explain). I figured the biggest drawback of gradient ascent/ descent, that it can get stuck at local extrema, is actually an advantage for me.
My plan was to first run the gradient ascent algorithm with all the coefficients set to 0 (i.e. G(0) ) Then I do G(1). All the coefficients have a range of [0, 1]. If both runs result in the same point, then I have conclude that only one local maxima exists. If they result in different points, then I run G(mean of those points - small value) and (mean of those points + small value). Repeat until all local maxima have been found.
I know that this plan will give me all the local maxima in 1 dimension (pretty sure we proved this in my Calc II course). What I am unsure about is in more dimensions than that.