Statistics | We have 1675 registered users The newest registered user is dejo123
Our users have posted a total of 30851 messages in 1411 subjects
|
Who is online? | In total there are 9 users online :: 0 Registered, 0 Hidden and 9 Guests None Most users ever online was 443 on Sun Mar 17, 2013 5:41 pm |
Latest topics | » THIS FORUM IS NOW OBSOLETE by NickTheNick Sat Sep 26, 2015 10:26 pm
» To all the people who come here looking for thrive. by NickTheNick Sat Sep 26, 2015 10:22 pm
» Build Error Code::Blocks / CMake by crovea Tue Jul 28, 2015 5:28 pm
» Hello! I can translate in japanese by tjwhale Thu Jul 02, 2015 7:23 pm
» On Leave (Offline thread) by NickTheNick Wed Jul 01, 2015 12:20 am
» Devblog #14: A Brave New Forum by NickTheNick Mon Jun 29, 2015 4:49 am
» Application for Programmer by crovea Fri Jun 26, 2015 11:14 am
» Re-Reapplication by The Creator Thu Jun 25, 2015 10:57 pm
» Application (programming) by crovea Tue Jun 23, 2015 8:00 am
» Achieving Sapience by MitochondriaBox Sun Jun 21, 2015 7:03 pm
» Microbe Stage GDD by tjwhale Sat Jun 20, 2015 3:44 pm
» Application for Programmer/ Theorist by tjwhale Wed Jun 17, 2015 9:56 am
» Application for a 3D Modeler. by Kaiju4u Wed Jun 10, 2015 11:16 am
» Presentation by Othithu Tue Jun 02, 2015 10:38 am
» Application of Sorts by crovea Sun May 31, 2015 5:06 pm
» want to contribute by Renzope Sun May 31, 2015 12:58 pm
» Music List Thread (Post New Themes Here) by Oliveriver Thu May 28, 2015 1:06 pm
» Application: English-Spanish translator by Renzope Tue May 26, 2015 1:53 pm
» Want to be promoter or project manager by TheBudderBros Sun May 24, 2015 9:00 pm
» A new round of Forum Revamps! by Oliveriver Wed May 20, 2015 11:32 am
|
|
| Population dynamics | |
|
+10untrustedlife hypoxanthine scorpion268 Daniferrito gdt1320 Rorsten594 The Uteen ~sciocont Mysterious_Calligrapher Seregon 14 posters | |
Author | Message |
---|
~sciocont Overall Team Lead
Posts : 3406 Reputation : 138 Join date : 2010-07-06
| Subject: Re: Population dynamics Thu Oct 11, 2012 6:21 pm | |
| Excellent post. With only a month of calculus under my belt I'm able to understand quite well what you're putting forth. I'd suggest that we simply make each generation equal to one year, since in game time, you'll be playing through a representative sample of yearly conditions, so disparity in the transit time of planets doesn't have a huge effect on the length of a year in real playtime.
For those checking up on this thread, essentially what auto-evo is supposed to do is create a chaotic ecosystem. seregon's plots show that over time theoretical populations settle into stable oscillation- the goal of each ingame population is to break the stable oscillation by adding to its members. Therefore, We won't be seeing portions of even oscillation. Also (seregon as well) remember that the procedure for choosing species who are mutated is included already in the Auto-Evo documentation, so we needn't worry too much about who is getting mutated when right now, but on what effects the mutations will have. The best way to represent mixed and rife effects of mutation is to include many different parameters in the descriptions of organisms, so it comes as no surprise that the auto-evo right now is imperfect.
| |
| | | Seregon Regular
Posts : 263 Reputation : 37 Join date : 2011-08-10 Location : UK
| Subject: Re: Population dynamics Fri Oct 12, 2012 7:30 am | |
| Thanks Scio. Good to know it's not too difficult to understand, I don't think the math gets much more complicated unless I start doing more in-depth analysis (which are nasty even for me, so I'll avoid doing so if possible). The only thing I may have to do at some point is use vector/matrix calculus instead, but I can give a very quick intro on that when needed.
I've been giving a lot of thought to how long generations should be, or more specifically, how often we should allow mutations. The major problem is this: if we have a generation be one year (for simplicity, lets say that year lines up perfectly with the year of the planet in quetion), then we'll always have a new generation at the same time of year. If that time of year is winter, we'll end up with a lot of species very well adapted to the cold, but not the rest of the year. That's not to say they won't suffer for it, the population dynamics are still calculated for the whole year, but the fitness benifit of mutations is (currently) only calculated at the end of each generation.
There are various solutions to this. The simplest is to have generations be much shorter (in earth terms, about a week would work nicely), and tweak down the mutation rates to be much lower. This has some pretty poor consequences in terms of computation, so isn't ideal. Its something we'll have to think about anyway at some point, when we decide what time scale the player will be experiencing, but this is something we don't need to figure out just yet.
The second option is to try and summarise the fitness benifit of a mutation across the whole generation. That's not exactly trivial, and I've spent a lot of time thinking about how it could be done. I'm not there yet, but I'm fairly sure it is possible, and I'm hoping to use it in the 3rd prototype in a few weeks time.
In terms of *who* gets mutated, I know we have a pretty good concept for working that out. For the time being, I'm assuming (for simplicity) that everyone gets to mutate every generation, and I'm only worrying about what they mutate.
As you say, they more parameters we have, the more complex the mutations can be, and the more diverse our species can be. I expect theres a limit to this idea, and an optimum number of parameters to use (especially when we consider computation). I am, however, certain that the 7 I'm using right now are no where near enough.
Regarding chaos and oscillations, it would actually be nice to see some oscillations, as that's exactly what we see in the real world. Those oscillations will tend to drift as species adapt, and some mutations may break them (sudden things like disasters could easily do so), but we shouldn't expect to see complete chaos. Given Thrive's much faster timeline for evolution, its possible that some timespans will be dominated more by chaos than oscillations, especially after a major disturbance, and that would also be nice to see. I should probably also point out that chaos and oscillations are not mutually exclusive, in fact the Lorenz equations, perhaps the most famous chaotic system, is a chaotic oscillator (better known as a strange attractor). | |
| | | The Uteen Sandbox Team Lead
Posts : 1476 Reputation : 70 Join date : 2010-07-06 Age : 28 Location : England, Virgo Supercluster
| Subject: Re: Population dynamics Fri Oct 12, 2012 4:16 pm | |
| Nice work. I don't understand the technical stuff (too many variables), but it's interesting nevertheless. Thanks for the updates. | |
| | | ~sciocont Overall Team Lead
Posts : 3406 Reputation : 138 Join date : 2010-07-06
| Subject: Re: Population dynamics Sat Oct 13, 2012 11:19 am | |
| I am fairly familiar with the lorentz attractor, at least in general what it does. The problem with generations lasting only a week is that the definiton for fitness changes seasonally, which means organisms will be constantly evolving to match the changes in the seasons, not evolving in order to outcompete each other. In another thread, we said that a year would equal about 30-120 minutes of playtime, and would probably include around 4-12 discrete "days" (or equivalents) that you'd play through. This means we have plenty of time for the computer to do all of the auto-evo calculations for your biome, and we could make mutations slightly larger. If we make generations equal to the length of a year in playtime, this will make gameplay slow down a little, but you won't be constantly dealing with changing and new information about your environment. | |
| | | Seregon Regular
Posts : 263 Reputation : 37 Join date : 2011-08-10 Location : UK
| Subject: Re: Population dynamics Sat Oct 13, 2012 3:26 pm | |
| I can see what your saying, in that we want interspecies competition to be a major factor in driving adaptation, but that shouldn't be at the cost of not allowing species to adapt to their environment (and that includes the different seasons). Species interactions also won't be constant throughout the year, e.g.: competition for food will be far greater during the winter (which is why avoiding it by hibernating is a brilliant adaptation).
The timing you describe for generations (1 year, 30-120 minutes, 4-12 days) sound absolutely fine to me. Presumably, within that time you would be experiencing several different seasons (in our case, 3 days each of winter, spring, summer and autumn).
I think what we need is a way of having generations be long (i.e.: 1 year), but have the mutations which take place take account of conditions during the entire generation, not just the point at which the generation ends. It could be we need to tweak how things work to get a good ballance of environmental vs interaction factors for determining mutations. | |
| | | Rorsten594 Newcomer
Posts : 82 Reputation : 1 Join date : 2012-09-13 Age : 24 Location : Earth,Canada
| Subject: Re: Population dynamics Sat Oct 13, 2012 3:55 pm | |
| - ~sciocont wrote:
- I am fairly familiar with the lorentz attractor, at least in general what it does.
The problem with generations lasting only a week is that the definiton for fitness changes seasonally, which means organisms will be constantly evolving to match the changes in the seasons, not evolving in order to outcompete each other. In another thread, we said that a year would equal about 30-120 minutes of playtime, and would probably include around 4-12 discrete "days" (or equivalents) that you'd play through. This means we have plenty of time for the computer to do all of the auto-evo calculations for your biome, and we could make mutations slightly larger. If we make generations equal to the length of a year in playtime, this will make gameplay slow down a little, but you won't be constantly dealing with changing and new information about your environment. about the seasons thing wouldn't you just be able to have adaptation for all the seasons? (rabbit have longer hair and white hair in winter than gray or brown in summer less hair) | |
| | | ~sciocont Overall Team Lead
Posts : 3406 Reputation : 138 Join date : 2010-07-06
| Subject: Re: Population dynamics Sun Oct 14, 2012 9:37 am | |
| - Rorsten594 wrote:
- ~sciocont wrote:
- I am fairly familiar with the lorentz attractor, at least in general what it does.
The problem with generations lasting only a week is that the definiton for fitness changes seasonally, which means organisms will be constantly evolving to match the changes in the seasons, not evolving in order to outcompete each other. In another thread, we said that a year would equal about 30-120 minutes of playtime, and would probably include around 4-12 discrete "days" (or equivalents) that you'd play through. This means we have plenty of time for the computer to do all of the auto-evo calculations for your biome, and we could make mutations slightly larger. If we make generations equal to the length of a year in playtime, this will make gameplay slow down a little, but you won't be constantly dealing with changing and new information about your environment. about the seasons thing wouldn't you just be able to have adaptation for all the seasons? (rabbit have longer hair and white hair in winter than gray or brown in summer less hair) Ideally, but that gets very complex. We'll have to see what we can do. | |
| | | gdt1320 Newcomer
Posts : 24 Reputation : 3 Join date : 2012-09-23
| Subject: Re: Population dynamics Mon Oct 15, 2012 3:45 pm | |
| Ok so contributing more ideas to develop a more chaotic auto-evo So we need to decide what parameters the auto-evo can change, the list from the wiki is - Quote :
size, mass, speed, type of movement, toxicity, toxic resistance, stamina, armor, specialized defensive organs, specialized offensive organs, camouflage.
(side-note: can we just have mass? size and mass are pretty similar) and how they affect the growth and death rates. I'd also like to introduce a food level that is a numerical value for how high up a species is on the food web. (again probably needs to be changed, but just for this idea I'll keep it) Thoughts for modeling equations - Spoiler:
So basically everything with the parameters is going to end up being a mass balance with probability mixed in there as well.
i.e for a growth equation dX/dt = a*X*Y-b*X
a = (mass of Y/mass of X)*(%recoverable mass)*(Probability)*(food level X-food level Y)
Note how this equation can use the food levels to determine of X preys on Y, or if Y preys on X. However, this greatly restricts interactions in that species on the same level have no interaction, and interactions can only be allowed for +- 1 food level, otherwise the multiplication factor is off.
The other note point is that there is mass being lost this way and it has to be recovered somewhere.
Expanding on the (Probability) term - Spoiler:
So the probability is going to be the most complex term, it has to account for all the other factors, chances of encounter, etc. Here's an example of what probability could look like, but just an abstract one.
(probability) = k*[(f*speed X - e*speed Y)]
k is going to be a factor from 0 to 1. Think of it as the % of time X chooses to interact with Y. f and e are co-factors to account for complex behavior. I.E. X might be really slow, but good at ambushing, so e is going to be very low (or f very high, or both), or X might have more stamina than Y, so f is slightly higher. The other thing this contributes is that if Y is much faster than X, then X is just wasting energy pursuing Y, and might actually have a negative coeff even if Y is X's "prey". Toxicity could also come into account here with f having a (toxicity Y- toxic resistance X) and e having (toxicity Y-toxic resistance X)
Auto-Evo - Spoiler:
Ok, so we've got what paramaters the auto-evo can change, and how they affect population growth, but no we have to decide what the relationships between all those variables are in order to produce a realistic model. I'm thinking about balancing almost everything by mass so here is what that would look like: mass=aa*(speed)+bb*(armor)+cc*(specialized organs)+dd*(toxicity)+ee*(toxic resistance)+ff*(stamina)+gg*(camouflage) so breaking this down, it means that in order to have more speed, armor, or specialize organ, etc. the species needs more mass. Looking back at the growth equation dX/dt = a*X*Y-b*X a = (mass of Y/mass of X)*(%recoverable mass)*(Probability)*(food level X-food level Y) we see that increasing the mass of X decreases the growth rate if mass of Y stays constant. The factors, aa,bb, etc. , can be adjusted (or randomized at the start!) This gives different values for different evolution factors, where maybe one species favors camouflage, another favors speed, etc. back to the k term - Spoiler:
So the k term, the one I defined as the % of time X chooses to interact with Y, should also be an evolutionary parameter.
I'm still working out how to make it fit, but the idea was that species would "learn" to avoid predators, toxic species, etc, and also to make a better balance for multiple food sources.
The problem is that the auto-evo might try turning the k very low for predator species, such that prey "never encounter" predators, and are thus not affected, which is not realistic at all.
The balance was going to be that the sum of all the k's for X had to be 1. But I'm probably going to be rethinking this. Might just end up being a probability of encounter which will have to be calculated some other way.
Anyway just more thoughts, sorry I kind of babbled at the end there.
So what's the b factor for in the death term? - Spoiler:
This will also be part of the auto-evo, but maybe in a more specialized way. I was thinking of having this term hold on to the temperature effects (species die faster if too hot or cold), and also have factor's relating to specialized organs. This theory was that by having specialized organs, the species can be more prone to sever injuries that would cause them to die faster on the chance that they become injured.
Anyways, just more thoughts, and perhaps a different way to look at things. MAJOR EDIT: I'm an idiot. I just read your (seregon's) post in the other thread. I'll see what I can do since mass and energy balances are sort of my thing. | |
| | | gdt1320 Newcomer
Posts : 24 Reputation : 3 Join date : 2012-09-23
| Subject: Re: Population dynamics Mon Nov 26, 2012 4:12 pm | |
| Determining cost/benefits of evolutionary adaptions
So i think evolutionary adaptations can be sorted into two categories, mechanistic and behavioral. Mechanistic would cover the species interactions with compounds. I.E. what it can eat, what it is toxic too, what it is resistant against, etc. behavioral would be how it interacts with members of its own species, and other species.
Mechanistic adaptations can be divided into two subgroups, direct and indirect.
Direct adaptations would be altering enzymes, and proteins to be more resistance at something (possibly through changes in amino acid sequences, or glycosylation steps), at the cost of efficiency.
Indirect adaptations would be the development of new compounds within the system to balance out some negative effect. I.E. developing an antidote that neutralizes a toxin or parasite. These would come at the cost of requiring more compounds, or energy. (Developing new limbs, or body parts could probably fit under this description as well)
I'm still looking into behavioral, because I don't know much about AI. But maybe parameters such as aggressiveness, awareness, socialization, would be a good key few.
| |
| | | Daniferrito Experienced
Posts : 726 Reputation : 70 Join date : 2012-10-10 Age : 30 Location : Spain
| Subject: Re: Population dynamics Wed Nov 28, 2012 6:52 am | |
| - gdt1320 wrote:
- I'm still looking into behavioral, because I don't know much about AI. But maybe parameters such as aggressiveness, awareness, socialization, would be a good key few.
I've been thinking on this, and as i see it, a well programmed learning AI can be considered like a behavorial auto-evo. It will try to adapt, learning about new dangers and food sources. Of course, it it sees a new animal that it has never seen before, it will not know anything about him, probably dyeing the first times. But that happens in real life too. A newly introduced species usually has a good starting time because other species don know how to counteract him. If you are concerned about letting the player choose the behavior, we could allow the player to modify the weights, and in turn allowing him to lower the learning rate in order to allow the artificial changes to stay. | |
| | | scorpion268 Newcomer
Posts : 18 Reputation : -2 Join date : 2013-05-11 Location : Waco, Texas, us
| Subject: Re: Population dynamics Wed May 22, 2013 5:41 pm | |
| i know this is an old thread, and my graph reading and variable understanding on much beyond simple statistical line graphs (i think that is what they are called) is a bit rusty, but i have a few things that i feel were overlooked.
1. carrying capacity does not just affect a single environment but the world as a whole because of migratory species and other factors. thus energy flow is dynamic and diffuses across the world as a species migrates and some die in the other environment and therefore there is a fourth factor playing in the environment, energy intake from other environments.
2. also as life becomes more complex, the time it takes to reach the said carrying capacity in an environment changes because the larger an organism is, the more energy it needs to take in, which in some environments it is countered by complex autotrophs, but in others, such as a desert, there are less nutrients available to larger organisms. this adds a fifth, complexity of organisms in the environment.
3. also, as life dies, depending on the complexity of the decomposers in the environment, there is a varying time between the point that the organism dies and the point that the energy is cycled back into the rest of the environment from the decomposers. a sixth factor
4. finally, outside factors play an even larger role because areas such as a volcanic plain will be richer in nutrients than a typical plain because volcanic ash will settle overtime and add new nutrients. seventh factor. | |
| | | Seregon Regular
Posts : 263 Reputation : 37 Join date : 2011-08-10 Location : UK
| Subject: Re: Population dynamics Wed May 22, 2013 9:19 pm | |
| Some good points scorpion, and it's probably about time this thread got revived, though I can't promise I'll do much work on it for atleast a little while longer...
1 - the models develops so far apply only to a single location, in game terms this could be a biome, or a subdivision of a biome. When fully implemented (and I will get to this in a future lesson), this location would be linked to other neighbouring locations, with some species able to migrate between them. To some extent, this will share the resources available to each location, between all locations, as you suggest. Depending on how much detail we go into, resources could also be moved between locations by other factors (especially ocean currents). Note that I mentioned I won't be having an explicit carrying capacity, but energy input into the system is effectively the same thing.
2 - I think your saying that the time taken to reach the carrying capacity depends on the energy available and the growth rate of the organism in question. If so, I think this is covered by r, the organism growth rate, which I did cover above. In most cases energy available won't have much impact on time to carrying capacity, only the size of that carrying capacity.
3 - Yes, energy/compounds from dead organisms will not be immediately available to reuse (except in the microbe stage). I had planned to deal with this by having an additional energy/compound pool (dead matter), which would be processed back into available matter by decomposers. Some organisms may also be able to process dead matter directly, depending on their digestive systems.
4 - Neighbouring locations with significantly different conditions will have a large impact on eachother. In your example, migration from the volcanic plain will bring a lot of energy onto the normal plain, making it far more fertile than it would be otherwise. With just two locations, and balanced migration, the effect is that both locations have conditions which are the average of the original conditions, but we will almost never encounter a system that simple. | |
| | | scorpion268 Newcomer
Posts : 18 Reputation : -2 Join date : 2013-05-11 Location : Waco, Texas, us
| Subject: Re: Population dynamics Thu May 23, 2013 8:20 am | |
| no actually i factoring in that the larger or more aadvanced an organism is, it usually needs more energy to sustain its self, bringing its carrying capacity down. sorry i pretty well badly worded it the first time around
what about photosynthesis bringing in more energy over time? will the amount of energy available slowly increase over time? | |
| | | Seregon Regular
Posts : 263 Reputation : 37 Join date : 2011-08-10 Location : UK
| Subject: Re: Population dynamics Thu May 23, 2013 9:45 am | |
| This is why I don't want an explicit carrying capacity. Instead, the limit to a populations size is the amount of energy available to it; if a more complex organism requires more energy, then the same amount of available energy will only support a smaller population.
The total energy available to a system is relatively constant, coming in as light and heat from the sun (though chemo/thermosynthesis may open up other sources). This energy is inaccessible to most organisms, except photosynthesising plants and cyanobacteria. In a system with no photosynthesisers there will be little or no energy available, as the total level of photosynthesis increases, the amount of energy which is usable to other organisms increases (as there are more plants which they can eat). | |
| | | hypoxanthine Newcomer
Posts : 25 Reputation : 0 Join date : 2013-05-21 Age : 29
| Subject: Re: Population dynamics Thu May 23, 2013 10:08 am | |
| sorry if ive missed the point but i wouldve thought that if you simulate lots of organisms and enable natural selection through genetic material and competition, the general population dynamics curves emerge spontaneously e.g. if you have predators and prey, youll get predator-prey cycles whether you like it or not. how are you proposing to force a population of organisms to follow some equations? All that needs setting is a maximum number of organisms limit which when reached changes the general reproduction-controlling parameters such that an organism can only reproduce once another one has died, and then you might want to weight what each organism contributes to this count according to their energy requirements (e.g. their maximum health since energy and health seem roughly approximate in the game) so that, say, one large organism being killed would mean that two smaller organisms could be born. Everything else is decided by mutation rates. At reproduction, every organism has a mutrate variable or two that seeds a random number generator to decide whether to mutate an organisms genome (a set of variables which should decide an organisms appearance and the structure of their neural network). Why is there a need for this 'auto-evo'? you set up the basic conditions for evolution to happen and it happens! you dont need to randomly select an organism from the entire population to mutate, thats overcomplicating things massively. would you not just rather have an extra variable for each creature? one number? i hope your argument wouldnt be to do with processing because it really wouldnt affect anything at all considering the AI you'll need among everything else (be thankful for the gift of compiled languages!)
Last edited by hypoxanthine on Thu May 23, 2013 10:21 am; edited 1 time in total | |
| | | Seregon Regular
Posts : 263 Reputation : 37 Join date : 2011-08-10 Location : UK
| Subject: Re: Population dynamics Thu May 23, 2013 10:17 am | |
| Your right, but you are also missing the point. If all we wanted to do was simulate a small population of microbes in a petri dish, we could derive the population curves easily enough, just as you describe.
Whats being discussed here is how we would simulate populations *much* larger than we could feasibly do at the individual level. Agent based simulations get expensive quickly, especially if that's only a small component of what we're doing (rendering, AI, physics etc.), and would allow us to simulate perhaps a few hundred cells, or in later stages a few dozen animals and plants. The methods here would allow us to simulate whats happening to the populations which aren't immediately observable by the player, so that when the player moves into another area, those populations can be updated in a meaningful way (i.e.: not a clean procedural generation). The key is that the computational complexity scales with the number of species, not the number of individuals, so that we can simulate very large ecosystems in seperate biomes relatively easily.
| |
| | | hypoxanthine Newcomer
Posts : 25 Reputation : 0 Join date : 2013-05-21 Age : 29
| Subject: Re: Population dynamics Thu May 23, 2013 10:33 am | |
| i was writing more in my post while you were reading it so you may want to go back and read it again.
but lets say, ok, we want to reduce the population on a planet to a few key variables along with a list of the species present along with their typical genomes, and then when i come back to it i can regenerate the entire planets ecosystem by throwing the information (along with the time thats passed since the last visit) into a few equations, and our task is to come up with these equations. i think thats the gist of it, correct me if im wrong. so why overcomplicate it? just use your logistic models to get a number for each species then scale them according to predator-prey and an overall carrying capacity. How are you planning on deciding how the species get distributed across the system? will there be a variable for each species which decides whether they get distributed uniformly, randomly or in clumps? stick them in their biomes? i havnt seen any pseudo-code being written so it isnt too clear.
as for evolution happening when you come back, i havnt seen anyone suggesting exactly how the genetic information will be stored for each species, what it will consist of, or even what the organisms will actually have? what AI will be used, which of its variables will be mutatable? how will the morphology and anatomy data be stored? how will this be mutatable? Before you talk about auto-evo, you need to talk about the organisms themselves because otherwise youre just vaguely speculating and its not really any help. if you knew all this, you could just say: right, when i come back, mutate every single species genome a number of times dependent on the time passed since last visit, and then simulate all the agents in fast-forward so that natural selection has a chance to do its work, and then show the player the results and continue from there as normal. agent-focused evolution for a single planet will not be computationally expensive at all (the fact you think it will suggests youre not really sure of how it will actually work). how many creatures are you really simulating for each planet? you really think something like the amount in real life? they didnt even manage that in spore! just make the planets small and give them, say, 50 organisms for each of 6 possible species living on a planet. any more than something similar to that and youre trying to outdo spore (cant remember the actual organism limit on spore but i remember that after it, if you tried to add another creature, another one would disappear). hint: you cant outdo 5 years of professional developer's (the best in their fields) work. | |
| | | Seregon Regular
Posts : 263 Reputation : 37 Join date : 2011-08-10 Location : UK
| Subject: Re: Population dynamics Thu May 23, 2013 12:16 pm | |
| I can't answer every point your raising, there are too many, and they're not all related. - hypoxanthine wrote:
- i think thats the gist of it, correct me if im wrong. so why overcomplicate it? just use your logistic models to get a number for each species then scale them according to predator-prey and an overall carrying capacity.
That's the basic idea. The problem is deriving growth and mortality rates from our species geno/phenotype. If that was trivial, then we'd simply plug that in, but it's not. While we could make a very crude attempt, the resulting simulation would be incredibly bland, with many hugely different organisms behaving in almost identical ways at a population level. - hypoxanthine wrote:
- how many creatures are you really simulating for each planet? you really think something like the amount in real life? they didnt even manage that in spore! just make the planets small and give them, say, 50 organisms for each of 6 possible species living on a planet. any more than something similar to that and youre trying to outdo spore
This is exactly what we are proposing, and exactly why agent based simulation won't do. That small size of spores ecosystem is one of the major points we want to improve upon. The space your playing in may not contain many more organisms or species, but the overall planet will. - hypoxanthine wrote:
- hint: you cant outdo 5 years of professional developer's (the best in their fields) work.
No, we can't, which again brings me back to the point of all this. We cannot create an agent based simulation which is significantly more efficient than what spore had, what we can do is avoid the problem completely by not requiring a huge agent based simulation. I've written enough such simulations to know that the 300 or so creatures your saying a spore world contained would be pretty close to the limit of what an average computer of the time could run. With some clever programming (which we probably can't beat) they may have increased that a little. Auto evo serves a similair purpose - we cannot afford to simulate darwinian evolution, so we make simplifying assumptions (explained elsewhere, I'll find a link if you need it): - all individuals in a species are phenotypically identical. Sub-populations may vary slightly, and if the difference becomes signiciant they become a new species. What we don't do is track the genetics of every individual. We therefore do not 'mate' individuals to produce offspring. - we assume natural selection. In other words, we assume that only benificial mutations will survive, and negative ones will not spread through the population. What this means is that we don't need to run a genetic algorithm with hundreds of individuals, but instead run a much simpler hill climbing algorithm with dozens of species. The details of what will be mutated, the genetic structure of the organisms, is a little irrelevant at this point. It certainly won't be as simple as 'predation rate' and 'mortality' mentioned in the examples. Beyond that, I don't see how what we're evolving will have that much effect on how we evolve it. There are some exceptions, but I don't think that's what your trying to get at? | |
| | | hypoxanthine Newcomer
Posts : 25 Reputation : 0 Join date : 2013-05-21 Age : 29
| Subject: Re: Population dynamics Thu May 23, 2013 12:56 pm | |
| - Seregon wrote:
- That's the basic idea. The problem is deriving growth and mortality rates from our species geno/phenotype. If that was trivial, then we'd simply plug that in, but it's not. While we could make a very crude attempt, the resulting simulation would be incredibly bland, with many hugely different organisms behaving in almost identical ways at a population level.
why not KISS and just give each species a [slightly randomized if you like] growth factor (r) based on its maximum health/energy? Why is it a problem? ok thats fine that--wait a second: - Seregon wrote:
- Auto evo serves a similair purpose - we cannot afford to simulate darwinian evolution, so we make simplifying assumptions (explained elsewhere, I'll find a link if you need it):
- all individuals in a species are phenotypically identical. Sub-populations may vary slightly, and if the difference becomes signiciant they become a new species. and that isnt bland? ...hang on... - Seregon wrote:
- all individuals in a species are phenotypically identical. Sub-populations may vary slightly,
struggling to get my head around this. if all species are phenotypically identical, how do subpopulations vary? but yes, i did say before that the data stored for each species should be the typical genome and its population count. what 'typical' might mean here is that you randomly select one creature and make that genome the archetype (taking an average is too much work). now i know that no known creature is distributed according to the cauchy distribution but i dont think it would matter too much. - Seregon wrote:
- we assume natural selection. In other words, we assume that only benificial mutations will survive, and negative ones will not spread through the population.
so the rich get richer? thats not how evolution works, you know it, and it certainly doesnt take into account genetic drift which is one of the most important factors unless you have a very large population size, which we cant have (wait on!). You can't just say 'even though you can only see a few creatures from where you are now, this planet actually has hundreds of them whose population is controlled by these equations.' because your sample must reflect the actual planetary population size , at which point things start getting more and more complicated because you also have the question of distribution across the plant and biomes, and we should say to ourselves 'stop! is there an easier way to do this?'. - Seregon wrote:
- What this means is that we don't need to run a genetic algorithm with hundreds of individuals, but instead run a much simpler hill climbing algorithm with dozens of species.
ok, sounds like a plan. ive seen GAs approximated using hill-climbers before (written a few myself...in cryptographical contexts but still...) but tell me how you propose to go about this. saying your going to use a hill-climber to evolve dozens of species doesnt tell me much. what type of hill-climbing are you using and why? what are you using as a measure of fitness and how will this be interpreted as a final genome? this is incredibly vague. please could you provide some pseudo-code, even if its not very detailed? ive noticed that nobody seems to give any such details on the forum, no wonder the programming is slow. they have to work out how to implement your ideas because you wont tell them how. - Seregon wrote:
- The details of what will be mutated, the genetic structure of the organisms, is a little irrelevant at this point.
no it really is not. how can you talk about evolving something when you dont really know what that something will be? its useless. try to think about it from a programmers point of view for once. how do you actually code what youre saying? you dont even have the starting point of what youre meant to be running this algorithm on so how can you decide on what algorithm to use and what it should attempt to do? an organism's genome is going to have a lot of variables and youre trying to increase its overall fitness? how do you do that? and bear in mind that an organism doesnt just 'adapt to its environment' (dont be adaptationist - if you set it to increase its fitness for a specific biome, all your creatures will end up the same), it needs definite interspecific competition for evolution to occur (ok, i know, geographical isolation, etc. but whatever) so you cant decide fitness independently from the fitness of the other species. as i said, pseudo-code for your specific auto-evo hill-climber algorithm in your reply post please or you're BSing. youre running before you can walk (i will not relate this to the whole project...it is NOT related...NOT RELATED...). This part of the game could be tested stand alone right now if anyone had the time, and you divulged your secrets. | |
| | | scorpion268 Newcomer
Posts : 18 Reputation : -2 Join date : 2013-05-11 Location : Waco, Texas, us
| Subject: Re: Population dynamics Thu May 23, 2013 1:17 pm | |
| If we were to take the entire world of the game and only take a chunk of the continent your species was on and fully process the biomes your species was in and the ones that were surrounding the ones that were surrounding the one you were in we could cut out a lot of processing time. Then if we used population pyramids with proportional populations like 15 prey per predator and have multiple species per level competing for dominance, then we could have a much more diverse world than before with the same processing requirements as before in my beliefs at least. | |
| | | Seregon Regular
Posts : 263 Reputation : 37 Join date : 2011-08-10 Location : UK
| Subject: Re: Population dynamics Thu May 23, 2013 1:33 pm | |
| Your not giving me much credit here, and yet I'm answering your points on the assumption that you know what your talking about. - hypoxanthine wrote:
- This part of the game could be tested stand alone right now if anyone had the time, and you divulged your secrets.
If you believe I have secrets I'm not divulging, then either you think this system has more merit than your willing to admit, or I'm doing a very poor job of explaining myself. Yes, there are details of this which reside only in my head, not becuase I'm trying to deprive anyone of them, but becuase they take a huge amount of time and effort to develop to a stage where they're presentable and usable by a coder. That means doing the math, writing prototypes, and tweaking them, to save others the effort. Thats time I really don't have to spare right now, though it definately is something I'll be working on as soon as I do. To answer a few of your more reasonable points: - All members of a population of a species (rather than the entire species) are phenotypically identical. Each seperate location which contains this species will have a seperate population. If these are significantly distinct a new species may form. If they are strongly linked by migration, they will tend towards the same genetics via crossbreeding. - We don't track the genome, only the phenome, which is what makes the above assumptions plausible. - Quote :
- so the rich get richer?
- Where did you get that idea? What this means is that the entire population will gain benificial mutations. Non-benificial mutations may arrise at the genetic level in a few individuals, but those individuals would be at a disadvantage and die out, so that the harmful gene will never spread to the population. At the phenotypic population level, these harmful mutations would never be seen, and so are ignored. The exception is where a mostly benificial mutation has some harmful side effects (e.g.: sickle cell), and these should be allowed by the system. - Quote :
- pseudo-code for your specific auto-evo hill-climber algorithm in your reply post please or you're BSing/
- I really don't have the time to produce something like this on demand, and you have no right to demand it. It would also help me explain this if I knew where you were comming from? Are you a programmer, biologist, ecologist, evolutionary scientist? Also, please finish your post before posting, having what I'm replying to change while I'm writing a post is more than a little confusing. @Scorpion - that's part of the idea, and largely what we're doing for the part of the planet observable by the player, this thread deals with what we do for the rest of the planet, rather than simply leaving it paused while the player isn't looking. | |
| | | hypoxanthine Newcomer
Posts : 25 Reputation : 0 Join date : 2013-05-21 Age : 29
| Subject: Re: Population dynamics Thu May 23, 2013 2:15 pm | |
| - Seregon wrote:
- Your not giving me much credit here, and yet I'm answering your points on the assumption that you know what your talking about.
i can see why youre saying this, i know im coming across as rude and im sorry about it, but seeing as how the thrive project has ignored reason in the past, its the only way that will do. just be clear that i dont mean to insult anyones intelligence. - Seregon wrote:
- If you believe I have secrets I'm not divulging, then either you think this system has more merit than your willing to admit, or I'm doing a very poor job of explaining myself.
the second one. excuse 1) - Seregon wrote:
- Yes, there are details of this which reside only in my head, not becuase I'm trying to deprive anyone of them, but becuase they take a huge amount of time and effort to develop to a stage where they're presentable and usable by a coder. That means doing the math, writing prototypes, and tweaking them, to save others the effort. Thats time I really don't have to spare right now, though it definately is something I'll be working on as soon as I do.
fair enough, dont have the time. perfectly fine. excuse 2 and 3) - Seregon wrote:
-
- Quote :
- pseudo-code for your specific auto-evo hill-climber algorithm in your reply post please or you're BSing/
- I really don't have the time to produce something like this on demand, and you have no right to demand it.
It would also help me explain this if I knew where you were comming from? Are you a programmer, biologist, ecologist, evolutionary scientist? I read that all as 'It would take too long to explain. Who are you to tell me what to do you little upstart! Also, I would explain but you probably wont understand it' (ok thats being a little unfair ill admit, but the rough idea is in there). I'm a programmer and a biologist (ecology and evolution come under biology, no? im not a specialist but i do know my stuff) since you asked. now you misunderstood my request for pseudo-code completely. Given that you said you had an algorithm for auto-evo, all i was asking is for you to reveal it to me. If you cannot reveal it to me, you do not already have an algorithm, which means that you were basically saying 'ohhh...well do it all with a hill-climber' (reminds me of procedural generation here) without having an idea as to how youll do it, which is very bad indeed. I'm not asking you to produce it on demand, because unless your'e BSing, you already have it and should be able to show it to me without any difficulty, unless of course, youve been discussing this for 2 years (i think?) and you havnt ever bothered to write a scrap of pseudo-code for it. - Seregon wrote:
-
- Quote :
- so the rich get richer?
- Where did you get that idea? What this means is that the entire population will gain benificial mutations. Non-benificial mutations may arrise at the genetic level in a few individuals, but those individuals would be at a disadvantage and die out, so that the harmful gene will never spread to the population. At the phenotypic population level, these harmful mutations would never be seen, and so are ignored. The exception is where a mostly benificial mutation has some harmful side effects (e.g.: sickle cell), and these should be allowed by the system. you dont seem to have read the paragraph at all. im not going to repeat myself. - Seregon wrote:
- All members of a population of a species (rather than the entire species) are phenotypically identical. Each seperate location which contains this species will have a seperate population. If these are significantly distinct a new species may form. If they are strongly linked by migration, they will tend towards the same genetics via crossbreeding.
ah that makes more sense, but sounds like youre overcomplicating again. why split each species into subpopulations? and you were just talking about processing problems too! having subpopulations would basically be the equivalent of having many more species on the planet and is, in general, a very bad idea which gives me reason to doubt the consistency of your ideas. - Seregon wrote:
- We don't track the genome, only the phenome, which is what makes the above assumptions plausible.
em..the genome is the same thing as the phenome for the purposes of the game but it is generally called the genome in these sort of simulators, which brings me back to my point on how an organism's genome will be encoded and why you should be discussing it now before auto-evo. e.g. part of the genome may say something like 'this organism has weapon part number n at body coordinates (x,y,z)' or something similar, and I have no idea what you thought instead (the fact you didn't immediately see this really worries me, how could it be otherwise? this is why i think i havnt understood you correctly.). How the data is encoded strongly influences how you evolve it. | |
| | | scorpion268 Newcomer
Posts : 18 Reputation : -2 Join date : 2013-05-11 Location : Waco, Texas, us
| Subject: Re: Population dynamics Thu May 23, 2013 2:21 pm | |
| Ok that makes a lot of sense along the species diversity level. Just to be sure I'm understanding this correctly, there will be more than six organisms per biome. | |
| | | Mysterious_Calligrapher Biome Team Lead
Posts : 1034 Reputation : 26 Join date : 2010-11-26 Age : 32 Location : Earth, the solar system, the milky way...
| Subject: Re: Population dynamics Thu May 23, 2013 4:02 pm | |
| Guys. No fighting on the thread. Hypo, that's not what Seregon said, putting words in his keyboard is a good way to come across as rude. Hypo, I'd like you to re-read the first post in the thread, and the threads for auto-evo here and here. (The first one is more programming based, the second has some of the early explanations as to why we came up with auto evo.) They might help you to understand what Seregon isn't getting across to you. As to why we need auto-evo, the simple explanation is that it's a pure numbers calculation that allows us to simulate extinctions, ecological niches, biomes, and single-species extinctions without hard-coding actions. We will just let the numbers run instead, saving a lot of processing time while still allowing us to run conditions for a lot of species at the same time. As for the other points, we've got a policy around here of if you think we're not coding fast enough, you can code it yourself, faster. Somewhere deep in the belly of the biomes discussion we've got some food-chain mock-ups that take a look at how we're going to have to run population mechanics when resource availability and predation are both taken into account. Since you said you were learning biology, just something from an earlier post: - hypoxanthine wrote:
- All that needs setting is a maximum number of organisms limit which when reached changes the general reproduction-controlling parameters such that an organism can only reproduce once another one has died, and then you might want to weight what each organism contributes to this count according to their energy requirements (e.g. their maximum health since energy and health seem roughly approximate in the game) so that, say, one large organism being killed would mean that two smaller organisms could be born.
Not quite how it works, but you’re close. Populations generally enter a “boom and bust” cycle, where they overshoot their carrying capacity, die back in large numbers, then slowly build their population back up. This is one of the driving forces of evolution, because the boom allows for greater genetic diversity within the species, and the inevitable bust trims down the population to the point where even small adaptations are a great adaptational advantage. By allowing the population to boom past it's carrying capacity, we can automatically simulate a mini-extinction event, which opens up niches for other species to diversify. The "maximum number of organisms," as written here, would be overly simplistic given trophic level energy flow and entropy. Essentially put, when producers (plants) use 1000 units of energy to build their mass, a much smaller amount is available to primary consumers, and an even smaller amount to secondary consumers. In addition, some resources, both nutritional and otherwise, will not be available to all species, just ones with the appropriate adaptations, so instituting a collective, biome-wide carrying capacity would be nearly impossible if we still wanted to run said adaptations, which are currently being discussed in the organ editor thread. And we very much do want to be able to run said adaptations, and to simulate extinctions. | |
| | | ~sciocont Overall Team Lead
Posts : 3406 Reputation : 138 Join date : 2010-07-06
| Subject: Re: Population dynamics Thu May 23, 2013 4:15 pm | |
| Hypox, I believe at some point, you were prompted to read our evolution concept. If you haven't seen that page before, we've failed to initiate you properly int othe project. The question of population dynamics exists to give information to the Census step in the evolution procedure. Questions of what mutations are beneficial and how information is stored are tangential to the actual determination of population sizes. Some things that may not be clear to you: -All evolution happens on a local, not planetary scale. The planet is split up into separate biomes, which are self-contained game spaces for evolution. We may include organisms that move in between biomes, but if it is too complex for us to handle, we won't include them. -Populations of organisms are just numbers. If there are 100 bears in a biome, the game does not store 100 instances of the bear and populate the biome with them. The population level simply influences your chances of seeing that organism: once an organism model is outside of your perception, it is deleted and won't necessarily show up there again, unless it is a stationary organism like a plant or a nest of eggs, or the organism you saw is specifically tied to that area by its behavior, in which case you'll see it pretty much every time you're in the neighborhood.
Also, rather than grilling Seregon about his expertise when he has little time to respond (He's currenlty working on his PhD in theoretical ecology, so he's essentially the best person in the world for this job), why not make some of your own suggestions to the problems you see, since you claim to have some degree of expertise. I don't mean to say that you aren't qualified to discuss this, I believe you are, but I am wondering why you're focusing more on criticism than construction. I am certainly happy to see you interested in this rather technical area, I'd just like you to understand that Seregon and I do not mean any disrespect towards you and are confused as to why your tone has been rather unfriendly. | |
| | | Sponsored content
| Subject: Re: Population dynamics | |
| |
| | | | Population dynamics | |
|
Similar topics | |
|
| Permissions in this forum: | You cannot reply to topics in this forum
| |
| |
| |