Project Title: Optimization of ATM Replenishment Student: Maksim Shutov Course: MSc in Computer Science Abstract: This work is aimed at modelling and implementing the real-world problem of ATM replen ishment optimization. It consists in finding an optimal replenishment schedule, routes for vehicles and ATM inventory policy to minimize operational costs related to the replenish ment procedure. Objects of minimization are both transportation and inventory holding costs which incurs when cash is kept in ATMs. The problem is tackled as a problem of the Inventory Routing Problem class with speci?c features of a business case described above. We consider optimization on a planning horizon of a certain length. The problem at hand features multiple vehicles, time windows, inventory management. The model does not consider cash pick-ups from ATMs, deliveries only. This study provides an algebraic formulation of the problem. The model was implemented in Python using Gurobi solver API. Model testing has been conducted using a real-world ATM data which is made available for using in further research. Experiments with implemented model has shown that the model requires certain simplifications to be able to solve instances of moderate size. With these simplifications the model is capable of solving instances of moderate sizes. For example, an instance with 50 ATMs can be solved within three hours time limit. The influence of several model aspects on the solving time and complexity of the problem has been also studies through experimentation. Low initial and final inventory levels, high rate of cash withdrawals and high distances between ATMs increase solving times of problem instances.