-
Notifications
You must be signed in to change notification settings - Fork 92
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
Crash when all individuals are invalid #33
Comments
Hmm, an interesting one. Crossover currently doesn't allow invalids to be created (i.e. crossover will continue until all children in the population are valid), but there's no such catch for mutation. Should we implement something like that for mutation? |
I got same issue with my initialiser stuff when I forgot to account for
unit productions
…On Wed 30 Nov 2016 at 13:55, Michael Fenton ***@***.***> wrote:
Hmm, an interesting one. Crossover currently doesn't allow invalids to be
created (i.e. crossover will continue until all children in the population
are valid), but there's no such catch for mutation. Should we implement
something like that?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
<https://github.com/jmmcd/PonyGE2/issues/33#issuecomment-263878911>, or mute
the thread
<https://github.com/notifications/unsubscribe-auth/AA8zuhexmM8cgzGWrEdmm5Gysz6Q65X8ks5rDYBhgaJpZM4LANsT>
.
|
Probably the default should be to allow crossover to create invalids since that is the published algorithm. Maybe add switches |
Switch added for --no_crossover_invalids. However, mutation is not quite so easy to put various checks in place (e.g. limitations on max depth/nodes/invalids) as the current mutation is done with a list(map()) function, necessitating a bit more thought to sort out. |
Mutation now has the same checks as crossover. All checks have been moved to |
Setting the default fitness is now the responsibility of each individual fitness function. By default, we have set the |
We should state somewhere that invalids are excluded from stats.
…On 15 February 2017 at 14:35, Michael Fenton ***@***.***> wrote:
Setting the default fitness is now the responsibility of each individual
fitness function. By default, we have set the default_fitness value of
each fitness function to numpy.NaN. This allows us to calculate
population statistics over the entire population by filtering out these
np.NaN values using numpy's np.nanmax(), np.nanmin(), and np.nanmean()
functions. PonyGE will no longer crash if all individuals are invalid.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<https://github.com/jmmcd/PonyGE2/issues/33#issuecomment-280026570>, or mute
the thread
<https://github.com/notifications/unsubscribe-auth/AA8zusU9RxzfMw71WAabD6jPT8ReXfeUks5rcw0qgaJpZM4LANsT>
.
|
All this info should be in the |
Yep, readme is fine just wanna make sure we do say it somewhere :D
…On 15 February 2017 at 14:38, Michael Fenton ***@***.***> wrote:
All this info should be in the README I presume. RTFM issue...
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<https://github.com/jmmcd/PonyGE2/issues/33#issuecomment-280027418>, or mute
the thread
<https://github.com/notifications/unsubscribe-auth/AA8zujeihdnNAgfKfEU76IrURyLDFMHfks5rcw3qgaJpZM4LANsT>
.
|
Agreed. It's gonna take a fair while to ensure everything is in the |
Fingers crossed i get the pc running in the meeting room before then should
make code review a bit easier :D
…On 15 February 2017 at 14:44, Michael Fenton ***@***.***> wrote:
Agreed. It's gonna take a fair while to ensure everything is in the README.
When the code review is being done it might be an idea to check that every
aspect is documented in the README somehow...
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<https://github.com/jmmcd/PonyGE2/issues/33#issuecomment-280028994>, or mute
the thread
<https://github.com/notifications/unsubscribe-auth/AA8zuqeUTkYPEmvOFdIMqDPadwT9EKNwks5rcw9BgaJpZM4LANsT>
.
|
In stats.py, we have lines like:
(Also
min
, andave
.) These will throw an error if all individuals in a population are invalid. I've seen this a few times in the hill-climbing search loop, but not in the default search loop. Maybe there's some protection against all becoming invalid when running the default search loop?The text was updated successfully, but these errors were encountered: