Skip to content
/ ComMit Public

Python code for the ComMit strategy presented at ASONAM 2022, a community-based pandemic mitigation approach.

License

Notifications You must be signed in to change notification settings

Pegayus/ComMit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ComMit: Blind Community-based Early Mitigation Strategy against Viral Spread

ComMit is a dynamic community-based mitigation strategy for early stages of pandemics where epidemiological knowledge of the disease is limited and no vaccination is available. The strategy is featured by the following characteristics:

  1. It is agnostic to the dynamics of the spread.
  2. It does not require prior knowledge of the contact network.
  3. It works within a limited budget.
  4. It enforces bursts of short-term restriction on small communities instead of long-term isolation of healthy individuals.

ComMit relies on updated data from test-trace reports and its strategy evolves over time. It has been tested on several real-world social networks and results show that, within a small budget, ComMit can reduce the peak of infection by 73% and shorten the duration of infection by 90% even for spreads that would reach a steady state of non-zero infections otherwise (e.g., SIS contagion model).

This repository contains the Python implementation for ComMit and the scripts for reproducing our experiments.

Repository Structure

This repository is organized into three main directories:

  1. src: Contains the source code of the project.
  2. data: Contains the data files used in the project.
  3. result: Contains the result files generated by the project.

The repository is written in Python.

Source Files (src)

  • config.py: Contains configuration details for the project.
  • contagion_model.py: Defines the contagion models used in the project.
  • mitigation_strategy.py: Defines the mitigation strategy proposed in the paper.
  • run.py: Main script to run the project.
  • run_NI.py, run_WI.py, run_WT.py: Variants of the main script tailored to different scenarios.
  • test_strategy.py: Script to test the mitigation strategy.
  • utils.py: Contains utility functions used across the project.

Data Files (data)

Data files are stored in pickled format and include:

  • albany.pkl
  • copenhagen.pkl
  • ithaca.pkl
  • rochester.pkl
  • syracuse.pkl

Result Files (result)

Results from running the scripts are stored in this directory and include:

  • NI_SIS_None_None
  • WI_SIS_epsilon_greedy_1hopiso
  • WI_SIS_epsilon_greedy_comiso
  • WI_SIS_epsilon_greedy_commit
  • WI_SIS_epsilon_greedy_degiso
  • WI_SIS_epsilon_greedy_random

Getting Started

To get started with running the scripts, you would need to:

  1. Clone the repository.
  2. Ensure you have the necessary Python packages installed (i.e., numpy, matplotlib, and networkx).
  3. Run the run.py script for a full project execution. For more tailored scenarios, use the appropriate run variant script.

Please refer to the comments in the individual scripts for a detailed understanding of their workings.

License

This project is licensed under the terms of the MIT license.

Releases

No releases published

Packages

No packages published

Languages