Ejemplo n.º 1
0
    def test_trend_comparison(self):

        # Network topology
        g = nx.erdos_renyi_graph(1000, 0.1)

        # Model selection
        model = epd.SIRModel(g)

        # Model Configuration
        cfg = mc.Configuration()
        cfg.add_model_parameter('beta', 0.001)
        cfg.add_model_parameter('gamma', 0.02)
        cfg.add_model_parameter("percentage_infected", 0.01)
        model.set_initial_status(cfg)

        iterations = model.iteration_bunch(200)
        trends = model.build_trends(iterations)

        model1 = epd.SIModel(g)
        cfg = mc.Configuration()
        cfg.add_model_parameter('beta', 0.001)
        cfg.add_model_parameter("percentage_infected", 0.01)
        model1.set_initial_status(cfg)

        iterations = model1.iteration_bunch(200)
        trends1 = model1.build_trends(iterations)

        viz = DiffusionTrendComparison([model, model1], [trends, trends1])

        viz.plot("trend_comparison.pdf")
        os.remove("trend_comparison.pdf")
Ejemplo n.º 2
0
 def test_multiple_si_model(self):
     for g in get_graph(True):
         model = epd.SIModel(g)
         config = mc.Configuration()
         config.add_model_parameter('beta', 0.01)
         config.add_model_parameter("fraction_infected", 0.1)
         model.set_initial_status(config)
         executions = ut.multi_runs(model, execution_number=10, iteration_number=50)
         self.assertEqual(len(executions), 10)
         iterations = model.iteration_bunch(10, node_status=False)
         self.assertEqual(len(iterations), 10)
Ejemplo n.º 3
0
 def test_si_model(self):
     for g in get_graph(True):
         model = epd.SIModel(g)
         config = mc.Configuration()
         config.add_model_parameter('beta', 0.5)
         config.add_model_parameter("fraction_infected", 0.1)
         model.set_initial_status(config)
         iterations = model.iteration_bunch(10)
         self.assertEqual(len(iterations), 10)
         iterations = model.iteration_bunch(10, node_status=False)
         self.assertEqual(len(iterations), 10)
Ejemplo n.º 4
0
 def test_si_model(self):
     g = nx.erdos_renyi_graph(1000, 0.1)
     model = epd.SIModel(g)
     config = mc.Configuration()
     config.add_model_parameter('beta', 0.5)
     config.add_model_parameter("percentage_infected", 0.1)
     model.set_initial_status(config)
     iterations = model.iteration_bunch(10)
     self.assertEqual(len(iterations), 10)
     iterations = model.iteration_bunch(10, node_status=False)
     self.assertEqual(len(iterations), 10)
Ejemplo n.º 5
0
 def test_multiple_si_model(self):
     g = nx.erdos_renyi_graph(1000, 0.1)
     model = epd.SIModel(g)
     config = mc.Configuration()
     config.add_model_parameter('beta', 0.01)
     config.add_model_parameter("percentage_infected", 0.1)
     model.set_initial_status(config)
     executions = ut.multi_runs(model,
                                execution_number=10,
                                iteration_number=50)
     self.assertEqual(len(executions), 10)
     iterations = model.iteration_bunch(10, node_status=False)
     self.assertEqual(len(iterations), 10)
    def count(g, beta=0.2, percentage_infected=0.01, estimations=10):
        len_nodes = len(g.nodes())
        list_of_iter = []

        for i in range(estimations):
            model = ep.SIModel(g)
            cfg = mc.Configuration()
            cfg.add_model_parameter('beta', beta)
            cfg.add_model_parameter("percentage_infected", percentage_infected)
            model.set_initial_status(cfg)

            iteration = model.iteration()  # initialization

            while (iteration['node_count'][1] < len_nodes):
                iteration = model.iteration()

            list_of_iter.append(iteration['iteration'])
        return np.mean(list_of_iter)
Ejemplo n.º 7
0
import networkx as nx
import ndlib.models.ModelConfig as mc
import ndlib.models.epidemics as ep
from bokeh.io import output_notebook, show
from ndlib.viz.bokeh.DiffusionTrend import DiffusionTrend


# Network topology
g = nx.erdos_renyi_graph(1000, 0.05)

# Model selection
model = ep.SIModel(g)

# Model Configuration
cfg = mc.Configuration()
cfg.add_model_parameter('beta', 0.01)
cfg.add_model_parameter("fraction_infected", 0.05)
model.set_initial_status(cfg)

# Simulation execution
iterations = model.iteration_bunch(200)
trends = model.build_trends(iterations)

#visualize
viz = DiffusionTrend(model, trends)
p = viz.plot(width=550, height=550)
show(p)
Ejemplo n.º 8
0
def get_sznajd_params():
    print('\n\tInput SZNAJD model parameters')
    fraction_infected = float(input('fraction_infected(initial)[0, 1]: '))

    cfg = mc.Configuration()
    cfg.add_model_parameter('fraction_infected', fraction_infected)  # 0.1
    return cfg


if __name__ == '__main__':
    g = nx.erdos_renyi_graph(1000, 0.1)
    num_iterations = int(input('Number of iterations for all models: '))  # 200

    ###############################################################

    SIModel = ep.SIModel(g.copy())
    SIModel.set_initial_status(get_si_params())
    SI_iterations = SIModel.iteration_bunch(num_iterations)
    SI_trends = SIModel.build_trends(SI_iterations)
    visualize(SIModel, SI_trends, sub_dir='epidemics')

    SISModel = ep.SISModel(g.copy())
    SISModel.set_initial_status(get_sis_params())
    SIS_iterations = SISModel.iteration_bunch(num_iterations)
    SIS_trends = SISModel.build_trends(SIS_iterations)
    visualize(SISModel, SIS_trends, sub_dir='epidemics')

    SEISModel = ep.SEISModel(g.copy())
    SEISModel.set_initial_status(get_seis_params())
    SEIS_iterations = SEISModel.iteration_bunch(num_iterations)
    SEIS_trends = SEISModel.build_trends(SEIS_iterations)