def create_initial_population(neat_config: CPPNNEATConfig) -> Iterator[Genome]:
for _ in range(neat_config.pop_size):
g_id = uuid4().int
g = neat_config.genotype.create_unconnected(g_id, neat_config)
hidden_nodes = neat_config.initial_hidden_nodes
if hidden_nodes:
g.add_hidden_nodes(hidden_nodes)
if neat_config.initial_connection == 'fs_neat':
g.connect_fs_neat()
elif neat_config.initial_connection == 'fully_connected':
g.connect_full()
elif neat_config.initial_connection == 'partial':
if callable(neat_config.connection_fraction):
fraction = neat_config.connection_fraction()
else:
fraction = neat_config.connection_fraction
g.connect_partial(fraction)
yield g
评论列表
文章目录