A Comparison of Self-Adaptation Methods for Finite State Machines in Dynamic Environments