Software Open Access

Scheduling Mechanisms to Control Spread of Covid-19 (Simulation Results)

Hourani, Khalid; Augustine, John; Molla, Anisur; Pandurangan, Gopal; Pasic, Adi

We study scheduling mechanisms that explore the trade-off between containing the spread of COVID-19 and performing in-person activity in organizations. Our mechanisms, referred to as group scheduling, are based on partitioning the population randomly into groups and scheduling each group on appropriate days with possible gaps (when no one is working and all are quarantined). Each group interacts with no other group and, importantly, any person who is symptomatic in a group is quarantined.

We show that our mechanisms effectively trade-off in-person activity for more effective control of the COVID-19 virus spread. In particular, we show that a mechanism which partitions the population into two groups that alternatively work in-person for five days each, flatlines the number of COVID-19 cases quite effectively, while still maintaining in-person activity at 70% of pre-COVID-19 level. Other mechanisms that partitions into two groups with less continuous work days or more spacing or three groups achieve even more aggressive control of the virus at the cost of a somewhat lower in-person activity (about 50%). We demonstrate the efficacy of our mechanisms by theoretical analysis and extensive experimental simulations on various epidemiological models based on real-world data.

This DATSETNAMEreadme.txt file was generated on 2021-06-23 by Khalid Hourani
 
 
GENERAL INFORMATION
 
1. Title of Dataset: Scheduling Mechanisms to Control Spread of Covid-19 (Simulation Results)
 
2. Author Information
    A. Principal Investigator Contact Information
        Name: Gopal Pandurangan
        Institution: University of Houston
        Address: 3551 Cullen Blvd. Room 572, Houston, TX 77204
        Email: gopal@cs.uh.edu
 
    B. Associate or Co-investigator Contact Information
        Name: Khalid Hourani
        Institution: University of Houston
        Address: 3551 Cullen Blvd. Room 520, Houston, TX 77204
        Email:  
 
3. Date of data collection (single date, range, approximate date): 2021-01-25
 
4. Geographic location of data collection: NA  
 
5. Information about funding sources that supported the collection of the data: NSF
 
SHARING/ACCESS INFORMATION
 
1. Licenses/restrictions placed on the data: Code has GPL3 License
 
2. Links to publications that cite or use the data: https://arxiv.org/abs/2009.08872
 
3. Links to other publicly accessible locations of the data: Code (not CSVs) available at https://github.com/Covimulation/covimulation
 
4. Links/relationships to ancillary data sets: https://pubmed.ncbi.nlm.nih.gov/18366252/ used to create contact distribution
 
5. Was data derived from another source? yes/no
    A. If yes, list source(s): https://github.com/skissler/haslemere
 
6. Recommended citation for this dataset:  
 
 
DATA & FILE OVERVIEW
 
1. File List:  
    alias_sampler.py: code for efficient weighted sampling
    contact_distribution.csv: contact distribution based on https://pubmed.ncbi.nlm.nih.gov/18366252/
    contact_distribution.py: reads above csv and returns a probability density function
    contact_graph.py: base class for contact graph model
    csv_helper.py: helper code to generate csvs after simulations
    graph.py: base class that contact_graph inherits from
    grid.py: code to improve efficiency of determining k closest neighbors by gridding
    mechanisms.py: string manipulation for simulation - converts mechanism name from CSV to expected format
    person.py: code for person class (effectively, code for nodes in graph)
    plot_helper.py: code to generate plots (largely unused - plots where generated using PGF from raw data)
    simulation.py: code to run simulation
    simulation_kissler.py: code to grab data from https://github.com/skissler/haslemere and run simulation
    sir_graph.py: inherits structure from contact graph class, adds SIR specific logic
    
    kissler_(0.01).csv: simulation results for kissler data with T_p = 0.01
    kissler_(0.10).csv: simulation results for kissler data with T_p = 0.10
    raw_geometric_(0.01).csv: simulation results for contact graph with T_p = 0.01
    raw_geometric_(0.10).csv: simulation results for contact graph with T_p = 0.10
    raw_seir_(0.01).csv: simulation results for SEIR simulation with T_p = 0.01
    raw_seir_(0.10).csv: simulation results for SEIR simulation with T_p = 0.10
 
    CSVs are formatted:
    day,basic,symptomatic,(1|5|2),(2|5|0),(3|3|0),(4|4|0)
     
    day: the number of days passed since start of the simulation
    basic: number of new infections that day in basic model
    symptomatic: number of new infections that day in symptomatic quarantine model
    (1|5|2): number of new infections that day in group scheduling model with (g, d, t) = (1, 5, 2)
    (2|5|0): number of new infections that day in group scheduling model with (g, d, t) = (2, 5, 0)
    (3|3|0): number of new infections that day in group scheduling model with (g, d, t) = (3, 3, 0)
    (4|4|0): number of new infections that day in group scheduling model with (g, d, t) = (4, 4, 0)
 
