예제 #1
0
    def test_config(self):
        for g in get_graph(True):
            model = epd.ThresholdModel(g)
            config = mc.Configuration()
            config.add_model_parameter('fraction_infected', 0.1)
            config.add_model_initial_configuration("Infected", [1, 2, 3])
            config.add_node_set_configuration("partial", {1: 1, 2: 2})
            try:
                model.set_initial_status(config)
            except:
                pass

            if isinstance(g, nx.Graph):
                edges = list(g.edges)
                nodes = list(g.nodes)
            else:
                edges = [(g.vs[e.tuple[0]]['name'], g.vs[e.tuple[1]]['name'])
                         for e in g.es]
                nodes = g.vs['name']

            config.add_edge_set_configuration("partial",
                                              {e: 1
                                               for e in edges[:10]})
            try:
                model.set_initial_status(config)
            except:
                pass

            config.add_node_set_configuration("partial", {n: 1 for n in nodes})
            config.add_edge_set_configuration("partial", {e: 1 for e in edges})
            model.set_initial_status(config)

        for g in get_graph():
            model = opn.MajorityRuleModel(g)
            config = mc.Configuration()
            config.add_model_parameter("percentage_infected", 0.2)
            try:
                model.set_initial_status(config)
            except:
                pass

        for g in get_graph(True):
            model = epd.IndependentCascadesModel(g)
            config = mc.Configuration()
            config.add_model_parameter('percentage_infected', 0.1)
            try:
                model.set_initial_status(config)
            except:
                pass

        for g in get_graph(True):
            model = epd.ThresholdModel(g)
            config = mc.Configuration()
            config.add_model_parameter('percentage_infected', 0.1)
            try:
                model.set_initial_status(config)
            except:
                pass
예제 #2
0
 def test_majorityrule_model(self):
     for g in get_graph():
         model = opn.MajorityRuleModel(g)
         config = mc.Configuration()
         config.add_model_parameter("q", 3)
         config.add_model_parameter("fraction_infected", 0.2)
         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)
예제 #3
0
파일: test_ndlib.py 프로젝트: xichaow/ndlib
 def test_majorityrule_model(self):
     g = nx.complete_graph(100)
     model = opn.MajorityRuleModel(g)
     config = mc.Configuration()
     config.add_model_parameter("q", 3)
     config.add_model_parameter("percentage_infected", 0.2)
     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)
예제 #4
0
    def test_config(self):
        g = nx.erdos_renyi_graph(99, 0.1)
        model = epd.ThresholdModel(g)
        config = mc.Configuration()
        config.add_model_parameter('fraction_infected', 0.1)
        config.add_model_initial_configuration("Infected", [1, 2, 3])
        config.add_node_set_configuration("partial", {1: 1, 2: 2})
        try:
            model.set_initial_status(config)
        except:
            pass

        config.add_edge_set_configuration("partial",
                                          {e: 1
                                           for e in list(g.edges)[:10]})
        try:
            model.set_initial_status(config)
        except:
            pass
        config.add_node_set_configuration("partial", {n: 1 for n in g.nodes})
        config.add_edge_set_configuration("partial", {e: 1 for e in g.edges})
        model.set_initial_status(config)

        g = nx.complete_graph(100)
        model = opn.MajorityRuleModel(g)
        config = mc.Configuration()
        config.add_model_parameter("fraction_infected", 0.2)
        try:
            model.set_initial_status(config)
        except:
            pass

        g = nx.erdos_renyi_graph(1000, 0.1)
        model = epd.IndependentCascadesModel(g)
        config = mc.Configuration()
        config.add_model_parameter('fraction_infected', 0.1)
        try:
            model.set_initial_status(config)
        except:
            pass

        g = nx.erdos_renyi_graph(1000, 0.1)
        model = epd.ThresholdModel(g)
        config = mc.Configuration()
        config.add_model_parameter('fraction_infected', 0.1)
        try:
            model.set_initial_status(config)
        except:
            pass
예제 #5
0
    SEIR_trends = SEIRModel.build_trends(SEIR_iterations)
    visualize(SEIRModel, SEIR_trends, sub_dir='epidemics')

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

    voter_model = op.VoterModel(g.copy())
    voter_model.set_initial_status(get_voter_params())
    voter_iterations = voter_model.iteration_bunch(num_iterations)
    voter_trends = voter_model.build_trends(voter_iterations)
    visualize(voter_model, voter_trends, sub_dir='opinions')

    QVoter_model = op.QVoterModel(g.copy())
    QVoter_model.set_initial_status(get_qvoter_params())
    QVoter_iterations = QVoter_model.iteration_bunch(num_iterations)
    QVoter_trends = QVoter_model.build_trends(QVoter_iterations)
    visualize(QVoter_model, QVoter_trends, sub_dir='opinions')

    majority_rule_model = op.MajorityRuleModel(g.copy())
    majority_rule_model.set_initial_status(get_majority_rules_params())
    majority_rule_iterations = majority_rule_model.iteration_bunch(
        num_iterations)
    majority_rule_trends = majority_rule_model.build_trends(
        majority_rule_iterations)
    visualize(majority_rule_model, majority_rule_trends, sub_dir='opinions')

    sznajd_model = op.SznajdModel(g.copy())
    sznajd_model.set_initial_status(get_sznajd_params())
    sznajd_iterations = sznajd_model.iteration_bunch(num_iterations)
    sznajd_trends = sznajd_model.build_trends(sznajd_iterations)
    visualize(sznajd_model, sznajd_trends, sub_dir='opinions')