schrum2 / MM-NEATv2

MM-NEAT version 2.0 is no longer supported. Please get MM-NEAT 3+ from https://github.com/schrum2/MM-NEAT
Other
11 stars 5 forks source link

Advanced Hall of Fame Maintenance #438

Closed schrum2 closed 7 years ago

schrum2 commented 7 years ago

A Hall of Fame can be maintained as a "Pareto Archive". Simply put, this means that any member of the hall of fame that can be defeated by all other members of the hall of fame should be removed. Since the hall of fame is implemented in a general fashion not specific to board games, this should be generalized to mean that any agent whose fitness is less than that of its opponent, for all opponents, should be removed. An opponent that can be beaten by everyone is clearly not worth keeping around.

Some clarification: if an agent ties against one opponent (equal fitness) and loses to all others (lower fitness) then it is also "dominated" and should be removed. However, any individual that can beat even one other member of the hall of fame should be kept.

Using this should be a Parameter option. If used, then every time a new individual is added, it will play against the whole hall of fame. This approach probably necessitates a clever way of tracking all fitness information too.

DarwinJohnson commented 7 years ago

Added some print statements to the Hall Of Fame for troubleshooting purposes. Will run the Othello HOF-Pareto Batch File overnight. If the File successfully runs over that time, then this Issue can be closed. If not, then the final changes will be made tomorrow to prevent it from crashing.

DarwinJohnson commented 7 years ago

Pareto Hall Of Fame Batch File ran successfully for 89 Generations before being stopped manually. The Pareto Pruning Hall Of Fame appears to be working.