Repository for core AADI rover domain. The rover domain runs as an AI gym style environment. The "step" function in the rover domain takes in rover actions from the neural networks and returns the next state and the global reward for that state. Rover actions are formatted as an array that is (n x a) where n is the number of rovers and a is the number of action outputs from the network. The global reward output at each step is an array showing the reward returned by each POI. This array is (p x 1) where p is the number of POI in the environment.
Core rover domain includes the following: Rover and POI class definitions in RoverDomainCore Rover Domain environment class (which includes global reward function) in RoverDomainCore/rover_domain.py Definitions for Difference Rewards and D++ Rewards in RoverDomainCore/reward_functions.py A basic fully connected, feedforward neural network for rovers in NeuralNetworks/neural_network.py A basic CCEA with several selection strategies in EvolutionaryAlgorithms/ccea.py Typical parameters used for test setup in parameters.py Supporting functions in global_functions.py A script that creates a rover domain environment with specified numbers of POI and Roves in create_world.py An example of how to train rovers in rover_training.py
To get started:
Rover policies will be saved as pickle files in Rover_Policies directory.
To use this codebase you will need the following for the Python implementation: