Another Updated N-Dimensional Optimization Algorithm

This is the final version, and as expressed, the optimization algorithm balances a set of weights on a beam, with corresponding symmetrical values intended to be equal. So far, it has found an exact solution every time I’ve run it. This same algorithm can also solve for interpolations, and any other goal-based problem. For interpolations, I’ve run it up to 12 variables, and the performance is excellent and fast.


Updated N-Dimensional Optimization

Here’s the finished product, it can optimize N-dimensions, and you can subdivide them however you like. In the attached example, it’s broken into 3 x variables and 3 y variables, producing a curve in 3 space, but this could also be treated as a single six variable function, and the algorithm is indifferent. The original curve is on the left, the interpolated curve is on the right, and this took just over two minutes to run. The results are awesome. Note you could also use this to find a generalized goal state, as I’ve simply set this example up to find coefficients of a polynomial, but again, the method is generalized. As a consequence, it is a generalized N-Dimensional state space algorithm, that runs very quickly, and has a deterministic runtime, though you are of course not guaranteed any particular results.

N-Dimensional Optimization

I wrote an algorithm that models interference between multiple iterations of the same path. The basic idea is simple: you have a random path, and you generate it some number of times. However, once you traverse a particular location in the path, that point becomes more likely. As a consequence, over time, the probabilities become non-uniform (obviously they start out uniform). When I articulated this, I noted that this is plainly an optimization algorithm, since you can update the probabilities of a given point (treated as a domain value) with the distance to some goal state (in the range). This can done in N-dimensions, by simply having N paths all doing exactly this. Moreover, you can vectorize many of the steps for this N-dimensional case easily in Octave. Here’s the two dimensional code (on dropbox).