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

jimmykiang
This test is broken right out of the box… — FAIL: TestAgent (7.82s) agent_test.go:77: Error Trace: agent_test.go:77 agent_test.go:...
New
belgoros
Following the steps described in Chapter 6 of the book, I’m stuck with running the migration as described on page 84: bundle exec sequel...
New
mikecargal
Title: Hands-On Rust (Chap 8 (Adding a Heads Up Display) It looks like ​.with_simple_console_no_bg​(SCREEN_WIDTH*2, SCREEN_HEIGHT*2...
New
edruder
I thought that there might be interest in using the book with Rails 6.1 and Ruby 2.7.2. I’ll note what I needed to do differently here. ...
New
jskubick
I’m running Android Studio “Arctic Fox” 2020.3.1 Patch 2, and I’m embarrassed to admit that I only made it to page 8 before running into ...
New
jskubick
I think I might have found a problem involving SwitchCompat, thumbTint, and trackTint. As entered, the SwitchCompat changes color to hol...
New
Charles
In general, the book isn’t yet updated for Phoenix version 1.6. On page 18 of the book, the authors indicate that an auto generated of ro...
New
New
EdBorn
Title: Agile Web Development with Rails 7: (page 70) I am running windows 11 pro with rails 7.0.3 and ruby 3.1.2p20 (2022-04-12 revision...
New
gorkaio
root_layout: {PentoWeb.LayoutView, :root}, This results in the following following error: no “root” html template defined for PentoWeb...
New

Other popular topics Top

AstonJ
If it’s a mechanical keyboard, which switches do you have? Would you recommend it? Why? What will your next keyboard be? Pics always w...
New
New
PragmaticBookshelf
Machine learning can be intimidating, with its reliance on math and algorithms that most programmers don't encounter in their regular wor...
New
AstonJ
You might be thinking we should just ask who’s not using VSCode :joy: however there are some new additions in the space that might give V...
New
PragmaticBookshelf
Tailwind CSS is an exciting new CSS framework that allows you to design your site by composing simple utility classes to create complex e...
New
PragmaticBookshelf
Build highly interactive applications without ever leaving Elixir, the way the experts do. Let LiveView take care of performance, scalabi...
New
husaindevelop
Inside our android webview app, we are trying to paste the copied content from another app eg (notes) using navigator.clipboard.readtext ...
New
CommunityNews
A Brief Review of the Minisforum V3 AMD Tablet. Update: I have created an awesome-minisforum-v3 GitHub repository to list information fo...
New
PragmaticBookshelf
As digital systems increasingly run the world, mastery of the recurring patterns of software development risk is the key to fast and effe...
New
xiji2646-netizen
There’s a GitHub repo at forrestchang/andrej-karpathy-skills that’s sitting at 97.8k stars. It’s a single CLAUDE.md file with four behavi...
New

Sub Categories: