ericbinnendyk / thesis-project

The programming project I am working on for my master's thesis, about using reinforcement learning to improve network performance

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

thesis-project

The programming project I am working on for my master's thesis, about using reinforcement learning to improve network performance.

For now, this is just a backup of the actual working directory I use.

Prerequisites for running the code are C++ and Python 3 ZeroMQ libraries, Numpy, Tensorflow, and Keras. R is needed to plot network results.

NOTE: This code doesn't compile yet because ndnSIM compilation seems to be dependent on the code being split into submodules.

To compile the code, download Anju James and George Torres's original ndnQoS code at https://github.com/nsol-nmsu/ndnQoS. Then replace the directories src/ndnSIM/examples, src/ndnSIM/apps, and src/ndnSIM/NFD/daemon/fw with the ones in this code. Also, add train-RL-model.py and plot_network_performance.r to the ns-3 directory.

To run the code, enter the command "./waf --run=<simulation name>". Then, in separate terminals, run one instance of "python3 train-RL-model.py <ID>" for each router node with the QoS strategy installed, where <ID> is the ID of the node.

The file plot_network_performance.r can be run in RStudio to plot network performance metrics.

About

The programming project I am working on for my master's thesis, about using reinforcement learning to improve network performance

License:GNU General Public License v2.0


Languages

Language:Python 53.5%Language:C++ 35.4%Language:HTML 9.7%Language:C 0.4%Language:JavaScript 0.4%Language:Perl 0.3%Language:CSS 0.1%Language:Makefile 0.0%Language:MATLAB 0.0%Language:Shell 0.0%Language:CMake 0.0%Language:Click 0.0%Language:XSLT 0.0%Language:Gnuplot 0.0%Language:R 0.0%Language:Batchfile 0.0%