1 Introduction
2 Collisions, hypothesis, and advantages of decentralization
2.1 Collisions vs. autonomy
2.2 Analysis of collisions
-
Other IoT devices of the same network, as several networks covering the same area are not coordinated. This can occur between IoT devices uplink (UL) transmissions and between IoT UL and gateway downlink (DL) transmissions towards IoT devices.
-
Other IoT devices of surrounding IoT networks using the same IoT standard. This can occur both in UL and DL, as surrounding IoT gateways of different networks are not coordinated. They could use the same channels or partly same and partly different channels.
-
Other IoT radio signals using other IoT radio standards with different channels, bandwidth, users’ repartition, etc.
-
Other radio signals present in the ISM bands that are not IoT signals. By definition, they use completely different rules than IoT. They can be considered “jammers” from the IoT network point of view.
2.3 Other issues
2.4 A device side solution for spectrum management
2.5 Advantages of the proposed solution
-
Bandit algorithms have strong mathematical proofs of convergence.
-
Proofs are verified in real radio conditions, thanks to the good matching between models and reality.
-
Learning converges very fast in real radio applications experiments [8].
-
Implementation and execution both require very low processing and memory overhead, so that it is possible to add the proposed approach in IoT devices for a negligible complexity (processing, hardware, memory) and negligible extra energy consumption overhead.
-
Learning can efficiently start from scratch, so there is no need for any prior training when deploying the IoT device (i.e., no need to lose some time to acquire this knowledge before operation really starts).
-
Using such learning algorithms will never give worse results than a state-of-the-art random solution [9], even at the very beginning of the learning process, i.e., before learning brings a clear advantage.
-
The stationarity of the environment is a requirement for the proofs of convergence, but if conditions change occasionally, convergence is so fast that a simple solution consists in resetting learning from time to time [9] (note that there also exists adaptive versions).
-
As soon as a device is running in acknowledged mode, no overhead is added, neither in terms of protocol nor extra bits to be put into the LoRaWAN frames in uplink or downlink. A received ACK yields a reward of 1, and no ACK yields a reward of 0, without needing to change the content of the ACK messages.
3 MAB model and learning solutions
3.1 System model
3.2 The UCB1 algorithm
3.3 Multiplayer bandit issue
4 Measurement 1: IoT proof-of-concept
4.1 Preceding results
4.2 PoC setup
4.3 PoC results
5 Experimental architecture and hardware configuration for real LoRa measurements
5.1 LoRaWAN architecture
-
LoRa IoT devices (IoTligent devices run the UCB1 algorithm here)
-
One or more LoRa gateway(s) receiving all LoRa radio signals in their radio range
-
A LoRa network server (LNS) that discriminates devices subscribing to its network from others
-
An Application Server (AS) that receives the data sent by devices and sends back ACK to the devices (mandatory here)
5.2 Device side
5.3 LoRa gateways
5.4 Network side
6 Measurement 2: IoTligent operation in a real LoRaWAN network
6.1 Device side configuration
6.2 Network side – LoRa network server (LNS)
-
devEUI: ID of the device obtained by executing a « get_id.py » program4 on the Pycom device itself.
-
appEUI: which should correspond to app_eui chosen in the Pycom device.
-
appKey: which should correspond to app_key chosen in the Pycom device.
-
Other parameters are let by default at SF = 12 (spreading factor) and bandwidth BW = 125 kHz.
6.3 Network side – application server (AS)
-
To use the same channel in both UL and DL
-
To avoid retransmission in order to increase the battery durations of devices on the one hand and radio frequency overload on the other hand.
6.4 Learning algorithm in Pycom device
-
An iteration index initialized at 0:
it
-
A table of size N (the number of channels, 3 in this implementation example, but it could be arbitrarily high) for the number of times each channel has been chosen, representing Tk of (2):
Tk[]
-
Another table of size N for the empirical mean of success of each channel, i.e., Xk(t) of (3):
Xk[]
6.5 Results for the second measurement
Channel #0 | Channel #1 | Channel #2 |
---|---|---|
Tk[0] = 29 | Tk[1] = 61 | Tk[2] = 39 |
Xk[0] = 0.0 | Xk[1] = 0.115 | Xk[2] = 0.051 |
Sk[0] = 0 | Sk[1] = 7 | Sk[2] = 2 |
7 Measurement 3: IoTligent operation in a LoRaWAN network with emulated artificial traffic
7.1 Experimental setup
-
Channel #0: 866.9 MHz, in red
-
Channel #1: 867.1 MHz, in orange
-
Channel #2: 867.3 MHz, in light green
-
Channel #3: 867.5 MHz, in green
-
Channel #4: 867.7 MHz, in light blue
-
Channel #5: 867.9 MHz, in dark blue
-
Channel #6: 868.1 MHz, in purple
7.2 Scenario 1: Not too heavy traffic and one free channel
Reference IoT | IoTligent | |||
---|---|---|---|---|
Channel | % of success | Nb of activations | % of success | Nb of activations |
#0 | 21 % | 76 | 8 % | 12 |
#1 | 20 % | 76 | 25 % | 16 |
#2 | 24 % | 75 | 25 % | 16 |
#3 | 49 % | 76 | 50 % | 32 |
#4 | 62 % | 74 | 61,7 % | 47 |
#5 | 76,3 % | 76 | 74,4 % | 82 |
#6 | 96 % | 75 | 94,4 % | 323 |
Reference IoT | IoTligent | |
---|---|---|
Nb of iterations | 528 | 528 |
Nb of no ACK | 266 | 108 |
% of success | 49.6 % | 79.5 % |
7.3 Scenario 2: Very heavy traffic
Reference IoT | IoTligent | |||
---|---|---|---|---|
Channel | % of success | Nb of activations | % of success | Nb of activations |
#0 | 7,9 % | 76 | 5 % | 20 |
#1 | 3,9 % | 78 | 5 % | 20 |
#2 | 3,5 % | 85 | 5 % | 20 |
#3 | 52 % | 77 | 41 % | 66 |
#4 | 38,5 % | 78 | 35 % | 51 |
#5 | 50,6 % | 81 | 42 % | 69 |
#6 | 72,4 % | 76 | 65,9 % | 334 |
Reference IoT | IoTligent | |
---|---|---|
Nb of iterations | 551 | 580 |
Nb of no ACK | 373 | 283 |
% of success | 32,3 % | 51,2 % |
Reference IoT | IoTligent | |||
---|---|---|---|---|
Channel | % of success | Nb of activations | % of success | Nb of activations |
#6 | 80 % | 15 | 66,7 % | 81 |