Open MariiaMelnychenko opened 1 month ago
Thanks for opening a PR! Could you translate the Ukrainian part to English?
I’m not sure if I want to alter the classic Game of Life rules themselves, but the “noise” concept could be interesting.
Thanks for translating! The PR is appreciated.
However, currently it changes too much unnecessarily. I'm also not fully convinced of changing such a classic, well defined model, like Conway's Game of Life.
The concept of noise/mutations is interesting though. I think you can go two ways with this:
These are interesting concepts. Only maybe is this not the model to apply it on.
@projectmesa/maintainers would appreciate some other opinions, especially on in which models this might be useful (if at all).
@MariiaMelnychenko I would love to hear the background what you're using Mesa for, as part of which project/course/interest. Might help us help you better :)
Thanks for translating! The PR is appreciated.
However, currently it changes too much unnecessarily. I'm also not fully convinced of changing such a classic, well defined model, like Conway's Game of Life.
The concept of noise/mutations is interesting though. I think you can go two ways with this:
- "random mutations" (what you currently implemented): Each Agent can have a certain chance for a certain property to change each timestep
"communication noise": There's a chance that either information is lost or the decision is make incorrectly when an action if performed.
- A neighbour cell is read incorrectly
- The rule isn't applied (or inversed)
These are interesting concepts. Only maybe is this not the model to apply it on.
@projectmesa/maintainers would appreciate some other opinions, especially on in which models this might be useful (if at all).
@MariiaMelnychenko I would love to hear the background what you're using Mesa for, as part of which project/course/interest. Might help us help you better :)
As they are parameters, I think we should allow it. This can allow folks to explore the model and it underlying concepts more.
So I would say it defaults to the Conways classical model, but now has sliders/paramters to allow users to explore different variants.
You can always fork the classic model into a separate, adjacent model in another folder. Adding variations to the classic model will strain bandwidth of the learner who is trying to understand the essence of the model.
In short, I think it's better to create a separate model, named "conways_game_of_life_advanced", where any variations and extensions can be added.
Since I have been going through all the examples for the grid spaces, I feel that we have too many examples and variants of essentially the same model.
I recall a discussion on this before, but my idea would be to have a carefully curated set of famous examples in the main mesa repo (i.e., wolf-sheep, Schelling, Epstein civil violence, sugarscape, Axelrod evolution of collaboration, el farol, forest fire, Conway game of life, and virus on a network), and have a not actively maintained gallery for show and tell. We could do a template for the gallery that includes an environment file to enhance future reproducibility. The curated examples would be used for integration testing and be kept in sync with the main branch at all times.
Conceptually - there is the possibility of an infinite number of models that can be created off of one model. I like what is being submitted here. During today's dev meeting, we discussed moving the core examples back to the main repo -- what if we created a Conway's folder with a readme that pointed to the core example (when it is moved), but also included this as an alternate example, which highlights X. One day if we have 10 versions -- the readme also lists each version and why you might want to look or consider it. Think of it like a writing assignment for 10 people come up with 10 different approaches. Thoughts?
A randomize_new_cells parameter has been added to the code, which allows the user to manually adjust the probability of randomly spawning new cells at each simulation step. This option can be adjusted through the user interface using a slider. This allows you to control the dynamics of the model and experiment with the frequency of the appearance of new cells during the simulation.
A new logic was also added to the game rules: if a cell has more than 4 living neighbors, it "dies" from overpopulation. This adds more realistic behavior to the game, because cells can die due to oversaturation of living neighbors. Cells with 2 or 3 neighbors remain alive, and dead cells with exactly 3 neighbors come to life.