Meta graph convolutional neural network-assisted resilient swarm communications

Overview

Resilient UAV Swarm Communications with Graph Convolutional Neural Network

This repository contains the source codes of

Resilient UAV Swarm Communications with Graph Convolutional Neural Network

Zhiyu Mou, Feifei Gao, Jun Liu, and Qihui Wu

Fei-Lab

Problem Descriptions

In this paper, we study the self-healing of communication connectivity (SCC) problem of unmanned aerial vehicle (UAV) swarm network (USNET) that is required to quickly rebuild the communication connectivity under unpredictable external destructions (UEDs). Firstly, to cope with the one-off UEDs, we propose a graph convolutional neural network (GCN) and find the recovery topology of the USNET in an on-line manner. Secondly, to cope with general UEDs, we develop a GCN based trajectory planning algorithm that can make UAVs rebuild the communication connectivity during the self-healing process. We also design a meta learning scheme to facilitate the on-line executions of the GCN. Numerical results show that the proposed algorithms can rebuild the communication connectivity of the USNET more quickly than the existing algorithms under both one-off UEDs and general UEDs. The simulation results also show that the meta learning scheme can not only enhance the performance of the GCN but also reduce the time complexity of the on-line executions.

Display of Main Results Demo

One-off UEDs

randomly destruct 150 UAVs                             randomly destruct 100 UAVs

150 100

General UEDs

general UEDs with global information           general UEDs with monitoring mechanism

general_global_info general

Note: these are gifs. It may take a few seconds to display. You can refresh the page if they cannot display normally. Or you can view them in ./video.

Environment Requirements

pytorch==1.6.0
torchvision==0.7.0
numpy==1.18.5
matplotlib==3.2.2
pandas==1.0.5
seaborn==0.10.1
cuda supports and GPU acceleration

Note: other versions of the required packages may also work.

The machine we use

CPU: Intel(R) Core(TM) i7-10700K CPU @ 3.80GHz
GPU: NVIDIA GeForce RTX 3090

Necessary Supplementary Downloads

As some of the necessary configuration files, including .xlsx and .npy files can not be uploaded to the github, we upload these files to the clouds. Anyone trying to run these codes need to download the necessary files.

Download initial UAV positions (necessary)

To make the codes reproducible, you need to download the initial positions of UAVs we used in the experiment from https://cloud.tsinghua.edu.cn/f/c18807be55634378b30f/ or https://drive.google.com/file/d/1q1J-F2OAY_VDaNd1DWCfy_N2loN7o1XV/view?usp=sharing. Upzip the download files to ./Configurations/.

Download Trained Meta Parameters (alternative, but if using meta learning without training again, then necessary)

Since the total size of meta parameters is about 1.2GB, we have uploaded the meta parameters to https://cloud.tsinghua.edu.cn/f/2cb28934bd9f4bf1bdd7/ and https://drive.google.com/file/d/1QPipenDZi_JctNH3oyHwUXsO7QwNnLOz/view?usp=sharing. You need to download the file from either two links and unzip them to ./Meta_Learning_Results/meta_parameters/if you want to use the trained meta parameters. Otherwise, you need to train the meta parameters again (directly run Meta-learning_all.py)

Download Meta Learning Loss Functions Pictures (alternative)

The loss function pictures of meta learning are available on https://cloud.tsinghua.edu.cn/f/fc0d84f2c6374e29bcbe/ and https://drive.google.com/file/d/1cdceleZWyXcD1GxOPCYlLsRVTwNRWPBy/view?usp=sharing. You can store them in ./Meta_Learning_Results/meta_loss_pic/

Quick Start

Simulate SCC under one-off UEDs

directly run ./Experiment_One_off_UED.py

python Experiment_One_off_UED.py

Simulate meta learning process

directly run ./Meta-learning_all.py

python Meta-learning_all.py

Simulate SCC under general UEDs

directly run ./Experiment_General_UED.py

python Experiment_General_UED.py

File and Directory Explanations

  • ./Configurations/

the initial positions of 200 UAVs

  • ./Drawing/

the drawing functions

  • ./Experiment_Fig/

the experiment figures and the drawing source codes

  • ./Main_algorithm_GCN/

the proposed algorithms in the paper

  • ./Main_algorithm_GCN/CR_MGC.py

the CR-MGC algorithm (Algorithm 2 in the paper)

  • ./Main_algorithm_GCN/GCO.py

the GCO algorithm

  • ./Main_algorithm_GCN/Smallest_d_algorithm.py

algorithm of finding the smallest distance to make the RUAV graph a CCN (Algorithm 1 in the paper)

  • ./Meta_Learning_Results/

the results of meta learning

  • ./Meta_Learning_Results/meta_loss_pic

the loss function pictures of 199 mGCNs

  • ./Meta_Learning_Results/meta_parameters

