rebelwarrior

rebelwarrior

Genetic Algorithms in Elixir: Natural Selection Chp5(p.71)

Hi Sean,

Just go your book and looking it over.

Some bg on me, I’m a ecology and evolutionary major from Princeton, later self-taught programmer. I’ve been noticing a lot of confusion on natural selection related to genetic algorithms just in general.

In general genetic algorithms aren’t based on natural selection but on artificial (human) selection. The big difference is how fitness relates to the outcome. In artificial selection you determine “fitness” a priori, that is before selection, while in evolution “fitness” really is an emergent property. It’s a little weird and that’s why evolution took such a long time to understand.

Darwin’s later adoption of the phrase “survival of the fittest” (which he didn’t coin) is probably the source of this confusion but fitness is not the determinant factor for survival. What? I know. It sounds like the exact opposite of what you’ve heard. But fitness is a property that shows up only after survival. A better way to say it would be “those that survive, tend to be more fit” A tendency that is not deterministic. Can you have the less fit survive? Well technically yes, but more importantly you have no idea what “fit” is until after selection. Remember that natural selection explains the why of speciation. Why there are many species and why they evolve not fitness. Contrast this with artificial or human selection. We breed dogs for certain qualities, we grow plants and select the seed with the qualities we most desire. Here “fitness” is determined by humans before selection, in fact, selection is based on these factors. This seems to be more closely aligned with genetic algorithms to me.

Ok getting back to the book. The following phrase “The fittest individuals are the ones that are selected to reproduce because they can pass their strong genes to the next generation.” on page 71 is technically wrong when referring to natural selection; it is correct when referring to artificial selection.

Nicely this phrase just before it “Charles Darwin’s theory of evolution suggests that strong traits that are key to survival become more common in successive generations.” is correct.

This may seem like a small thing but this misunderstanding of Natural Selection has lead to it being used as a pseudoscientific justification for discrimination in the hands of Social Darwinist, which is really just a pseudoscientific excuse to not be a nice person.

Let me know if you have any questions, happy to discuss.

– David Acevedo

Marked As Solved

seanmor5

seanmor5

Author of Genetic Algorithms in Elixir

Hey David, thanks for the excellent feedback. I see exactly what you’re saying in the sense that using analogies like this can be misleading. Overall, my understanding is that biological/genetic underpinnings in genetic algorithms go little beyond their inspiration. Despite this, I decided it was best to try to use some of these analogies in the hopes that they may be useful in understanding GAs a little better.

To your point, I see exactly how the analogy I used in that circumstance is incorrect, and how that kind of misleading analogy can be harmful. While I won’t be able to fix it before the next beta ships, I will absolutely address it before the final version.

I appreciate your feedback. If you come across any misleading analogies/inconsistencies, feel free to message me or post in here! Thank you for taking the time to make the book better!

Where Next?

Popular Pragmatic Bookshelf topics Top

jeffmcompsci
Title: Design and Build Great Web APIs - typo “https://company-atk.herokuapp.com/2258ie4t68jv” (page 19, third bullet in URL list) Typo:...
New
simonpeter
When I try the command to create a pair of migration files I get an error. user=> (create-migration "guestbook") Execution error (Ill...
New
lirux
Hi Jamis, I think there’s an issue with a test on chapter 6. I own the ebook, version P1.0 Feb. 2019. This test doesn’t pass for me: ...
New
JohnS
I can’t setup the Rails source code. This happens in a working directory containing multiple (postgres) Rails apps. With: ruby-3.0.0 s...
New
New
adamwoolhether
When trying to generate the protobuf .go file, I receive this error: Unknown flag: --go_opt libprotoc 3.12.3 MacOS 11.3.1 Googling ...
New
curtosis
Running mix deps.get in the sensor_hub directory fails with the following error: ** (Mix) No SSH public keys found in ~/.ssh. An ssh aut...
New
brunogirin
When installing Cards as an editable package, I get the following error: ERROR: File “setup.py” not found. Directory cannot be installe...
New
oaklandgit
Hi, I completed chapter 6 but am getting the following error when running: thread 'main' panicked at 'Failed to load texture: IoError(O...
New
dachristenson
@mfazio23 Android Studio will not accept anything I do when trying to use the Transformations class, as described on pp. 140-141. Googl...
New

Other popular topics Top

dasdom
No chair. I have a standing desk. This post was split into a dedicated thread from our thread about chairs :slight_smile:
New
AstonJ
I ended up cancelling my Moonlander order as I think it’s just going to be a bit too bulky for me. I think the Planck and the Preonic (o...
New
Exadra37
I am asking for any distro that only has the bare-bones to be able to get a shell in the server and then just install the packages as we ...
New
Exadra37
Oh just spent so much time on this to discover now that RancherOS is in end of life but Rancher is refusing to mark the Github repo as su...
New
AstonJ
Saw this on TikTok of all places! :lol: Anyone heard of them before? Lite:
New
PragmaticBookshelf
Build efficient applications that exploit the unique benefits of a pure functional language, learning from an engineer who uses Haskell t...
New
PragmaticBookshelf
Author Spotlight Mike Riley @mriley This month, we turn the spotlight on Mike Riley, author of Portable Python Projects. Mike’s book ...
New
First poster: bot
zig/http.zig at 7cf2cbb33ef34c1d211135f56d30fe23b6cacd42 · ziglang/zig. General-purpose programming language and toolchain for maintaini...
New
AstonJ
This is a very quick guide, you just need to: Download LM Studio: https://lmstudio.ai/ Click on search Type DeepSeek, then select the o...
New
PragmaticBookshelf
Fight complexity and reclaim the original spirit of agility by learning to simplify how you develop software. The result: a more humane a...
New

Sub Categories: