示例#1
0
                        self.genotype.orig_size_xyz) * min_percent_full:
                    return False
                # Discarding the robot if it doesn't have at least a given percentage of muscles (materials 3 and 4)
                if count_occurrences(state, [3, 4]) < np.product(
                        self.genotype.orig_size_xyz) * min_percent_muscle:
                    return False
        return True


# Setting up the simulation object
my_sim = Sim(dt_frac=DT_FRAC,
             simulation_time=SIM_TIME,
             fitness_eval_init_time=INIT_TIME)

# Setting up the environment object
my_env = Env(sticky_floor=0, time_between_traces=0)

# Now specifying the objectives for the optimization.
# Creating an objectives dictionary
my_objective_dict = ObjectiveDict()

# Adding an objective named "fitness", which we want to maximize. This information is returned by Voxelyze
# in a fitness .xml file, with a tag named "NormFinalDist"
my_objective_dict.add_objective(name="PushDist",
                                maximize=False,
                                tag="<PushDist>")
my_objective_dict.add_objective(name="fitness", maximize=True, tag="<PushRot>")
my_objective_dict.add_objective(name="RotVel",
                                maximize=True,
                                tag="<RotVel>",
                                logging_only=True)
示例#2
0
                if np.sum(state > 0) < np.product(
                        self.genotype.orig_size_xyz) * min_percent_full:
                    return False
        return True


if not os.path.isfile("./" + RUN_DIR + "/pickledPops/Gen_0.pickle"):

    random.seed(SEED)
    np.random.seed(SEED)

    my_sim = Sim(dt_frac=DT_FRAC,
                 simulation_time=SIM_TIME,
                 fitness_eval_init_time=INIT_TIME)

    my_env = Env(temp_amp=TEMP_AMP, frequency=FREQ, density=DENSITY)

    my_objective_dict = ObjectiveDict()
    my_objective_dict.add_objective(name="fitness",
                                    maximize=True,
                                    tag="<normAbsoluteDisplacement>")
    if AGE_PROTECTION:
        my_objective_dict.add_objective(name="age", maximize=False, tag=None)

    my_pop = Population(my_objective_dict,
                        MyGenotype,
                        MyPhenotype,
                        pop_size=POP_SIZE)

    my_optimization = ParetoOptimization(my_sim, my_env, my_pop)
    my_optimization.run(max_hours_runtime=MAX_TIME,
示例#3
0
                        self.genotype.orig_size_xyz) * min_percent_full:
                    return False
                # Discarding the robot if it doesn't have at least a given percentage of muscles (materials 3 and 4)
                if count_occurrences(state, [3, 4]) < np.product(
                        self.genotype.orig_size_xyz) * min_percent_muscle:
                    return False
        return True


# Setting up the simulation object
my_sim = Sim(dt_frac=DT_FRAC,
             simulation_time=SIM_TIME,
             fitness_eval_init_time=INIT_TIME)

# Setting up the environment object
my_env = Env(sticky_floor=0, time_between_traces=0)
# Here we tell the physics engine that we want to simulate a fluid environment
my_env.add_param("fluid_environment", 1, "<FluidEnvironment>")
my_env.add_param("aggregate_drag_coefficient", AGGREGATE_DRAG_COEF,
                 "<AggregateDragCoefficient>")

# Now specifying the objectives for the optimization.
# Creating an objectives dictionary
my_objective_dict = ObjectiveDict()

# Adding an objective named "fitness", which we want to maximize. This information is returned by Voxelyze
# in a fitness .xml file, with a tag named "NormFinalDist"
my_objective_dict.add_objective(name="fitness",
                                maximize=True,
                                tag="<normAbsoluteDisplacement>")
                           symmetric=False))
        self.to_phenotype_mapping.add_map(name="init_offset",
                                          tag="<PhaseOffset>")


if not os.path.isfile("./" + RUN_DIR + "/checkpoint.pickle"):

    random.seed(SEED)
    np.random.seed(SEED)

    my_sim = Sim(dt_frac=DT_FRAC,
                 simulation_time=SIM_TIME,
                 min_temp_fact=MIN_TEMP_FACT,
                 fitness_eval_init_time=INIT_TIME)

    my_env = Env(temp_amp=TEMP_AMP)
    my_env.add_param("growth_amplitude", GROWTH_AMPLITUDE, "<GrowthAmplitude>")

    my_objective_dict = ObjectiveDict()
    my_objective_dict.add_objective(name="fitness",
                                    maximize=True,
                                    tag="<finalDistY>")
    my_objective_dict.add_objective(name="age", maximize=False, tag=None)

    my_pop = Population(my_objective_dict,
                        MyGenotype,
                        Phenotype,
                        pop_size=POP_SIZE)

    my_optimization = ParetoOptimization(my_sim, my_env, my_pop)
    my_optimization.run(max_hours_runtime=MAX_TIME,
示例#5
0
        self.to_phenotype_mapping.add_map(name="init_size",
                                          tag="<InitialVoxelSize>")


if not os.path.isfile("./" + RUN_DIR + "/pickledPops/Gen_0.pickle"):

    random.seed(SEED)
    np.random.seed(SEED)

    my_sim = Sim(dt_frac=DT_FRAC,
                 simulation_time=SIM_TIME,
                 fitness_eval_init_time=INIT_TIME,
                 min_temp_fact=MIN_TEMP_FACT)

    my_env = Env(temp_amp=TEMP_AMP,
                 frequency=FREQ,
                 muscle_stiffness=STIFFNESS,
                 growth_amp=GROWTH_AMPLITUDE)

    my_objective_dict = ObjectiveDict()
    my_objective_dict.add_objective(name="fitness",
                                    maximize=True,
                                    tag=FITNESS_TAG)
    my_objective_dict.add_objective(name="age", maximize=False, tag=None)

    my_pop = Population(my_objective_dict,
                        MyGenotype,
                        Phenotype,
                        pop_size=POP_SIZE)

    my_optimization = ParetoOptimization(my_sim, my_env, my_pop)
    my_optimization.run(max_hours_runtime=MAX_TIME,
示例#6
0
                                          tag="<PhaseOffset>")


MyGenotype.NET_DICT = {"material": post_damage_shape}

if not os.path.isfile("./" + RUN_DIR + "/pickledPops/Gen_0.pickle"):

    random.seed(SEED)
    np.random.seed(SEED)

    my_sim = Sim(dt_frac=DT_FRAC,
                 simulation_time=SIM_TIME,
                 fitness_eval_init_time=INIT_TIME,
                 min_temp_fact=MIN_TEMP_FACT)

    my_env = Env(temp_amp=TEMP_AMP, frequency=FREQ, muscle_stiffness=STIFFNESS)

    my_objective_dict = ObjectiveDict()
    my_objective_dict.add_objective(name="fitness",
                                    maximize=True,
                                    tag=FITNESS_TAG)
    my_objective_dict.add_objective(name="age", maximize=False, tag=None)

    my_pop = Population(my_objective_dict,
                        MyGenotype,
                        Phenotype,
                        pop_size=POP_SIZE)

    my_optimization = ParetoOptimization(my_sim, my_env, my_pop)
    my_optimization.run(max_hours_runtime=MAX_TIME,
                        max_gens=MAX_GENS,
示例#7
0
                           scale=MUT_SCALE,
                           symmetric=False))
        self.to_phenotype_mapping.add_map(name="init_offset",
                                          tag="<PhaseOffset>")


random.seed(SEED)
np.random.seed(SEED)

my_sim = Sim(dt_frac=DT_FRAC,
             simulation_time=SIM_TIME,
             min_temp_fact=MIN_TEMP_FACT,
             fitness_eval_init_time=INIT_TIME)

my_env = Env(temp_amp=TEMP_AMP,
             falling_prohibited=STOP_AFTER_FALLING,
             time_between_traces=TIME_BETWEEN_TRACES)
my_env.add_param("growth_amplitude", GROWTH_AMPLITUDE, "<GrowthAmplitude>")
my_env.add_param("save_traces", int(SAVE_TRACES), "<SaveTraces>")

my_objective_dict = ObjectiveDict()
my_objective_dict.add_objective(name="fitness",
                                maximize=True,
                                tag="<finalDistY>")
my_objective_dict.add_objective(name="age", maximize=False, tag=None)
my_objective_dict.add_objective(name="lifetime",
                                maximize=True,
                                tag="<Lifetime>",
                                logging_only=True)
my_objective_dict.add_objective(name="trace",
                                maximize=True,
示例#8
0
                                          tag="<FinalVoxelSize>")


if not os.path.isfile("./" + RUN_DIR + "/pickledPops/Gen_0.pickle"):

    random.seed(SEED)
    np.random.seed(SEED)

    my_sim = Sim(dt_frac=DT_FRAC,
                 simulation_time=SIM_TIME,
                 min_temp_fact=MIN_TEMP_FACT,
                 fitness_eval_init_time=INIT_TIME,
                 afterlife_time=AFTERLIFE_TIME,
                 mid_life_freeze_time=MID_LIFE_FREEZE_TIME)

    my_env = Env(temp_amp=TEMP_AMP, time_between_traces=TIME_BETWEEN_TRACES)
    my_env.add_param("growth_amplitude", GROWTH_AMPLITUDE, "<GrowthAmplitude>")
    my_env.add_param("min_growth_time", MIN_GROWTH_TIME, "<MinGrowthTime>")
    my_env.add_param("falling_prohibited", int(FALLING_PROHIBITED),
                     "<FallingProhibited>")

    my_env.add_param("norm_dist_by_vol", int(NORMALIZE_DIST_BY_VOL),
                     "<NormDistByVol>")
    my_env.add_param("normalization_exponent", int(NORMALIZATION_EXPONENT),
                     "<NormalizationExponent>")
    my_env.add_param("save_traces", int(SAVE_TRACES), "<SaveTraces>")

    my_objective_dict = ObjectiveDict()
    my_objective_dict.add_objective(name="fitness",
                                    maximize=True,
                                    tag="<NormFinalDist>")
