GP Hopper, 2002-09-24

Created by Mattias Fagerlund ( mattias@hypeskeptic.com ).

The Hoppers are controlled by evolved programs that determine angle of the "head" and the power it's pushing the piston. In this example, I'm using my fourth (!) and so far best Genetic Programming engine for Delphi.

Download

Click here to download hopper.


Hopper in action. Hop hop.



Uh-oh! A hopper in dire straits.

The fitness of a hopper is determined by how far it gets before it falls over. Early hoppers try to hop as far as they can with one single hop, after a few generations, they usually learn to take one more hop. And then one more. Evolving hoppers can take a while, but several rather good hoppers are included.

This is a control program from Hopper;

(SetV1V2
    (1/x
        dy)
    (neg
        (max
            (if-then-else
                (div
                    (cos
                        (if-then-else
                            (1/x
                                FootDown)
                            speedx
                            (1/x
                                (cos
                                    dz))))
                    (cos
                        (mul
                            dz
                            (mul
                                speedx
                                (mul
                                    speedx
                                    (1/x
                                        (cos
                                            dz)))))))
                speedz
                dz)
            dz)))

Click here to go back to the evolved page.