2. Relationship between files, if important: simulation should be able to run by calling
        python simulation.py
        python simulation_kissler.py
    which uses the other files, as described in 1.  
 
3. Additional related data collected that was not included in the current data package:  
 
4. Are there multiple versions of the dataset? no
    A. If yes, name of file(s) that was updated:  
        i. Why was the file updated?  
        ii. When was the file updated?  
 
 
METHODOLOGICAL INFORMATION
 
1. Description of methods used for collection/generation of data:  
    We use https://pubmed.ncbi.nlm.nih.gov/18366252/ to create a contact distribution as a probability density function
    then generate the required number of persons. People are placed randomly in the unit square and connect to a
    number (drawn from the contact distribution) of closest neighbors. The people can then infect each contact with
    probability T_p. The simulation is run (for various values of T_p) until there are no remaining infected participants.
     
    The same process is run on the data from https://github.com/skissler/haslemer.
     
2. Methods for processing the data:  
    The number of new infections per day are tracked in the provided source code.
 
3. Instrument- or software-specific information needed to interpret the data:  
    Python3.6 or later is necessary. Script plot_helper.py uses matplotlib. The Person class from person.py
    makes use of various numpy functions. The remaining modules imported are all standard library files.
 
4. Standards and calibration information, if appropriate:  
 
5. Environmental/experimental conditions:  
 
6. Describe any quality-assurance procedures performed on the data:  
 
7. People involved with sample collection, processing, analysis and/or submission:  
    John Augustine
    Khalid Hourani
    Anisur Rahaman Molla
    Gopal Pandurangan
    Adi Pasic

Funding provided by: Science and Engineering Research Board
Crossref Funder Registry ID: http://dx.doi.org/10.13039/501100001843
Award Number: EMR/2016/003016

Funding provided by: Department of Science and Technology, Ministry of Science and Technology, India
Crossref Funder Registry ID: http://dx.doi.org/10.13039/501100001409
Award Number: DST/INSPIRE/04/2015/002801

Funding provided by: National Science Foundation
Crossref Funder Registry ID: http://dx.doi.org/10.13039/100000001
Award Number: IIS-1633720

Funding provided by: National Science Foundation
Crossref Funder Registry ID: http://dx.doi.org/10.13039/100000001
Award Number: CCF-BSF-1717075

Funding provided by: National Science Foundation
Crossref Funder Registry ID: http://dx.doi.org/10.13039/100000001
Award Number: CCF-1540512

Files (53.2 kB)
Name Size
alias_sampler.py
md5:4dfee9128a5ba1b341aa4b41b8473916
2.7 kB Download
contact_distribution.csv
md5:761d2ef6ec3bcd727b6b0deb1c1ba659
1.4 kB Download
contact_distribution.py
md5:099bdab209b9d1fedc79241a0746ad0e
1.8 kB Download
contact_graph.py
md5:6b8657ba63af61d50f02f017f1fc7a83
5.6 kB Download
csv_helper.py
md5:6c9e5e53b7e4ad78f0d26b603f946e87
3.1 kB Download
graph.py
md5:23b7df9706d2507802a11b65b0470ef0
2.3 kB Download
grid.py
md5:47dd68160b454f26921b0254335cb8a5
1.3 kB Download
mechanisms.py
md5:f51e9ef1ef74c0e5f8a7ec279d16679e
382 Bytes Download
person.py
md5:98ac1ad1b880954ba74b489640ebfad4
3.0 kB Download
plot_helper.py
md5:99bd473ff67e9e23e82936424733acd4
10.1 kB Download
simulation.py
md5:c3d62239fc048a87aa561759d1622a99
8.3 kB Download
simulation_kissler.py
md5:c03ece63cdae74e7e205ac7f489f1784
6.1 kB Download
sir_graph.py
md5:7e376f48d8574300101e5b8a09171cbc
7.0 kB Download
6
17
views
downloads
All versions This version
Views 66
Downloads 1717
Data volume 59.3 kB59.3 kB
Unique views 66
Unique downloads 22

Share

Cite as