Пример #1
0
def timeIterationStepManyToOne49():
    random.seed("random")
    for i in range(200000):
        agentid = focal_agent_sim.select_focal_agent(network, "random", agents)
        neighborsid = neighbor_selector_sim.select_neighbors(
            network, "random", agentid, "many-to-one")
        influence_sim.spread_influence(network, "axelrod",
                                       agentid, neighborsid,
                                       list(all_attributes), "many-to-one")
Пример #2
0
def timeIterationStepOneToMany49():
    random.seed("random")
    for i in range(200000):
        agentid = focal_agent_sim.select_focal_agent(network, "random", agents)
        neighborsid = neighbor_selector_sim.select_neighbors(
            network, "random", agentid, "one-to-many")
        influence_sim.spread_influence(network, "axelrod",
                                       agentid, neighborsid,
                                       list(all_attributes), "one-to-many",
                                       HammingDistance())
Пример #3
0
def timeIterationStepOneToMany5000Overlap():
    all_attributes = network.nodes[1].keys()
    random.seed("random")
    for i in range(20000):
        agentid = focal_agent_sim.select_focal_agent(network, "random")
        neighborsid = neighbor_selector_sim.select_neighbors(
            network, "random", agentid, "one-to-many")
        influence_sim.spread_influence(network, "stochasticOverlap",
                                       agentid, neighborsid,
                                       list(all_attributes), "one-to-many")
Пример #4
0
def timeIterationStepOneToOne5000():
    all_attributes = network.node[1].keys()
    random.seed("random")
    for i in range(2000000):
        agentid = focal_agent_sim.select_focal_agent(network, "random",
                                                     agents5000)
        neighborsid = neighbor_selector_sim.select_neighbors(
            network, "random", agentid, "one-to-one")
        influence_sim.spread_influence(network, "axelrod",
                                       [agentid], neighborsid,
                                       list(all_attributes), "one-to-one")
Пример #5
0
def timeIterationStepOneToOne9():
    network = network_init.generate_network("grid", **{"num_agents": 9})
    agents_init.initialize_attributes(network, "random")
    all_attributes = network.nodes[1].keys()
    random.seed("random")
    for i in range(2000000):
        agentid = focal_agent_sim.select_focal_agent(network, "random")
        neighborsid = neighbor_selector_sim.select_neighbors(
            network, "random", agentid, "one-to-one")
        influence_sim.spread_influence(network, "axelrod",
                                       [agentid], neighborsid,
                                       list(all_attributes), "one-to-one")
Пример #6
0
def timeIterationStepOneToOne49Overlap():
    network = network_init.generate_network("grid")
    agents_init.initialize_attributes(network, "random")
    all_attributes = network.node[1].keys()
    random.seed("random")
    for i in range(2000000):
        agentid = focal_agent_sim.select_focal_agent(network, "random")
        neighborsid = neighbor_selector_sim.select_neighbors(
            network, "random", agentid, "one-to-one")
        influence_sim.spread_influence(network, "stochasticOverlap",
                                       agentid, neighborsid,
                                       list(all_attributes), "one-to-one")
Пример #7
0
    def run_step(self):
        """
        Executes one iteration of the simulation step which includes the selection of a focal agent, the selection
        of the neighbors and the influence step.
        If the user passed their own implementations of those components, they will be called to execute these steps,
        otherwise the respective factory functions will be called.
        """

        selected_agent = focal_agent_sim.select_focal_agent(self.network, self.focal_agent_selector,
                                                            self.agentIDs, **self.parameter_dict)

        neighbors = neighbor_selector_sim.select_neighbors(self.network, self.neighbor_selector,
                                                           selected_agent,
                                                           self.communication_regime, **self.parameter_dict)

        success = influence_sim.spread_influence(self.network,
                                                 self.influence_function,
                                                 selected_agent,
                                                 neighbors,
                                                 self.communication_regime,
                                                 self.dissimilarity_calculator,
                                                 self.influenceable_attributes,
                                                 **self.parameter_dict)

        if self.tickwise and self.time_steps % self.tickwise_output_step_size == 0:  # list is not empty
            defaults_selected = [i for i in self.tickwise if i in CreateOutputTable._implemented_output_realizations]
            if len(defaults_selected) > 0:
                self.tickwise_output['defaults'].append(
                    CreateOutputTable.create_output_table(network=self.network, realizations=defaults_selected))
            for i in self.tickwise:
                if not i in defaults_selected:
                    if isinstance(i, CreateOutputTable.OutputTableCreator):
                        self.tickwise_output[i.label].append(i.create_output(network=self.network))
                    else:
                        self.tickwise_output[i].append(
                            OutputMeasures.AttributeReporter(feature=i).create_output(self.network))

        self.time_steps += 1
        if success:
            self.influence_steps += 1