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()
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()