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 。
麻省理工學院