>>12373599Yes i know. You are not modifying the code in this, you are modifying the data. Your extra bit of information really just clarifies what an evolutionary algorithm is, it does not invalidate what I said.
We were talking about the code analogy in the video. An evolutionary algorithm does not apply random changes to the actual code.
>functionally identicalOnly in theory and It's not identical.
When you actually apply an evolutionary algorithm to a specific problem, it will not follow the exact concept of natural selection.
There are also more than one way to create an evolutionary algorithm. For example;
Chromosome gene encoding will vary depending on the problem. I used a node of a pathway to represent a gene, and the combination to represent the chromosome. You can however, use a string or perhaps even a hash to represent a combination, provided you can decode to mean something related to your (probably) network.
Fitness tests are pretty standard, it will probably be some ratio out of 1. But you may decide that it means more sense to rank your score closer to 0 if you're trying to find the shortest of something.
Selection process can be different, depending on what you want to do (there are some algorithms that people have tried that work). You may not want to ALWAYS bread the two most highly scoring parents together as they might have genes that would have different impacts on their fitness score. You can have some sort of identifier to keep track of lineages, which means that you can keep track of which genes are good or bad over time, but this is only applicable to certain problems.
The breading, or crossing over of the parents can be done a couple of ways. I'm not really sure what the best way is or what the difference is, but I know that we had different values for which I could tune how much of the parents I was crossing over. Because we had a variably sized problem, I made the cross over some function of the size of the chromosome. (continued)