Not signed in (Sign In)

Vanilla 1.1.9 is a product of Lussumo. More Information: Documentation, Community Support.

    • CommentTimeNov 1st 2016
    After watching a few videos on Youtube about an evolution simulator, I decided to make a simple one on my own.

    The idea is pretty simple: five bats try to hit a ball as far as possible.
    The one at the top always has the best stats so far.
    The other four slightly change motor speed, restitution of the bat and width of the bat. If one of them manages to beat the current best, the numbers get updated.
    After all balls stopped by either hitting the floor or the roof, a new 'generation' can get started with new random stats.

    Every time I run this, there are improvements in the first 10 generations, but after that there are no more improvements. The best distance is normally between the 16 and the 17.
    There's also a small bug where the one at the top manages to beat the best, instead of performing just as well.
    I'm curious to see what you think.
      CommentAuthorBioManiac R2 (Moderator)
    • CommentTimeNov 1st 2016
    A very interesting idea, although I see a few flaws with your generations.

    One, a future generation should always try to move forward, never back, so to give them all random values is rather redundant, it makes it much harder to get good values. I have modified the simulation so that each row improves all qualities except one that it decreases. The bottom row tries to increase all qualities.

    Two, as you get farther into the simulation, the exact properties of the bat that hit within an acceptable range become more and more narrow to choose from before hitting the ceiling/ floor. I have modified the simulation so that the values given are a formula of the generation. I have tweaked this a few times, you can tweak it how you see fit to narrow the values faster / slower.

    As we all know, increasing the restitution of the bat is the key to making it go farther, but the simulation must find that out for itself.

    I have achieved a distance of over 31 in under 1000 "generations" with this method. I put generations in quotes because it is really only an increase in generation if it advances, and I did not check how many times it did. I will add this to the simulation later.

    Final Stats
    # of Simulations 1000
    Distance : 31.035
    Motor Speed : -187.508
    Restitution : 2.663
    Width bat : 0.751

      CommentAuthorBioManiac R2 (Moderator)
    • CommentTimeNov 1st 2016
    hmmm... i have been unable to get such great success anymore... must have been a fluke.

    although I know of other flaws, I am unsure about how to suggest alternatives.

    one very obvious problem is that there are various "branches" to success, one I've seen often is drastically increasing the width a lot and decreasing the restitution.
    Unfortunately this path has an obvious dead end at around ~17-18. Changing from this branch to one with an average width and high restitution is rather difficult and may even be impossible with the set "narrow" changes I have set.

    another is part of my "narrowing" which unfortunately, would need to be particular to what you are narrowing. Changing the speed by even 1 or 2 % can cause significantly different results from a change of the width or restitution by the same percentage...

    I may cap the width or remove it as a variable all together, instead using density of the shape as a variable, which obviously will not have results that easily cap and are more easily scaleable.

    I tried increasing the gravity to make it possible to achieve better accuracy, but I think honestly it would be better if touching the ceiling was not an instant loss.
    No gravity setting can make it go above 20, and I have tried high and low settings.-----------------
    3.14159265358979323846264338327950288... Nothing Here