From finance to artificial intelligence, genetic algorithms are a powerful tool with a wide array of applications. But you don’t need an exotic new language or framework to get started; you can learn about genetic algorithms in a language you’re already familiar with. Join us for an in-depth look at the algorithms, techniques, and methods that go into writing a genetic algorithm. From introductory problems to real-world applications, you’ll learn the underlying principles of problem solving using genetic algorithms.
Evolutionary algorithms are a unique and often overlooked subset of machine learning and artificial intelligence. Because of this, most of the available resources are outdated or too academic in nature, and none of them are made with Elixir programmers in mind.
Start from the ground up with genetic algorithms in a language you are familiar with. Discover the power of genetic algorithms through simple solutions to challenging problems. Use Elixir features to write genetic algorithms that are concise and idiomatic. Learn the complete life cycle of solving a problem using genetic algorithms. Understand the different techniques and fine-tuning required to solve a wide array of problems. Plan, test, analyze, and visualize your genetic algorithms with real-world applications.
Open your eyes to a unique and powerful field—without having to learn a new language or framework.
Sean Moriarity graduated from the United States Military Academy with a degree in Computer Science. Sean was first introduced to genetic algorithms while on a summer internship which inspired him to write Genex, a library for writing evolutionary algorithms in Elixir. Many of the problems and solutions you’ll encounter in this book were inspired from the lessons learned while developing Genex. Sean’s passions include functional programming, artificial intelligence, mathematics, and, of course, evolutionary algorithms.
Oh hey, that looks really cool! I wasn’t aware that Elixir was a suitable language for machine learning. Though I suppose that if you think about it, about any language would be able to do it.
I could not find information on the website, but will a paper version be available. I’m one of those that don’t do well with ebook formats and prefer holding a physical book.
@seanmor5 Hi, the book is pretty informative so far, but there are some code inconsistencies, which is understandable given the book is still in beta; Still a great resource!
I do have something I can’t seem to figure out, though, which is the representation of the N-Queens problem. Given the configuration [0, 2, 1, 3, 6, 4, 7, 5], it’s being represented as such in the book:
I can’t seem to figure out the relationship between the configuration, and the illustration. I don’t understand how a 2D board can be represented with only a 1D list, if each element in the list were to be a queen’s location.
It isn’t a valid solution because of the 2 queens in the last column. Or maybe this is just to serve as an example, and not as a solution?
Edit: I found a resource that expounds further on this, and confirmed my guess. The index of an element represents the column number, and the element value represents the row value. But regardless, the image doesn’t really line up with the configuration.
Columns from left to right are the index of each value from the list, and the value is the row from top to bottom (both starting from zero). So it is the index that is making up for that X coordinate you are looking for, the Y coordinates are each value on the list, assuming the origin of this plane on the top left corner.
I am extremely excited about this announcement! I’ve been fascinated by genetic algorithms for a long time, but I’ve had to portion out my time to learning one thing or another. Since my learning time is mostly spent in Elixir, this can kill two birds with one stone!
I have always found the topic interesting, but I really never found a use case for it. Most examples I see around are examples for which we already have a perfect algorithm - meaning we already know the solution. It may be these algorithms take a long time to run, but then again I would still wait in most cases instead of getting a “It is quite possible that this is the best solution” kind of answer.
Obviously, my preferences do not align if the run time is in the order of magnitude of, lets say, years of life the universe has.
So my question would really be: has anyone that had read this book found a real use case scenario for using it?
Right now I am working on what can be considered an auction sniper (there is an auction website, and my algorithm calculates the best price for my items given a few directions, like for example, how fast I want to get rid of said item). I understand the book has a chapter on finance, would this book hold value for the example I just mentioned?
Has anyone built cool things with the material from the book? I would really appreciate direction.
Maybe it is just me, but I truly look at this and I see a variant of the queens problem, but with additional limitations (such as fuel and horizontal movement only).
I will say I am impressed that someone picked up genetic algorithms as the first tool in their toolbet though. Really interesting !
Exactly correct for me I’ve been using genetic algorithm in one of our products where we needed to solve a problem similar to the Vehicle Routing Problem and this book helped a lot. While there are a lot of solutions for VRP, I think genetic algorithm is still interesting as the fitness function can be easily extended as the business evolves.
One thing I find hard when using genetic algorithms is modeling the problem, or how to present the solution better. I would be very happy If the book can provide more help on it.