Help wanted: What's the meaning of "k_middlepoints" in the environment?
I am not quite sure what "k_middlepoints" means? It means we assume that there is k middle points?
Another question is in the line 50 of environment16.py:
self.top_K_critical_demands = False # If we want to take the top X% of the 5 most loaded links
Does "K" means the same here? Could you please provide more explanation?
In the current implementation in self.src_dst_k_middlepoints there can only be at most 2 elements. If there is only one it means that src and dst nodes are connected directly with a shortest path. If there are 2 elements, the first will be the intermediate node or middlepoint and the second would be the dst node. Like this, we have a shortest path from src to middlepoint/intermediate node and one from middlepoint/intermediate node to dst node. In https://github.com/BNN-UPC/ENERO/blob/1e28ebcc9750a49ef3670e104dcd6f5992510b6c/gym-graph/gym_graph/envs/environment16.py#L591 there is the implementation of allocating the bandwidth following this procedure. The self.top_K_critical_demands is just a flag that indicates if we want to take a percentage of the demands from the most critical links. In this case, the 'K' doesn't mean the same like previously. The percentage is specified in https://github.com/BNN-UPC/ENERO/blob/1e28ebcc9750a49ef3670e104dcd6f5992510b6c/gym-graph/gym_graph/envs/environment16.py#L532. The number of critical links is set to 5 in https://github.com/BNN-UPC/ENERO/blob/1e28ebcc9750a49ef3670e104dcd6f5992510b6c/gym-graph/gym_graph/envs/environment16.py#L51. In the paper, in Section 3 in the 3rd paragraph you have a more detailed explanation where critical demands == top_K_critical_demands.