Skip to content

Evolution Automator

Tiago Rodrigues edited this page Mar 22, 2015 · 6 revisions

EvolutionAutomator is a side-project that was created to facilitate launching complex and/or large numbers of experiments. It allows you to create a single configuration file that runs several runs of one or more different experiments. Another interesting feature is that it performs a post-evaluation of the best controllers from each evolutionary run over a large number of samples, allowing you to determine which run is has the best performance.

Below is a general overview of the Automator's configuration file:

%runs:5
%maxevolutions:1

--robots
 	classname=simulation.robot.DifferentialDriveRobot,
	sensors=(
		PreyCarriedSensor_1=(
			classname=simulation.robot.sensors.PreyCarriedSensor,
			id=1
		),
		SimpleNestSensor_2=(
			classname=simulation.robot.sensors.SimpleNestSensor,
			range=2,
			numbersensors=4,
			id=2
		),
		SimplePreySensor_3=(
			classname=simulation.robot.sensors.PreySensor,
			numbersensors=4,
			id=3
		)
	),
	actuators=(
		TwoWheelActuator_1=(
			classname=simulation.robot.actuators.TwoWheelActuator,
			id=1
		),
		PreyPickerActuator_2=(
			classname=simulation.robot.actuators.PreyPickerActuator,
			id=2
		)
	)

--controllers
 	classname=evolutionaryrobotics.neuralnetworks.NeuralNetworkController,
	network=(
		classname=evolutionaryrobotics.neuralnetworks.CTRNNMultilayer
	)


--executor classname=taskexecutor.ParallelTaskExecutor

--evolution classname=evolutionaryrobotics.evolution.GenerationalEvolution

--evaluation classname=evolutionaryrobotics.evaluationfunctions.ForagingEvaluationFunction

--environment classname=RoundForageEnvironment, steps=1000

%pop {
        --population classname=evolutionaryrobotics.populations.MuLambdaPopulation
}

#forage{
        %pop
        --postevaluation samples=100
}