示例#9
0
        self.add_network(DirectEncoding(output_node_name="init_offset", orig_size_xyz=IND_SIZE,
                                        scale=MUT_SCALE, symmetric=False))
        self.to_phenotype_mapping.add_map(name="init_offset", tag="<PhaseOffset>")

        self.add_network(DirectEncoding(output_node_name="final_offset", orig_size_xyz=IND_SIZE,
                                        scale=MUT_SCALE, symmetric=False))
        self.to_phenotype_mapping.add_map(name="final_offset", tag="<FinalPhaseOffset>")


random.seed(SEED)
np.random.seed(SEED)

my_sim = Sim(dt_frac=DT_FRAC, simulation_time=SIM_TIME, min_temp_fact=MIN_TEMP_FACT,
             fitness_eval_init_time=INIT_TIME)

my_env = Env(temp_amp=TEMP_AMP, falling_prohibited=STOP_AFTER_FALLING)
my_env.add_param("growth_amplitude", GROWTH_AMPLITUDE, "<GrowthAmplitude>")

my_objective_dict = ObjectiveDict()
my_objective_dict.add_objective(name="fitness", maximize=True, tag="<finalDistY>")
my_objective_dict.add_objective(name="lifetime", maximize=True, tag="<Lifetime>", logging_only=True)
my_objective_dict.add_objective(name="age", maximize=False, tag=None)

my_pop = Population(my_objective_dict, MyGenotype, Phenotype, pop_size=POP_SIZE)

names = [k for k, v in NET_DICT.items()]
nets = [v for k, v in NET_DICT.items()]
my_pop.replace_ind_networks(names, nets)

my_optimization = SetMutRateOptimization(my_sim, my_env, my_pop, MUT_NET_PROB_DIST)
my_optimization.run(max_hours_runtime=MAX_TIME, max_gens=MAX_GENS, num_random_individuals=NUM_RANDOM_INDS,
                        state,
                    [3, 4]) < np.sum(state > 0) * min_percent_muscle:
                    return False

        return True


# Setting up the simulation object
my_sim = Sim(dt_frac=DT_FRAC,
             simulation_time=SIM_TIME,
             fitness_eval_init_time=INIT_TIME)

# Setting up the environment object
my_env = Env(obstacles=True,
             ind_size=IND_SIZE,
             env_size=ENV_SIZE,
             init_num_obstacles=INIT_NUM_OBSTACLES,
             time_between_traces=0.1)

# Now specifying the objectives for the optimization.
# Creating an objectives dictionary
my_objective_dict = ObjectiveDict()
'''
# Adding an objective named "L-coeff", which we want to maximize. This information is returned by Voxelyze
# in a fitness .xml file, with a tag named "LCoefficient"
my_objective_dict.add_objective(name="fitness", maximize=True, tag="<LCoefficient>")
'''

# Adding an objective named "fitness", which we want to maximize. This information is returned by Voxelyze
# in a fitness .xml file, with a tag named "MaxXYDist"
my_objective_dict.add_objective(name="fitness",
                    return False
                # Discarding the robot if it doesn't have at least a given percentage of muscles (materials 3 and 4)
                if count_occurrences(state, [3, 4]) < np.product(
                        self.genotype.orig_size_xyz) * min_percent_muscle:
                    return False
        return True


# Setting up the simulation object
my_sim = Sim(dt_frac=DT_FRAC,
             simulation_time=SIM_TIME,
             fitness_eval_init_time=INIT_TIME)

# Setting up the environment object
my_env = Env(sticky_floor=0,
             time_between_traces=0.5,
             save_traces=1,
             novelty_based=True)

# Now specifying the objectives for the optimization.
# Creating an objectives dictionary
my_objective_dict = ObjectiveDict()

# Adding an objective named "fitness", which we want to maximize. This information is returned by Voxelyze
# in a fitness .xml file, with a tag named "NormFinalDist"
my_objective_dict.add_objective(name="fitness",
                                maximize=True,
                                tag="<NormFinalDist>")

my_objective_dict.add_objective(name="energy",
                                maximize=False,
                                tag=None,