Evolutionary hill-climbing, virtual constraints, and recurrent dynamic CSPs