Exemple #1
0
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
Exemple #2
0
    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
Exemple #3
0
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
Exemple #4
0
height_fig = 200
input_size = width // 2
output_layer_size = width
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,