/vne

Virtual Network Embedding algorithms, including code for the paper "Monkey Business: Reinforcement learning meets neighborhood search for Virtual Network Embedding"

Primary LanguageJulia

vne.jl

This is a collection of algorithms for the Virtual Network Embedding problem. Please cite the our following paper if you use this repo:

Maxime Elkael and Massinissa Ait Aba and Andrea Araldo and Hind Castel and Badii Jouaber, "Monkey Business: Reinforcement learning meets neighborhood search for Virtual Network Embedding", 2022, https://arxiv.org/abs/2202.13706, in review.

Model:

  • A virtual node must be placed on one physical node
  • Two virtual nodes from the same VNR (virtual network request) cannot use the same physical node
  • A virtual link is placed on a single path (possible to use path-splitting instead, see below)
  • Virtual nodes & link should respect capacity constraints (CPU/BW)

Dependencies

You need to install Julia to run the implemented algorithms Then install the following dependencies (using Pkg.add(...) in the Julia prompt):

  • Graphs
  • MetaGraphs
  • DataStructures
  • JSON
  • StatsBase
  • JLD2

Implemented algorithms

  • NEPA

Maxime Elkael and Massinissa Ait Aba and Andrea Araldo and Hind Castel and Badii Jouaber, "Monkey Business: Reinforcement learning meets neighborhood search for Virtual Network Embedding", 2022, https://arxiv.org/abs/2202.13706, in review.

julia nepa.jl <scenario folder> <log file> <level> <N> <use distance heuristic(true/false)> <level refine> <number of refinements> <random seed>
  • NRPA

M. Elkael, H. Castel-Taleb, B. Jouaber, A. Araldo and M. A. Aba, "Improved Monte Carlo Tree Search for Virtual Network Embedding," 2021 IEEE 46th Conference on Local Computer Networks (LCN), 2021, pp. 605-612.

usage:

julia nrpa.jl <scenario folder> <log file> <level> <N> <use distance heuristic(true/false)> <random seed>
  • MCTS from

S. Haeri and L. Trajković, "Virtual Network Embedding via Monte Carlo Tree Search," in IEEE Transactions on Cybernetics, vol. 48, no. 2, pp. 510-521, Feb. 2018, doi: 10.1109/TCYB.2016.2645123.

usage:

julia mcts.jl <scenario folder> <log file> <total budget> <random seed>

Where total budget will then be divided by the number of nodes of each VNR during placement, so the algorithm spends total budget>/num_nodes per node

  • UEPSO

Zhang, Z., Cheng, X., Su, S., Wang, Y., Shuang, K., & Luo, Y. (2013). A unified enhanced particle swarm optimization‐based virtual network embedding algorithm. International Journal of Communication Systems, 26(8), 1054-1073.

usage:

julia uepso.jl <scenario folder> <log file> <number of particles> <number of iterations> <random seed>