springer-math / Mathematics-of-Epidemics-on-Networks

Source code accompanying 'Mathematics of Epidemics on Networks' by Kiss, Miller, and Simon http://www.springer.com/us/book/9783319508047 . Documentation for the software package is at https://epidemicsonnetworks.readthedocs.io/en/latest/
MIT License
150 stars 61 forks source link

Multiple Contagions #63

Open hcars opened 4 years ago

hcars commented 4 years ago

Influence maximization, epidemic thresholds, and other topics have sparked interest in competing and cooperating contagions in recent years. Is there any way to do a discrete-time multiple contagion epidemic simulation with EoN currently? If not, I am working on this area at the University of Virginia and would be happy to contribute this.

joelmiller commented 4 years ago

I've got an approach which will work for continuous time (which shows some interesting oscillatory behaviors). I have not done this in discrete time. The main reason for this is that it's not clear to me what to do if contradictory things try to happen at the same time.

If you've got some thoughts, I'd be interested in your input (and having you develop something). Can you give me an idea what you'd want to do?

I've got a deadline at the end of next week so have almost no time to do anything till then.

hcars commented 4 years ago

I haven't looked too closely at what I would actually be developing, but my goal would be to implement a method that simulates a SIR model with multiple contagions. With regards to your concern about simultaneous infection, this shouldn't be a problem if there is no assumption of competition, correct? In the case of competing or cooperating contagions, I think you're right that we need to decide how that would be resolved.

P.S. If we find a way to move forward, I may be slow in actually getting any implementation down because my employer has other priorities for me.

hcars commented 4 years ago

I've got an approach which will work for continuous time (which shows some interesting oscillatory behaviors). I have not done this in discrete time. The main reason for this is that it's not clear to me what to do if contradictory things try to happen at the same time.

If you've got some thoughts, I'd be interested in your input (and having you develop something). Can you give me an idea what you'd want to do?

I've got a deadline at the end of next week so have almost no time to do anything till then.

@joelmiller could you send me a link to that method you're using for continuous time. Also, I found a paper on discrete-time multiple contagion that claims to handle the possibility for synchronous infection. I'll send it your way if it seems to solve the problem that you mentioned.

joelmiller commented 4 years ago

There are examples of competing and cooperating diseases near the bottom of the list here: https://epidemicsonnetworks.readthedocs.io/en/latest/Examples.html#non-sis-sir-processes-with-gillespie-simple-contagion

hcars commented 4 years ago

Here is the paper that I mentioned: https://journals.plos.org/plosone/article?id=10.1371/journal.pone.0095669

They just handled the problem of multiple successful transmissions by choosing one uniformly randomly although I'm sure you've thought of that.