the meta parameters (Since the total size of meta parameters is about 1.2GB, we have uploaded the meta parameters to https://cloud.tsinghua.edu.cn/f/2cb28934bd9f4bf1bdd7/ or https://drive.google.com/file/d/1QPipenDZi_JctNH3oyHwUXsO7QwNnLOz/view?usp=sharing)

  • ./Traditional_Algorithm/

the implementations of traditional algorithms

  • ./video/

the gif files of one-off UEDs

  • ./Configurations.py

the simulation parameters

  • ./Environment.py

the Environment generating UEDs

  • ./Experiment_General_UED.py/

the simulation under general UEDs

  • ./Experiment_One_off_UED.py/

the simulation under one-off UEDs

  • ./Experiment_One_off_UED_draw_Fig_12_d.py/

draw the Fig. 12(d) in the simulation under one-off UEDs

  • ./Meta-learning_all.py/

the meta learning

  • ./Swarm.py/

the integration of algorithms under one-off UEDs

  • ./Swarm_general.py/

the integration of algorithms under general UEDs

  • ./Utils.py/

the utility functions

Note that some unnecessary drawing codes used in the paper are not uploaded to this responsitory.

Frequency Spectrum Augmentation Consistency for Domain Adaptive Object Detection

Frequency Spectrum Augmentation Consistency for Domain Adaptive Object Detection Main requirements torch = 1.0 torchvision = 0.2.0 Python 3 Environm

15 Apr 04, 2022
Implementation of Perceiver, General Perception with Iterative Attention, in Pytorch

Perceiver - Pytorch Implementation of Perceiver, General Perception with Iterative Attention, in Pytorch Install $ pip install perceiver-pytorch Usage

Phil Wang 876 Dec 29, 2022
Deep Reinforcement Learning for Keras.

Deep Reinforcement Learning for Keras What is it? keras-rl implements some state-of-the art deep reinforcement learning algorithms in Python and seaml

Keras-RL 0 Dec 15, 2022
GPU Accelerated Non-rigid ICP for surface registration

GPU Accelerated Non-rigid ICP for surface registration Introduction Preivous Non-rigid ICP algorithm is usually implemented on CPU, and needs to solve

Haozhe Wu 144 Jan 04, 2023
Deep and online learning with spiking neural networks in Python

Introduction The brain is the perfect place to look for inspiration to develop more efficient neural networks. One of the main differences with modern

Jason Eshraghian 447 Jan 03, 2023
An open source app to help calm you down when needed.

By: Seanpm2001, Et; Al. Top README.md Read this article in a different language Sorted by: A-Z Sorting options unavailable ( af Afrikaans Afrikaans |

Sean P. Myrick V19.1.7.2 2 Oct 24, 2022
Graph parsing approach to structured sentiment analysis.

Fine-grained Sentiment Analysis as Dependency Graph Parsing This repository contains the code and datasets described in following paper: Fine-grained

Jeremy Barnes 36 Dec 12, 2022
TensorFlow implementation of ENet

TensorFlow-ENet TensorFlow implementation of ENet: A Deep Neural Network Architecture for Real-Time Semantic Segmentation. This model was tested on th

Kwotsin 255 Oct 17, 2022
A minimal implementation of face-detection models using flask, gunicorn, nginx, docker, and docker-compose

Face-Detection-flask-gunicorn-nginx-docker This is a simple implementation of dockerized face-detection restful-API implemented with flask, Nginx, and

Pooya-Mohammadi 30 Dec 17, 2022
DNA sequence classification by Deep Neural Network

DNA sequence classification by Deep Neural Network: Project Overview worked on the DNA sequence classification problem where the input is the DNA sequ

Mohammed Jawwadul Islam Fida 0 Aug 02, 2022
Hyperbolic Hierarchical Clustering.

Hyperbolic Hierarchical Clustering (HypHC) This code is the official PyTorch implementation of the NeurIPS 2020 paper: From Trees to Continuous Embedd

HazyResearch 154 Dec 15, 2022
PyTorch GPU implementation of the ES-RNN model for time series forecasting

Fast ES-RNN: A GPU Implementation of the ES-RNN Algorithm A GPU-enabled version of the hybrid ES-RNN model by Slawek et al that won the M4 time-series

Kaung 305 Jan 03, 2023
General Multi-label Image Classification with Transformers

General Multi-label Image Classification with Transformers Jack Lanchantin, Tianlu Wang, Vicente Ordóñez Román, Yanjun Qi Conference on Computer Visio

QData 154 Dec 21, 2022
This is the official pytorch implementation for the paper: Instance Similarity Learning for Unsupervised Feature Representation.

ISL This is the official pytorch implementation for the paper: Instance Similarity Learning for Unsupervised Feature Representation, which is accepted

19 May 04, 2022
Learning-based agent for Google Research Football

TiKick 1.Introduction Learning-based agent for Google Research Football Code accompanying the paper "TiKick: Towards Playing Multi-agent Football Full

Tsinghua AI Research Team for Reinforcement Learning 90 Dec 26, 2022
Implementation of fast algorithms for Maximum Spanning Tree (MST) parsing that includes fast ArcMax+Reweighting+Tarjan algorithm for single-root dependency parsing.

Fast MST Algorithm Implementation of fast algorithms for (Maximum Spanning Tree) MST parsing that includes fast ArcMax+Reweighting+Tarjan algorithm fo

Miloš Stanojević 11 Oct 14, 2022
TensorFlow Tutorial and Examples for Beginners (support TF v1 & v2)

TensorFlow Examples This tutorial was designed for easily diving into TensorFlow, through examples. For readability, it includes both notebooks and so

Aymeric Damien 42.5k Jan 08, 2023
Easily pull telemetry data and create beautiful visualizations for analysis.

This repository is a work in progress. Anything and everything is subject to change. Porpo Table of Contents Porpo Table of Contents General Informati

Ryan Dawes 33 Nov 30, 2022
Cross-platform CLI tool to generate your Github profile's stats and summary.

ghs Cross-platform CLI tool to generate your Github profile's stats and summary. Preview Hop on to examples for other usecases. Jump to: Installation

HackerRank 134 Dec 20, 2022
Simple keras FCN Encoder/Decoder model for MS-COCO (food subset) segmentation

FCN_MSCOCO_Food_Segmentation Simple keras FCN Encoder/Decoder model for MS-COCO (food subset) segmentation Input data: [http://mscoco.org/dataset/#ove

Alexander Kalinovsky 11 Jan 08, 2019