def evaluate_genome(genome=[110], show_result = False): print(genome) gen_rule = [(r,) for r in genome] exp = experiment.Experiment() g_ca = exp.add_group_cells(name="g_ca", amount=width) neighbors, center_idx = ca.create_pattern_neighbors_ca1d(3) g_ca_bin = g_ca.add_binary_state(state_name='g_ca_bin') g_ca_bin_conn = ca.create_conn_matrix_ca1d('g_ca_bin_conn',width,\ neighbors=neighbors,\ center_idx=center_idx, is_wrapped_ca=True) exp.add_connection("g_ca_conn", connection.WeightedConnection(g_ca_bin,g_ca_bin, act.rule_binary_ca_1d_width3_func, g_ca_bin_conn, fargs_list=gen_rule)) exp.add_monitor("g_ca", "g_ca_bin", timesteps) exp.initialize_cells() start = time.time() exp.run(timesteps=timesteps) print("Execution time:", time.time()-start) exp.close() fitness, val_dict = evaluate_result(exp.get_monitor("g_ca", "g_ca_bin")[:,:,0]) return fitness, val_dict
def set_up_evodynamics(self): fargs_list = [(a, ) for a in [self.ca_rule]] exp = experiment.Experiment(input_start=0, input_delay=self.reservoir_height, training_delay=5) g_ca = exp.add_group_cells(name="g_ca", amount=self.ca_width) neighbors, center_idx = ca.create_pattern_neighbors_ca1d(3) g_ca_bin = g_ca.add_binary_state(state_name='g_ca_bin', init="zeros") g_ca_bin_conn = ca.create_conn_matrix_ca1d('g_ca_bin_conn', self.ca_width, neighbors=neighbors, center_idx=center_idx) input_connection = exp.add_input(tf.float64, [self.ca_width], "input_connection") exp.add_connection( "input_conn", connection.IndexConnection(input_connection, g_ca_bin, np.arange(self.ca_width))) exp.add_connection( "g_ca_conn", connection.WeightedConnection(g_ca_bin, g_ca_bin, act.rule_binary_ca_1d_width3_func, g_ca_bin_conn, fargs_list=fargs_list)) # exp.add_monitor("g_ca", "g_ca_bin") exp.initialize_cells() # assign to self rather then return touple return exp, input_connection
def evaluate_genome(genome=8*[0.5], filename=None): print(genome) gen_rule = [(genome,)] exp = experiment.Experiment() g_ca = exp.add_group_cells(name="g_ca", amount=width) neighbors, center_idx = ca.create_pattern_neighbors_ca1d(3) g_ca_bin = g_ca.add_binary_state(state_name='g_ca_bin') g_ca_bin_conn = ca.create_conn_matrix_ca1d('g_ca_bin_conn',width,\ neighbors=neighbors,\ center_idx=center_idx, is_wrapped_ca=True) exp.add_connection("g_ca_conn", connection.WeightedConnection(g_ca_bin,g_ca_bin, act.rule_binary_sca_1d_width3_func, g_ca_bin_conn, fargs_list=gen_rule)) exp.add_monitor("g_ca", "g_ca_bin", timesteps) exp.initialize_cells() start = time.time() exp.run(timesteps=timesteps) print("Execution time:", time.time()-start) exp.close() fitness, val_dict = evaluate_result(exp.get_monitor("g_ca", "g_ca_bin")[:,:,0]) if isinstance(filename, str): if ".csv" in filename: with open(filename, "a+", newline="") as f: wr = csv.writer(f, delimiter=";") if os.stat(filename).st_size == 0: wr.writerow(["genome", "fitness", "norm_ksdist_res", "norm_coef_res", "norm_unique_states",\ "norm_avalanche_pdf_size", "norm_linscore_res", "norm_R_res"]) wr.writerow([str(list(genome)), val_dict["fitness"], val_dict["norm_ksdist_res"],\ val_dict["norm_coef_res"], val_dict["norm_unique_states"],\ val_dict["norm_avalanche_pdf_size"],val_dict["norm_linscore_res"],\ val_dict["norm_R_res"]]) return fitness, val_dict
memory_size = 5 exp = experiment.Experiment(input_start=5, input_delay=14, training_start=6, training_delay=0) input_ca = exp.add_input(tf.float64, [input_size], "input_ca") desired_output = exp.add_desired_output(tf.float64, [output_layer_size], "desired_output") g_ca = exp.add_group_cells(name="g_ca", amount=width) neighbors, center_idx = ca.create_pattern_neighbors_ca1d(3) g_ca_bin = g_ca.add_binary_state(state_name='g_ca_bin', init="zeros") g_ca_bin_conn = ca.create_conn_matrix_ca1d('g_ca_bin_conn',width,\ neighbors=neighbors,\ center_idx=center_idx) fargs_list = [(a, ) for a in [110]] exp.add_connection( "input_conn", connection.IndexConnection(input_ca, g_ca_bin, np.arange(input_size))) exp.add_connection( "g_ca_conn", connection.WeightedConnection(g_ca_bin, g_ca_bin, act.rule_binary_ca_1d_width3_func, g_ca_bin_conn, fargs_list=fargs_list))
import numpy as np from sklearn.linear_model import LinearRegression import time import matplotlib.pyplot as plt import powerlaw from PIL import Image width = 1000 timesteps = 1000 exp = experiment.Experiment() g_ca = exp.add_group_cells(name="g_ca", amount=width) neighbors, center_idx = ca.create_pattern_neighbors_ca1d(3) g_ca_bin = g_ca.add_binary_state(state_name='g_ca_bin', init="random") g_ca_bin_conn = ca.create_conn_matrix_ca1d('g_ca_bin_conn',width,\ neighbors=neighbors,\ center_idx=center_idx, is_wrapped_ca=True) """ Best 2 80;4.375510397876782;{'norm_ksdist_res': 0.9613162536023352, 'norm_coef_res': 1.6377095314393233, 'norm_unique_states': 1.0, 'norm_avalanche_pdf_size': 0.9659114597767141, 'norm_linscore_res': 0.8704469695084798, 'norm_R_res': 0.7277920719335422, 'fitness': 4.375510397876782}; [0.39422172047670734, 0.09472197628905793, 0.2394927250526252, 0.4084554505943707, 0.0, 0.7302038703441202, 0.9150343715586952, 1.0] """ fargs_list = [( [0.39422172047670734, 0.09472197628905793,\ 0.2394927250526252, 0.4084554505943707, 0.0,\ 0.7302038703441202, 0.9150343715586952, 1.0],)] exp.add_connection( "g_ca_conn",