Ce repo contient la mise en œuvre du papier
Automatiser la conception fiable et tolérante aux pannes des réseaux IoT basés sur LORA
Xiaofan Yu, Weihong Xu, Ludmila Cherkasova, Tajana Šimunić Rose.
CNSM 2021. Meilleur prix Paper.
Python 3.7
Module 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
Dans le dossier ./data , nous incluons le tutoriel sur la façon de générer les ensembles de données.
Chaque ensemble de données comprend (i) les emplacements des périphériques d'extrémité, (ii) les emplacements de passerelle candidate et (iii) la matrice de perte de chemin avec (i, j) l'entrée représentant la perte de chemin en dB entre le périphérique de fin et la passerelle JTH.
Les instructions détaillées sont répertoriées dans Data / Readme.md.
Dans le dossier ./alg , nous implémentons les algorithmes suivants:
./alg/RGreedy.py )../alg/clustering.py ). Besoin du package Scikit-Learn../alg/RGenetic.py ). Besoin du package Geneticalgorithme.Les lignes de base suivantes sont incluses:
./alg/ICIOT.py ) ./alg/main.py définit quel algorithme à exécuter et les paramètres du problème.
Pour exécuter les algorithmes:
python3 ./alg/main.pyPour exécuter les simulations NS-3, installez d'abord NS3-3.31.
Ensuite, clonez notre module Lorawan modifié et copiez le script de test:
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/scratchPour exécuter la simulation NS-3:
cd root-of-ns3/ns-3.31
./waf --run adrPlusieurs paramètres peuvent être définis avec la commande:
./waf --run " adr --MType=Confirmed --intfrPowerdBm=-126 --nPeriods=72 "Pour plus de détails, consultez la fonction d'aide et le code source.
Plusieurs scripts bash sont inclus dans le dossier ./ns3-exp pour l'exécution d'expériences.
Nous développons un problème détendu et le résolvons de manière optimale avec Snopt. L'implémentation est effectuée dans MATLAB à l'aide d'interfaces pour Snopt (dans le dossier ./relaxOpt ).
Pour comparer la limite détendue avec la solution gourmand sous des périphériques d'extrémité placés au hasard, les algorithmes d'exécution d'abord avec python3 ./alg/main.py , puis les emplacements des périphériques générés, les emplacements de la passerelle candidate et les matrices de communication nécessaires sont directement enregistrées sur ./relaxOpt .
Open Matlab and Run ./relaxOpt/relaxedOpt.m .
Mit