robust lora
1.0.0
此存储库包含纸的实现
基于洛拉的物联网网络的可靠和容忍度的自动化自动化
Yu,Weihong Xu,Ludmila Cherkasova,Tajanašimunić损失。
CNSM 2021。最佳纸张奖。
Python 3.7
NS3-3.31 + Lorawan模块
MATLAB 2020A + SNOPT 7.7
.
├── LICENSE
├── README.md // This file
├── alg // Algorithms for LoRa gateway placement and device configuration
├── data // End device location data and how to generate path loss matrix
├── ns3-exp // Scripts to test in ns3
└── relaxOpt // MATLAB scripts to call SNOPT to optimally solve the relaxed problem
在./data文件夹中,我们包括有关如何生成数据集的教程。
每个数据集都包含(i)端设备位置,(ii)候选网关位置以及(iii)路径损耗矩阵,带有(i,j)条目,代表ITH END设备和JTH网关之间DB中的路径损失。
详细说明在数据/readme.md中列出。
在./alg文件夹中,我们实现以下算法:
./alg/RGreedy.py )。./alg/clustering.py )。需要Scikit-Learn包。./alg/RGenetic.py )。需要遗传学包。包括以下基准:
./alg/ICIOT.py iciot.py)中的贪婪启发式./alg/main.py设置要运行的算法和问题的参数。
运行算法:
python3 ./alg/main.py要运行NS-3模拟,请首先安装NS3-3.31。
然后,克隆我们修改的Lorawan模块并复制测试脚本:
cd root-of-ns3/ns-3.31/src
git clone https://github.com/Orienfish/lorawan.git
cp path-to-this-repo/ns3-exp/adr.cc root-of-ns3/ns-3.31/scratch运行NS-3模拟:
cd root-of-ns3/ns-3.31
./waf --run adr可以使用命令设置多个参数:
./waf --run " adr --MType=Confirmed --intfrPowerdBm=-126 --nPeriods=72 "有关更多详细信息,请检查帮助功能和源代码。
用于运行实验的./ns3-exp文件夹中包含多个BASH脚本。
我们培养出轻松的问题,并使用SNOPT最佳地解决。该实现是在MATLAB中使用snopt的接口(in ./relaxOpt文件夹)完成的。
为了将宽松的结合与随机放置的最终设备下的贪婪解决方案进行比较,首先使用python3 ./alg/main.py进行了首先运行的算法,然后将生成的设备位置,候选网关位置和必要的通信矩阵直接保存到./relaxOpt 。
打开matlab并运行./relaxOpt/relaxedOpt.m 。
麻省理工学院