Energy efficient virtual function placement in 5g networks
open
instance-definition.txt
to see how the input file should be structured seeinstance.txt
andinstance_small.txt
for examples
Network is configured with nodes (routers) which are connected via links. Each server is connected to only one node.
The main problem is to place virtual functions onto servers and find a routing between them with respect to constraints so that used power is minimal.
Server has limited amount of resources (processing power, memory). Every component has certain demands for resources. Because of that, we can't place a component on a server if it doesn't have enough needed resources.
Communication that goes over a link has a certain delay. Every link has its own bandwidth.
Each used node uses constant amount of memory. The same goes for links. Server uses power proportional to the amount of used resources.
Service chain is a chain of components which communicate with each other. For example, in 1->2->5
chain, 1
communicates with 2
, which communicates with 5
.
Each service chain has maximal allowed delay (sum of delays between components in a chain can't be greater than this).
Each pair of communicating components require a certain amount of bandwidth.
My implementation is separated into two parts:
- placing components onto servers
- finding routes between each pair of components
Places components in a random order onto server until it finds a valid placement.
Places each component on a server for which additional used power would be minimal.
Each router goes through pairs of components and finds the best route for that pair.
Try to use a link for which additional used power would be minimal until you get to the destination node.
Use Ant Colony Optimization (ACO) to find the best route from component A to component B.
Used tabu search to search neighbor solutions from a given initial solution.