You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardexpand all lines: README.md
+29-4
Original file line number
Diff line number
Diff line change
@@ -3,17 +3,40 @@ Simulation scripts for the mobility management of UAV base stations project main
3
3
4
4
# Requirements
5
5
* python2.7
6
-
* numpy
6
+
* numpy==1.16.2
7
7
* tensorflow
8
8
* IPython
9
9
* matplotlib
10
10
11
11
# Files
12
-
* main.py
13
-
* channel.py
12
+
* main.py
13
+
** main simulation script with A3C (V. Mnih et al. 2016. Asynchronous methods for deep reinforcement learning. In ICML. 1928–1937.) implementation
14
+
** multi-threading to initialise parallel training of multiple workers in parallel spaces (MobiEnvironments)
15
+
** each worker creates a MobiEnvironment instance and starts training in this environment
16
+
** there is a pair of global AC nets and local AC nets for worker. Workers train their own nets individually while push the gradients to the global nets periodically, then the global nets optimise uploaded gradients from all workers and distribute the same optimal gradients to all workers.
17
+
** choices of CNN and MLP are implimented. Default MLP nets perform as well as CNN in prior work with less training complexity
18
+
14
19
* mobile_env.py
20
+
** followed openAI's gym implementation structure for a wireless mobile environment.
21
+
** creates a LTE wireless channel which provides computation of SINR values and handover functionality
22
+
** step() and step_test() take action from the RL agent and returns updated state, reward, and customisable information to the RL agent. Please be careful here to make the two function consistant. It is not ideal to have two functions one for training and one for testing, but the reason to do this is to enable different user mobility models while keep both training and testing steps computationally cheap (rather than switching between if conditions per step).
23
+
** during training the user moves following the group reference model
24
+
** during testing the users move using preloaded trace (ue_trace_10k.npy), which is generated from the group reference model
25
+
** reward function currently consists of a reward on mean sinr value and a penalty on number of outaged users. which is open for improvement
26
+
27
+
* channel.py
28
+
** downlink and uplink SINR
29
+
** In the WAIN work we take only downlink sinr
30
+
31
+
* ue_mobility.py
32
+
** a couple of mobility models for UE's movement
33
+
** group reference (X. Hong et al. 1999. A group mobility model for ad hoc wireless networks. In ACM MSWiM. 53–60.) model is used in the WAIN paper. please check the WAIN paper for more details
15
34
16
35
* main_test.py
36
+
** load trained model to test (taking input AC model from ./train/Global_A_PARA%.npy where % can be the training step, 2000 by default)
37
+
** test is done on controlled ue mobility trace by loading a file ./ue_trace_10k.npy
38
+
** at each test step, the output of nn is argmax-ed to make control decisions of UAV movements
39
+
** per step reward, SINR, and computation time are recorded for performance evaluation (output to ./test)
17
40
18
41
# Build virtual environment
19
42
` virtualenv env `
@@ -23,4 +46,6 @@ Simulation scripts for the mobility management of UAV base stations project main
0 commit comments