Example #1
0
def eval_func_dynamic(chromosome):
    results_path = chromosome.getParam("results_path")
    evaluation_method = chromosome.getParam("evaluation_method")
    data_path = chromosome.getParam("data_path")
    network_type = chromosome.getParam("network_type")
    extension = chromosome.getParam("extension")
    name = chromosome.getParam("name")
    number_of_networks = len([namefile for namefile in os.listdir(data_path) if extension in namefile])

    scores = {}
    # we create a graph that is similar to the initial graph

    initial_network = ne.read_typed_file(data_path + name + "0" + extension)
    net = nd.createGraph(network_type, initial_network)

    for numero in range(number_of_networks - 1):
        nodes_next, edges_next = ne.get_number_of_nodes_and_edges(results_path, numero + 1)
        nodes_now, edges_now = ne.get_number_of_nodes_and_edges(results_path, numero)
        difference_of_size = nodes_next - nodes_now
        difference_of_edge_number = edges_next - edges_now

        # at each step we add nodes and edges to match with graph at next step
        net = nd.grow_network(chromosome, difference_of_size, difference_of_edge_number, net)

        # comparison with the network at next step : returns a dict  : observable-proximity related to the observable
        scores[str(numero + 1)] = ne.eval_network(net,
                                                  results_path, numero + 1,
                                                  evaluation_method=evaluation_method,
                                                  network_type=network_type,
                                                  name=name)

        # we compute a list that contains aggregated proximity at each time step
    scores_aggregated = [scores[str(score)]['proximity_aggregated'] for score in range(1, number_of_networks)]
    return min(scores_aggregated)
Example #2
0
def eval_func_dynamic(chromosome):
    results_path = chromosome.getParam("results_path")
    evaluation_method = chromosome.getParam("evaluation_method")
    data_path = chromosome.getParam("data_path")
    network_type = chromosome.getParam("network_type")
    extension = chromosome.getParam("extension")
    name = chromosome.getParam("name")
    number_of_networks = len([namefile for namefile in os.listdir(data_path) if extension in namefile])

    scores = {}
    # we create a graph that is similar to the initial graph

    initial_network = ne.read_typed_file(data_path + name + "0" + extension)
    net = nd.createGraph(network_type, initial_network)

    for numero in range(number_of_networks - 1):
        nodes_next, edges_next = ne.get_number_of_nodes_and_edges(results_path, numero + 1)
        nodes_now, edges_now = ne.get_number_of_nodes_and_edges(results_path, numero)
        difference_of_size = nodes_next - nodes_now
        difference_of_edge_number = edges_next - edges_now

        # at each step we add nodes and edges to match with graph at next step
        net = nd.grow_network(chromosome, difference_of_size, difference_of_edge_number, net)

        # comparison with the network at next step : returns a dict  : observable-proximity related to the observable
        scores[str(numero + 1)] = ne.eval_network(net,
                                                  results_path, numero + 1,
                                                  evaluation_method=evaluation_method,
                                                  network_type=network_type,
                                                  name=name)

        # we compute a list that contains aggregated proximity at each time step
    scores_aggregated = [scores[str(score)]['proximity_aggregated'] for score in range(1, number_of_networks)]
    return min(scores_aggregated)
def develop_network(rule,number):
    graph = nd.createGraph(network_type)
    variable = rule.getData()[1]
    global data_path
    network = nd.grow_network_with_constants(graph,py.GTree.GTree(rule),number_of_nodes, number_of_edges)  
    nx.write_gml(network, data_path)
    nx.draw(network)
    plt.savefig("../../results/temp/drawings/{}_{}.png".format(variable,number))
    plt.close()
Example #4
0
def develop_network(rule, number):
    graph = nd.createGraph(network_type)
    variable = rule.getData()[1]
    global data_path
    network = nd.grow_network_with_constants(graph, py.GTree.GTree(rule),
                                             number_of_nodes, number_of_edges)
    nx.write_gml(network, data_path)
    nx.draw(network)
    plt.savefig("../../results/temp/drawings/{}_{}.png".format(
        variable, number))
    plt.close()