goat is an optimization solver add-on component. It perfectly complements galapagos, David Rutten's evolutionary solver based on a randomized core. goat pursues a mathematical rigorous approach and relies on gradient-free optimization algorithms, delivering fast and deterministic results. At every run, goat will yield the same optimal result.
goat is a drop-in replacement for galapagos. It is based on David Rutten's galapagos GUI and interfaces NLopt, a collection of mathematical optimization libraries.
For getting started with optimization in parametric modelling environments in general and with goat in special, check out our presentation slides on Geometry and Optimization with several comprehensive examples.
Once you are familiar with the basics of optimization, head over to our comprehensive documentation on goat's different configuration options.
I like the idea that the total process is divided into two steps, the globle and the local optimization, it seems more reasonable and efficient!
But I do have some doubts, can we really be sure that the globle optimazation can get the right "peak" for local optimization after about 10 seconds random distribution of the population? especially when you consider that the different peaks may be not of extremely different height. seems to me there's still a great chance that the temperary optimal result might be on the wrong hill, isn't it?
Simon Flöry
Hi,
For some problems we can be sure, for some problems we can't. If you want to use well performing optimization techniques, you are always confronted with choosing a few configuration parameters. This choice needs to be made with respect to the problem at hand.
So to answer your question, if the "landscape" of the objective function is simple (as in the tutorial), 10 seconds will be enough. If you are optimizating a complex function, this might not be the case. I'd recommend to give it a go for 10 seconds, and if the result is not yet satisfying, try 20 seconds and so on.
btw, the algorithms for global optimization in goat are much more sophisticated than randomly evaluating the objective. For more information, have a look at the NLopt documentation (for example on the DIRECT method).
best, simon
Feb 21, 2013