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

[P2 | 8h] Create a complex world #4

Closed
andypyrope opened this issue Apr 4, 2018 · 0 comments
Closed

[P2 | 8h] Create a complex world #4

andypyrope opened this issue Apr 4, 2018 · 0 comments
Assignees
Labels
--world-ga [ingenious] Worlds / GA (generic algorithms) enhancement New feature or request invalid This doesn't seem right

Comments

@andypyrope
Copy link
Owner

andypyrope commented Apr 4, 2018

NOTE: This world probably won't be useful for actual straightforward evolution. It's mostly just for fun, hence the low priority.

Organism constants (DNA-defined)

  • Genders (g - [0; 1)) - male organisms choosing female ones, after which female ones filter them out
    • Gender can be in the form of a double in the [0; 1) range. Every generation all organisms pick a temporary effective gender - male, female or asexual. The chance, if the gender coefficient is g, is as follows:
      • female: Math.max(0.5 - g, 0.0) -- chooses males based on their resources/fitness; receives resources from the chosen males but when giving birth, loses a preset part of her resources; doesn't know how much the males give,
      • male: Math.max(g - 0.5, 0.0) -- chooses females based on their fitness; gives resources to the ones who choose him
      • asexual: otherwise (the chance is technically 1.0 - Math.abs(0.5 - g))
  • Food/resources (r - (0; 1]) - every generation a set amount is given away and spread across the organisms, with the fittest ones receiving the most resources; an organism with 0 food dies; studying (training its neural network, etc.) costs resources. Any resources greater than 1.0 at the end of a generation are cut down to 1.0.
  • Care coefficient (c - [0; 1)). This one has 2 applications:
    • what part of their resources a parent gives to their child every generation
    • what part of their resources a male gives to a female
  • Studying coefficient (s - [0; 1)) - how much of their resources an organism is willing to spend for studying each generation
  • Promiscuity (p - [0; 1)) - what ratio of the available mates an organism would choose

World constants

  • Hunger rate (H - [0; 1)) - the amount of resources taken away from every organism (indiscriminately) each generation
  • N (N - natural number) - the average number of organisms. The resources given away each generation are equal to h * n. The number of organisms can go up or down but they should balance out around n
  • Max studying complexity (S - big natural number, e.g. 1 000 000) - the max number of computations an organism is allowed to make. The price of x computations is equal to x / S. Every generation an organism decides to allocate r * s resources for studying. If one studying iteration consists of x computations, then the organism will make (r * s) / (x / S) studying iterations. Any leftover resources remain in the organism.

TODO: Figure out how to make resource distribution fair. Another world constant may be necessary for this.

@andypyrope andypyrope added enhancement New feature or request --world-ga [ingenious] Worlds / GA (generic algorithms) labels Apr 4, 2018
@andypyrope andypyrope self-assigned this Apr 4, 2018
@andypyrope andypyrope added this to the [0.2.0] Beta milestone Apr 4, 2018
@andypyrope andypyrope removed this from the [0.2.0] Beta milestone Apr 26, 2018
@andypyrope andypyrope added the invalid This doesn't seem right label Apr 26, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
--world-ga [ingenious] Worlds / GA (generic algorithms) enhancement New feature or request invalid This doesn't seem right
Projects
None yet
Development

No branches or pull requests

1 participant