Submitted by doccolinni on Thu, 2009-08-20 03:14
I really love Framsticks and doing all kinds of experiments with it, but experiment definition "reproduction" won't let me save experiment state! :(
When I try to save the experiment state, I get this error: http://img20.imageshack.us/img20/5759/errorork.png
I'm not sure what its idea of "saving the data immediately" is but it certainly isn't what I have in mind because I can't save the data! When I click "OK" the experiment continues without any problems whatsoever.
What's up with this and is there any way I can save the progress of a reproduction experiment?
Forums:
Regarding the error message
Regarding the error message that is displayed: the error level is "critical" because the action requested (save experiment state) is not supported, so the system warns the user that the requested action did not work at all (which could affect further actions, therefore it is considered "critical").
All critical messages advise the user to save data. This is an unfortunate coincidence in this specific case, because the very reason for the message is that saving data is not implemented.
In reproduction, there are no genotypes, only living creatures. So far, we have not implemented saving the "live" state of the virtual world because alive creatures contain much more information than their genotypes (gene pools).
Let's think if saving the live world makes sense and how this could be implemented... apart from saving everything (a frozen snapshot of the simulation state), we could just save genotypes that are alive at some moment. When you load them, they would be revived - in different places and with the full amount of energy, so this would not be the perfect "save", but it would at least preserve genetic material. Probably saving genotypes along with their energy level and location in the world would be sufficient? This would miss temporal orientation of bodies and neural states ("brain activity"), but maybe we could accept such an imperfect solution? The question is whether the creatures would continue with their usual, expected behavior on revival.
Thanks for the reply,
Thanks for the reply, Maciej!
Yes, I understand that saving the experiment state in the case of a reproduction experiment is more than saving a mere list of genotypes, I just thought that maybe there actually is a way to save the progress (current state) of the reproduction experiment but that I was doing something wrong. :)
Shame there's no way of saving the progress at the moment, I like reproduction experiments the most.
Maybe Framsticks could, in the case of a reproduction experiment, save current status by copying its entire RAM content to the hard disk, à la hibernate? That's an awful idea, I know, but that was the first thing that came to my mind now.
Experiment state per se would really need to save a lot of data (e.g. position of every single stick, not just position of a creature), but I hope I'll see it implemented in one of the future updates. Until then, I'll just evolve my creatures by other means. :o)
> I like reproduction
> I like reproduction experiments the most.
There are/were actually some people working on the extended version of the reproduction setup (including group selection, evolution of communication, etc.)
> save current status by copying its entire RAM content to the hard disk, à la hibernate?
That's not so simple. You can't save pointers (addresses in memory), etc., and later restore them, unless you are saving the whole memory (=hibernate).
> e.g. position of every single stick, not just position of a creature), but I hope I'll see it implemented in one of the future updates
I believe that saving genotypes+locations+energy makes sense... probably also age and IDs. With some luck you can do it yourself, if you know how to framscript :-)
> I believe that saving
> I believe that saving genotypes+locations+energy makes sense... probably also age and IDs.
But I guess I would also need to get around to storing the history of genetic operations too if I wanted to be able to analyze phylogeny after restoration. And, of course, saving locations of food pieces is also a must.
> With some luck you can do it yourself, if you know how to framscript :-)
I was just about to start learning framscripting, I like the idea of being able to create my own experiment definitions. :) It's incredible how unlimited and open Framsticks are!
> But I guess I would also
> But I guess I would also need to get around to storing the history of genetic operations too if I wanted to be able to analyze phylogeny after restoration...
Yeah... this feature would be a different story. However, you can simply add your own customized logging of parent-child information (printed on mutation and crossover events in expdef), and then analyze/draw the phylogeny externally (e.g. using
graphviz
).> And, of course, saving locations of food pieces is also a must.
Fortunately, there is no difference between creatures and food from the simulation point of view - they are just stored in different populations and that's why they are handled differently.
Note that if your world is large enough and the number of inhabitants is large enough, then locations and temporal states of creatures do not matter that much. The larger the world and the more the creatures, the more the overall behavior is averaged and "statistical", and you don't need to worry that much about particular creatures. Of course, the requirement is that each creature resumes their normal behavior once restored from a saved state, but the restored state does not necessarily need to be identical with the original one.
We will consider the save-live-state feature in the forthcoming versions.
> It's incredible how unlimited and open Framsticks are!
Unlimited is a good word... there are an unimaginable number of different kinds of experiments to perform.