Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
Tags

brunoschull

7
Posts
4
Topics
A member registered Nov 13, 2018

Recent community posts

Hi. I received some information about chromosomes, so I can try to answer my own questions. 

Chromosomes do  encode the weights in the neural network.  These weights are what vary between creatures, and are what is passed down from generation to generation.

The weights are numbers (1.3, 0.2, -0.8). 

To make a chromosome, these numbers are converted into a binary format (https://en.wikipedia.org/wiki/Single-precision_floating-point_format).   Then the binary representations are placed one after the other to form a long string that might look something like this

00111111101001100110011001100110 00111110010011001100110011001101 10111111010011001100110011001101 

During the reproduction step, the binary strings from each parent are cut at a specific point, and the corresponding parts from each parent are exchanged, creating two new offspring  using one part from each parent.

This is an example of one-point crossover, not two-point crossover, as I showed in the picture above.

OK, I hope that helps others understand how chromosomes work. 

Bruno

Evolution community · Created a new topic Chromosomes

Hi.  I've been diving into the details of the simulator and neural networks, and I am trying to understand the mechanics of chromosomes.

My assumption is that the chromosome for one creature encodes all of the weights in the neural network at the end of the time interval for that creature.  These weights are ultimately what vary between creatures and are what must be passed down from generation to generation.

Is this correct? 

In the information section, the chromosome is described as a binary string of numbers, but I am having a hard time understanding how a binary string of numbers corresponds to the multiple weights in a network. 

Are the weights organized something like this?

w1, w2
w3, w4
w5, w6
w6, w8

I made a quick image to show one possible way that chromosomes and the two-point crossover might work. 

Is this an accurate representation?


OK, thank you very much, 

Bruno

Thanks for your answers!  I really appreciate it.  I answered some of my other questions on my own (I think), but the page of Q and A would be really helpful.  All the best, Bruno.

(1 edit)

Hi.  I'm trying to figure out how muscles work.
In the information, I find three  hints about how muscles work. 
1) "Muscles are spring-like, which means that they will always tend to go back into their starting position."

2) "The output is a floating point number between -1 and 1 which determines how far the muscles should expand/contract." 

3) "A creature can expand and contract its muscles continuously by applying a different amount of force to them."

So what does the output change?  How far the muscles contract?  How much force the muscles apply?  Or are these two things related?  For example, if the muscles are like springs, it takes more force to stretch them farther, and subsequently they spring back with more force?

During the simulation, do the muscles keep firing at a constant rate?

Thanks for making this amazing simulator!  My students love it.

B

(1 edit)

Hi.  Please forgive the long post. 

I'm a high school teacher, and I recently used the Evolution simulator for some workshops with students to teach basic concepts about evolution.  It was successful, and I really appreciate this tool.  

I have an instinctive desire to understand exactly what's going on inside this simulation, so I do have some specific questions.  But first a brief description of what we did.  

Essentially, we introduced the program to students, and got them working on creatures.  Their goal was to make creatures for the running task.  We let the creatures evolve while we talked about Darwinian evolution.  Then we gave them a data sheet, and asked them to record the horizontal distance the creatures traveled every ten generations from generation 0 to generation 100.   Finally we entered the data into a spreadsheet, and plotted the results in a chart.  Many interesting observations followed: some creatures evolved rapidly, others slowly.  None of the creatures evolved at a constant rate; some slowed down or performed poorly for a few generations, and then began to perform well again., while others evolved quickly at the beginning, and then plateaued.  Some designs seemed to be evolutionary dead ends, while others were more successful.   Features designed for one purpose were used in novel ways.  All of these observations helped students understand how evolution proceeds in the natural world.  We will try to use the same experimental approach to investigate the effects of population size, mutation rate, and so on.  It's a wonderful tool, so thanks again! 

OK, here are my questions.  If anybody has any insight, my students and I would greatly appreciate it.  

1) Why is the neural network used?  I have only a limited understanding of neural networks, but from what I can tell, this network does not "learn" or "improve" over time.  That is, the performance of the creatures improves, because of successive steps of selection and inheritance, but I don't see how a neural network is necessary for this process.  For example (and I might be wrong, or use these terms incorrectly) no back propagation of error, with subsequent adjustment of weights, occurs in this neural network, to improve it's function.  Instead, the neural network is used "blend" or "combine" the inputs into outputs for the muscles.  Is the neural network necessary for this?  Could the input --> output task have been accomplished by a simpler algorithm?  What advantages, such as the ability to control and vary the outputs in many ways, or the ability to store information efficiently, does the neural network provide?  In short, why the neural network?

2) There is an option to keep the best creatures for the next generation.  How does this change the reproduction step?  Let's say we're working with a population of 10 creatures.  Does this option instruct the program to keep the single best creatures, and the remaining nine are produced as usual?  Or is the split 8 and 2, or 7 and 3 and so on.  How  exactly does the "keep the best creatures for the next generation" option work?

2) There is an option to change the mutation percent.  The default seems to be 50%.  Does that mean that every time a new creature is created through the reproduction events at the end of each generation there is a 50% chance that each output to a muscle might be modified?  Or is the percent mutation qualitative?  

3) The neural network provides an output for each muscle.  What does that output control?  The force of the muscle contraction?  The distance of the contraction?  The duration of the contraction? 

4) Let's say the generation time is 5 seconds.  During that time, my students and I can see the muscles of the creatures contracting and expanding multiple times.  What is the "clock" that controls these contractions, or how is this timing controlled?  I imagine that this timing is part of the instructions to the muscles, and changes between creatures.  Or perhaps the muscles contract at some predetermined rate, for example, one per second, and so on.

As I said, I am simply curious about what's going on in the simulation, and I would like to know as much as possible about the process, so that I can explain it fully to my students. 

All the best, Bruno.

Thank you so much for the explanation.  That makes sense.  I just finished some work with students using the simulator, and it was really successful.  Like most good lessons, it only lead to more questions :)  I will make a new post, or contact you directly (if possible) to that this thread does not drift into other topics.  Thanks again--I really appreciate it.  

Hi.  I'm a newcomer to the Evolution program.    I am a biology teacher, and I've been exploring the program with students.  It's really powerful and interesting.  Thanks for creating such a great interface!

My question is about how to interpret the progress of the program. 

Once a creature is evolving, you can track its progress with different metrics, such as the fitness score, or its proficiency at a particular task, such as the horizontal distance is has moved from the start (for the running task). 

Is there a difference between these two metrics, fitness and proficiency?  

I ask because the fitness and the task proficiency appear at first glance to be roughly but not perfectly correlated--I might be wrong, maybe they are actually perfectly correlated. 

Is the task performance an absolute measurement, for example, how far the "farthest" joint reached, while the fitness is an average of all the joints/bones/muscles for a particular creature?

Or does fitness measure something else?

In biology "fitness" has a specific meaning related to the contribution of genetic material to the next generation, i.e., to simplify, how many offspring an organism has, and not necessarily how fast it can run, how high it can jump, and so on.  

Is the fitness score in the computer program somehow related to reproduction? 

If the fitness score is not related to reproduction, and the creators would like to make the program as biologically accurate as possible, would it make sense to change the word "fitness" to something else, such as "performance?"

OK, thanks again,

Bruno