hd818 / Cache-Allocation-Project

The purpose of this project is to implement machine learning methods to study resource allocation problems, that is how to share limited resources out among several agents.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Cache-Allocation-Project

We consider in this work Edge Computing (EC) in a multi-tenant environment: the resource owner, i.e., the Network Operator (NO), virtualizes the resources and lets third party Service Providers (SPs - tenants) run their services, which can be diverse and with heterogeneous requirements. Due to confidentiality guarantees, the NO cannot observe the nature of the traffic of SPs, which is encrypted. This makes resource allocation decisions challenging, since they must be taken based solely on observed monitoring information. We focus on one specific resource, i.e., cache space, deployed in some edge node, e.g., a base station. We study the decision of the NO about how to partition cache among several SPs in order to minimize the upstream traffic. Our goal is to optimize cache allocation using purely data-driven, model-free Reinforcement Learning (RL). Differently from most applications of RL, in which the decision policy is learned offline on a simulator, we assume no previous knowledge is available to build such a simulator. We thus apply RL in an online fashion, i.e., the policy is learned by directly perturbing the actual system and monitoring how its performance changes. Since perturbations generate spurious traffic, we also limit them. We show in simulation that our method rapidly converges toward the theoretical optimum, we study its fairness, its sensitivity to several scenario characteristics and compare it with a method from the state-of-the-art.

This project is now on development by Ayoub Ben Ameur, PhD student at Institut Polytechnique de Paris - Telecom SudParis, supervised by Assoc. Prof. Andrea Araldo and Prof. Tijani Chahed.

To save time, the simulations can be executed via a Jupyter Notebook provided in this repository in the directory: simulation-jupyter-notebook.

About

The purpose of this project is to implement machine learning methods to study resource allocation problems, that is how to share limited resources out among several agents.


Languages

Language:Python 92.3%Language:Jupyter Notebook 7.5%Language:Shell 0.2%