Self-adaptive software systems are autonomous, they can perceive the environment and can update and change themselves according to their environment (or their needs).
The paper below addresses reinforcement learning to adapt autonomous agents in the traffic jam problem, and later supervisor agents learn the best joint action of groups of traffic lights.