def test_sis_model(): params = { 'model': 'SIS', 'b': 0.00208, 'd': 0.01, 'c': 1, 'runs': 10, 'steps': 5000, 'diffusion': 'max', 'method': 'add_edge_random', 'k': 15, 'seed': 1, 'plot_transition': False, 'gif_animation': False } graph = karate() ds = Diffusion(graph, params) increased_diffusion = ds.run_simulation() params['diffusion'] = None params['method'] = None params['k'] = 0 ds = Diffusion(graph, params) baseline_diffusion = ds.run_simulation() params['diffusion'] = 'min' params['method'] = 'ns_node' params['k'] = 4 ds = Diffusion(graph, params) decreased_diffusion = ds.run_simulation() assert sum(decreased_diffusion) < sum(baseline_diffusion) < sum(increased_diffusion)
def run_epidemic_experiment(params): graph = as_733().copy() results = defaultdict(list) b_list = np.arange(0, 0.005, 0.001) # transmission probability for idx, b in enumerate(b_list): params['b'] = b if idx == 1: params['plot_transition'] = True params['gif_animation'] = True params['gif_snaps'] = True else: params['plot_transition'] = False params['gif_animation'] = False params['gif_snaps'] = False ds = Diffusion(graph, **params) result = ds.run_simulation() results[ds.get_effective_strength()] = result plot_results(graph, params, results)