Harnessing evolutionary computation for the design and generation of adaptive embedded controllers within the context of uncertainty