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_VELOCITY
constant 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 🐢