Giter Club home page Giter Club logo

xieieni / edgecomputing-drl Goto Github PK

View Code? Open in Web Editor NEW

This project forked from linhhoang-ex/edgecomputing-drl

0.0 0.0 0.0 40.96 MB

Source code of the paper "Deep Reinforcement Learning-Based Online Resource Management for UAV-Assisted Edge Computing With Dual Connectivity," in IEEE/ACM Transactions on Networking, Apr. 2023, doi: 10.1109/TNET.2023.3263538.

Home Page: https://ieeexplore.ieee.org/document/10102429

License: MIT License

Python 100.00%

edgecomputing-drl's Introduction

Deep Reinforcement Learning for Computational Offloading in Mobile Edge Computing Networks

This repository is the implementation of the deep reinforcement learning (DRL) framework proposed in the paper "Deep Reinforcement Learning-based Online Resource Management for UAV-Assisted Edge Computing with Dual Connectivity," in IEEE/ACM Transactions on Networking (2023) [Preprint]. The framework is developed to balance computational workloads between a terrestrial base station (the Master eNodeB) and a drone base station (the Second eNodeB) for a dynamic edge computing system with dual connectivity. The framework is an actor-critic DRL structure, where the actor module is implemented using a Convolutional Neural Network (CNN), while the critic module is guided by the Lyapunov optimization framework.

Repository structure

  • system_paras.py: define the simulation parameters, edit this file to set up the simulation
  • main.py: the main script, run this to start simulation
  • memoryTF2conv.py: implementation of the actor-critic framework of DRL
  • server.py: class definition of the MEC server (UAV)
  • user.py: class definition of the user, use this script to generate user data
  • arrival_task.py: implementation of the task arrival model, use this script to generate arrival traffic
  • utils.py: includes some utility functions for unit conversion, data export, and plotting
  • in_tasks: consists of pickle files - simulation's input data regarding the arrival task
  • in_users: consists of pickle files - simulation's input data regarding the channel gains and locations of users
  • trained_models: consists of *.json and *.h5 files, parameters of the neural network after training
  • sim: after simulation, figures and numerical results are exported here

How it works

To run the simulation, please follows these steps:

  1. Configure system parameters in the file system_paras.py
  2. Run this file to start the simulation: main.py
  3. Afrer simulation, figures and numerical results will be exported to the folder sim.

The following figures illustrate an example output when simulating with arrival rate $\lambda=3$ Mbps (stress test for queue stability). Being initiated at zero, the user queue piles up rapidly in the early phase with the incoming computational tasks and limitation of local processing capability. During this process, the reinforcement learning agent makes decisions on user association (user-server mapping) and gradually learns from experience to improve the association policy. In the latter phase, thanks to the proper user association, the user can offload more tasks to the edge server over the same wireless channel, thus reducing their backlog queue.

Training Loss User's Backlog Queue

Cite this work

@ARTICLE{10102429,
  author={Hoang, Linh T. and Nguyen, Chuyen T. and Pham, Anh T.},
  journal={IEEE/ACM Transactions on Networking}, 
  title={Deep Reinforcement Learning-Based Online Resource Management for UAV-Assisted Edge Computing With Dual Connectivity}, 
  year={2023},
  volume={},
  number={},
  pages={1-16},
  doi={10.1109/TNET.2023.3263538}}

About the authors

edgecomputing-drl's People

Contributors

linhhoang-ex avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.