Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Species exploration #94

Open
wants to merge 7 commits into
base: development
Choose a base branch
from
Open

Conversation

portaloffreedom
Copy link
Member

I added a new experiment
and made some fixes in the incongruences of the snapshot creation

In this experiment I want to use speciation only for the first n generations and then transition to a more traditional evolutionary algorithm with no species.

- added conversion methods from and to speciated populations
- fixed the incoungrences in the speciated and non speciated snapshots
this experiments tests how much we can use the species division as early exploration than later exploited by a traditional evolutionary algorithm
- moved morphology_compatibility into the main code, as it can be shared by multiple experiments
@portaloffreedom portaloffreedom self-assigned this May 15, 2020
@portaloffreedom portaloffreedom changed the base branch from master to development May 15, 2020 14:00
Copy link

@DaanZ DaanZ left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would use more clear names for the new functions, but the rest seems fine to merge now.

@@ -25,6 +25,7 @@ def __init__(self,
next_species_id: int = 1):
# TODO analyzer
super().__init__(config, simulator_queue, analyzer_queue, next_robot_id)
self.config: PopulationSpeciatedConfig = self.config # this is only for correct type hinting
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Too bad we have to do it this way...

@@ -82,6 +83,11 @@ async def next_generation(self,

return new_population

def into_population(self) -> Population:
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Into population is a weird name to me for a function.

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe get_regular_population?

@@ -172,6 +175,49 @@ async def next_generation(self,

return new_population

def into_speciated_population(self,
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

get_speciated_population?

generation_folder = self.config.experiment_management.generation_folder(gen_num)
for _, _, files in os.walk(generation_folder):
for file in files:
test = extract_id.search(file)
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

test?

portaloffreedom and others added 4 commits May 18, 2020 12:27
and renamed unintuitive (unused) speciated_population_management function
and added a bit more documentation
@portaloffreedom portaloffreedom added the new experiment New experiments not done yet label Nov 18, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
new experiment New experiments not done yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants