Dieses Repo enthält die Implementierung für Papier
Automatisierung eines zuverlässigen und fehlertoleranten Designs von Lora-basierten IoT-Netzwerken
Xiaofan Yu, Weihong Xu, Ludmila Cherkasova, Tajana Šimunić Rosing.
CNSM 2021. Bester Papierpreis.
Python 3.7
NS3-3.31 + Lorawan-Modul
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
In ./data -Ordner finden wir das Tutorial zum Generieren der Datensätze.
Jeder Datensatz enthält (i) Endgeräteorte, (ii) Candidate Gateway -Positionen und (iii) Pfadverlustmatrix mit (i, j) Eintrag, der den Pfadverlust in DB zwischen dem Ith -End -Gerät und dem JTH -Gateway darstellt.
Detaillierte Anweisungen finden Sie in Daten/Readme.md.
In ./alg -Ordner implementieren wir die folgenden Algorithmen:
./alg/RGreedy.py )../alg/clustering.py ). Benötigen Sie das Scikit-Learn-Paket../alg/RGenetic.py ). Benötigen Sie das genetische Gorithmuspaket.Die folgenden Baselines sind enthalten:
./alg/ICIOT.py ) ./alg/main.py setzt welchen Algorithmus und die Parameter des Problems.
Um die Algorithmen auszuführen:
python3 ./alg/main.pyUm die NS-3-Simulationen auszuführen, installieren Sie zunächst NS3-3.31.
Klonen Sie dann unser modifiziertes Lorawan -Modul und kopieren Sie das Testskript:
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/scratchUm die NS-3-Simulation auszuführen:
cd root-of-ns3/ns-3.31
./waf --run adrMehrere Parameter können mit dem Befehl festgelegt werden:
./waf --run " adr --MType=Confirmed --intfrPowerdBm=-126 --nPeriods=72 "Weitere Informationen finden Sie in der Hilfefunktion und dem Quellcode.
Mehrere Bash-Skripte sind in dem Ordner ./ns3-exp zum Ausführen von Experimenten enthalten.
Wir entwickeln ein entspanntes Problem und lösen es mit SNOPT optimal. Die Implementierung erfolgt in MATLAB mit Schnittstellen zu SNOPT (in ./relaxOpt Ordner).
Um die entspannte gebundene Bindung mit der gierigen Lösung unter zufällig platzierten Endgeräten zu vergleichen, werden zuerst Algorithmen mit python3 ./alg/main.py und dann die generierten Geräteorte, Kandidaten -Gateway -Standorte und notwendige Kommunikationsmatrizen direkt auf ./relaxOpt gespeichert.
Öffnen Sie Matlab und run ./relaxOpt/relaxedOpt.m .
MIT