seirsplus icon indicating copy to clipboard operation
seirsplus copied to clipboard

Stopping policy

Open boazbk opened this issue 4 years ago • 2 comments

This pull request makes edits to run_tti_sim in sim_loop.py to add support for stopping the simulation early, for example when a sufficiently large outbreak is detected that the mitigation is "outside the model". It also adds support for logging the history and for suppressing print statements.

Suppressing print statements is via a parameter verbose - True (default) means print statement are printed as currently, False means they are suppressed.

I didn't want to change the return value of the function, so am achieving logging by taking as a parameter a dictionary history. If this parameter is None then no logging takes place. Otherwise, at each time t the loop runs, we store in history[t] a dictionary containing the current parameters of the model, as well as testing outcomes.

It is easy (one line of code) to transform the resulting dictionary into a pandas DataFrame, but I didn't want to add a dependency to this module.

Stopping early is is achieved by adding a parameter stopping_policy that is a function taking the model and the history and returning True to stop and False otherwise.

boazbk avatar Aug 20 '20 17:08 boazbk

Just a quick note that setting the parameter print_interval=0 inside run() also suppresses the regular printouts. This is not available inside run_tti_sim?

mihaibanciu avatar Aug 20 '20 17:08 mihaibanciu

At least from a quick search I don't see a print_interval in sim_loops.py. run also has a verbose parameter that run_tti_sim is missing. At the moment what I implemented is a simple True/False verbose.

boazbk avatar Aug 20 '20 18:08 boazbk