(n)self-adapting programa program that can change its performance in response to its environment