Novel, optimization aglorithm based on the biomimicry of Testudines (:turtle:).
The turtle swarm optimizer (TSO) is similar to the famous particle swarm optimizer (PSO) in its operation. In both optimization algorithms many small agents work toward a common goal of finding the local minimum of a function. The major advantages that TSO offers over the PSO algorthm can be summarized as the following:
- Turtle velocity is based on the smallest reportable 64 bit floating point number.
- This ensures that every nook and cranny of the objective function is inspected π.
- The social and personal motivation terms are not configurable.
- We don't know exactly what motivates turtles to do what they do, so its honest to leave these terms unweighted and equal components of the turtles velocity. Staying true to the π’ is very important.
- Although this new algorithm wasn't written for performance, this design decision greatly speeds up the velocity calculations by dropping slow calls to random number generators πππ.
- The TSO does not allow a user to bail out of optimization early. No. The user must wait until their presdescribed goal is obtained.
- This is done so that end-users get the feeling of what its like to rely on turtles to do the heavy lifting πͺ.
The work is too important and publishing would only cause delays. It must be shared with the open source community.
There are a few rules to collaborating on this repository.
- You cannot remove any of the advantages of the TSO algorithm.
- You cannot change the
TURTLE_VELOCITYconstant unless it is discussed with the original author first. - You cannot introduce a performance regression β.
- You cannot introduce any logging or sense of progress to maintain the most important advantage that TSO has over PSO π.
- You must be reasonable and polite in all of your interactions on this project π.
- Stay true to the π’