This document is the thesis submitted by Kieran Flesk for the degree of Masters of Science in Software Design and Development. It proposes a novel reinforcement learning approach for selecting virtual machines for migration in cloud computing environments. This approach aims to optimize resource usage and reduce energy consumption by dynamically consolidating virtual machines using live migration and switching idle nodes to sleep mode. The reinforcement learning algorithm provides decision support to efficiently deploy applications across different cloud providers while lowering energy usage without negatively impacting service level agreements.