Learning Biped Locomotion from First Principles on a Simulated Humanoid Robot Using Linear Genetic Programming