-
-
Notifications
You must be signed in to change notification settings - Fork 481
Seed of Random Number Generators #70
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
Labels
enhancement
New feature or request
Comments
I am here for the same reason, |
@ahmedfgad Is there a way to set a seed/random_state ? |
I found that we can fix the global random seed by setting two random seeds, numpy and python. import numpy as np
import random
np.random.seed(x)
random.seed(x) |
ahmedfgad
added a commit
that referenced
this issue
Sep 9, 2022
1. Raise an exception if the sum of fitness values is zero while either roulette wheel or stochastic universal parent selection is used. #129 2. Initialize the value of the `run_completed` property to `False`. #122 3. The values of these properties are no longer reset with each call to the `run()` method `self.best_solutions, self.best_solutions_fitness, self.solutions, self.solutions_fitness`: #123. Now, the user can have the flexibility of calling the `run()` method more than once while extending the data collected after each generation. Another advantage happens when the instance is loaded and the `run()` method is called, as the old fitness value are shown on the graph alongside with the new fitness values. Read more in this section: [Continue without Loosing Progress](https://pygad.readthedocs.io/en/latest/README_pygad_ReadTheDocs.html#continue-without-loosing-progress) 4. Thanks [Prof. Fernando Jiménez Barrionuevo](http://webs.um.es/fernan) (Dept. of Information and Communications Engineering, University of Murcia, Murcia, Spain) for editing this [comment](https://github.com/ahmedfgad/GeneticAlgorithmPython/blob/5315bbec02777df96ce1ec665c94dece81c440f4/pygad.py#L73) in the code. 5315bbe 5. A bug fixed when `crossover_type=None`. 6. Support of elitism selection through a new parameter named `keep_elitism`. It defaults to 1 which means for each generation keep only the best solution in the next generation. If assigned 0, then it has no effect. Read more in this section: [Elitism Selection](https://pygad.readthedocs.io/en/latest/README_pygad_ReadTheDocs.html#elitism-selection). #74 7. A new instance attribute named `last_generation_elitism` added to hold the elitism in the last generation. 8. A new parameter called `random_seed` added to accept a seed for the random function generators. Credit to this issue #70 and [Prof. Fernando Jiménez Barrionuevo](http://webs.um.es/fernan). Read more in this section: [Random Seed](https://pygad.readthedocs.io/en/latest/README_pygad_ReadTheDocs.html#random-seed). 9. Editing the `pygad.TorchGA` module to make sure the tensor data is moved from GPU to CPU. Thanks to Rasmus Johansson for opening this pull request: ahmedfgad/TorchGA#2
ahmedfgad
added a commit
that referenced
this issue
Sep 9, 2022
1. Raise an exception if the sum of fitness values is zero while either roulette wheel or stochastic universal parent selection is used. #129 2. Initialize the value of the `run_completed` property to `False`. #122 3. The values of these properties are no longer reset with each call to the `run()` method `self.best_solutions, self.best_solutions_fitness, self.solutions, self.solutions_fitness`: #123. Now, the user can have the flexibility of calling the `run()` method more than once while extending the data collected after each generation. Another advantage happens when the instance is loaded and the `run()` method is called, as the old fitness value are shown on the graph alongside with the new fitness values. Read more in this section: [Continue without Loosing Progress](https://pygad.readthedocs.io/en/latest/README_pygad_ReadTheDocs.html#continue-without-loosing-progress) 4. Thanks [Prof. Fernando Jiménez Barrionuevo](http://webs.um.es/fernan) (Dept. of Information and Communications Engineering, University of Murcia, Murcia, Spain) for editing this [comment](https://github.com/ahmedfgad/GeneticAlgorithmPython/blob/5315bbec02777df96ce1ec665c94dece81c440f4/pygad.py#L73) in the code. 5315bbe 5. A bug fixed when `crossover_type=None`. 6. Support of elitism selection through a new parameter named `keep_elitism`. It defaults to 1 which means for each generation keep only the best solution in the next generation. If assigned 0, then it has no effect. Read more in this section: [Elitism Selection](https://pygad.readthedocs.io/en/latest/README_pygad_ReadTheDocs.html#elitism-selection). #74 7. A new instance attribute named `last_generation_elitism` added to hold the elitism in the last generation. 8. A new parameter called `random_seed` added to accept a seed for the random function generators. Credit to this issue #70 and [Prof. Fernando Jiménez Barrionuevo](http://webs.um.es/fernan). Read more in this section: [Random Seed](https://pygad.readthedocs.io/en/latest/README_pygad_ReadTheDocs.html#random-seed). 9. Editing the `pygad.TorchGA` module to make sure the tensor data is moved from GPU to CPU. Thanks to Rasmus Johansson for opening this pull request: ahmedfgad/TorchGA#2
@ekerazha @dellannadavide @keechang-choi @PierD86 This is supported in PyGAD 2.18.0. Thanks for your suggestions. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Hi,
first of all, thank you for the excellent work you do.
When experimenting for scientific research purposes, it is good practice to specify seeds for random number generators. This allows to support exact results replicability.
I could not find the option to specify the seed of the random generators in the current library, for example when initializing the population.
I was wondering if I am missing something or if this is a potential enhancement of the current library.
Thank you.
The text was updated successfully, but these errors were encountered: