• Stars
    star
    192
  • Rank 201,287 (Top 4 %)
  • Language
    Python
  • Created over 4 years ago
  • Updated over 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Reproduce results of the research article "Deep Reinforcement Learning Based Resource Allocation for V2V Communications"

Deep Reinforcement Learning based Resource Allocation for V2V Communications

This repository contains the implementation of reinforcement learning algorithm double deep-Q learning for resource allocation problem in the vehicle to vehicle communication based on the research paper "Deep Reinforcement Learning based Resource Allocation for V2V Communications" by Hao Ye, Geoffrey Ye Li, and Biing-Hwang Fred Juang. Orignal codes are developed by IIT-lab, Paper-with-Code-of-Wireless-communication-Based-on-DL which implements deep-q learning.

I have made some modifications in code so that the results of the research paper can be reproduced.

Installation and use

Linux

Fork the repository and open the terminal using ctrl+alt+t

cd <path-to-the-python-files>

pip3 install -r requirement.txt

After successful installation close the terminal and again open it, use the below command in terminal to run the program.

cd <path-to-the-python-files>

python3 agent.py

Running this code will require a good amount of time (36 hours on i7 7th gen)

Tips and Tricks

Use the below commands to save the terminal output in .txt file. It will be beneficial while you are debugging the code.

python3 agent.py 2>&1 | tee SomeFile.txt

Run the code using the above command.

Results reproduced using Deep-Q learning

Sum Rate of V2I vs Number of Vehicles

Figure-1

The above figure shows the sum rate of V2I vs the number of vehicles. From the figure, we can infer that, with the increase in the number of vehicles, the number of V2V links increases as a result, the interference with the V2I link grows, therefore the V2I capacity will drop.

Probability of Satisfied V2V links vs the number of vehicles

Figure-2

The given figure shows the probability that the V2V links satisfy the latency constraint versus the number of vehicles. From the figure, we can infer that, with the increase in the number of vehicles, the V2V links in increases, as a result, it is more difficult to ensure every vehicle satisfies the latency constraint.

The Probability of power level selection with the remaining time for transmission

Figure-3

The above figure shows the probability for the agent to choose power levels with different time left for transmission. In general, the probability for the agent to choose the maximum power is low when there is abundant time for transmission, while the agent will select the maximum power with a high probability to ensure satisfying the V2V latency constraint when only a small amount of time left. However, when only 10 ms left, the probability for choosing the maximum power level suddenly drops to about 0.6 because the agent learns that even with the maximum power the latency constraints will be violated with high probability and switching to a lower power will get more reward by reducing interference to the V2I and other V2V links.

Therefore, we can infer that the improvement of the deep reinforcement learning based approach comes from learning the implicit relationship between the state and the reward function.

Effect of Double Deep-Q Learning

The Probability of power level selection with the remaining time for transmission

Figure-4

Figure-4 shows the probability for the agent to choose power levels with different time left for transmission when Double-Deep Q-Learning is used. The probability for the agent to choose the maximum power is decreased compared to the figure-3 when there is abundant time for transmission. Also, the probability of selecting maximum power to ensure the V2V latency constraint when a small amount of time left is increased.

Apart from this, when the agent has abundant time for transmission it will select low power transmission to reduce resource usage.

More Repositories

1

tfx-cv-demo

A demo of dockarized TFX pipeline for Image Classification
Python
12
star
2

Taxi-Demo-MLOps

Jupyter Notebook
9
star
3

Anomaly-Detection-in-Time-Series-Data-

Quarantine Project
Jupyter Notebook
6
star
4

Chest-X-ray-classification-with-GradCAM

Achieved 96.7% classification accuracy using transfer learning approach with VGG16 pre-trained model. We utilized Gradient based Class Activation Maps (GradCAM) to provide transparency for the decision taken by CNN classifier.
Jupyter Notebook
5
star
5

Dual-CNN-Autoencoder-based-lossy-image-encoding-and-decoding

DL based approach for 4x image compression and retrieval with minimum loss
Jupyter Notebook
4
star
6

Online-Machine-Learning-for-App-Prediction

Objective of this project is to decreases response time of the app by preloading the app before user select a it.
Jupyter Notebook
3
star
7

2D-Map-Creation-of-Environment-using-Mobile-Robot-

Java
2
star
8

CSP520-Computer-Vision

Jupyter Notebook
1
star
9

LSTM-SPS_Reco

Python
1
star
10

Cart-Pole-balancing-using-Reinforcment-Learning

Reinforcement Learning Example
Python
1
star
11

Named-Entity-Recognition-using-LSTM

Quarantine Project
Jupyter Notebook
1
star
12

Jacobi-eigenvalue-method

Here is matlab Program to find eigenvalue and eigenvector of small symmetric matrix.
MATLAB
1
star
13

Convolutional-Neural-Network

I have use Convolutional Neural Network to make a classification model for Fashion MNIST data set. After 200 epoch model has achieved 96.9% of validation Accuracy.
Jupyter Notebook
1
star
14

cracking-the-coding-interview-solutions

Solutions of cracking coding interview book
Python
1
star
15

Sales-Database-with-SQL-like-Syntax-for-Fetching-Records

I have created an application that would allow the user to create a sales database and use SQL (Structured Query Language) like commands to fetch records from the database. Provide appropriate menu that will allow the user to create or use a database by specifying the database name (here the database name can be used to refer to a folder in which the files are stored).
C
1
star