534: Genetic Algorithms

Explain xkcd: It's 'cause you're dumb.
Jump to: navigation, search
Genetic Algorithms
Just make sure you don't have it maximize instead of minimize.
Title text: Just make sure you don't have it maximize instead of minimize.


In the Computer science field of Artificial intelligence, a Genetic algorithm is a search heuristic that mimics the process of natural evolution. This heuristic is routinely used to generate useful solutions to optimization and search problems. Genetic algorithms belong to the larger class of evolutionary algorithms, which generate solutions to optimization problems using techniques inspired by natural evolution, such as inheritance, mutation, selection, and crossover.

In particular, genetic algorithms are designed to evolve, with various mechanisms being used to mimic natural selection. One such mechanism is to assign "costs" to various aspects of the program, and to select for programs which minimize a Fitness function calculated as the sum of all these costs (thus mimicking organisms in an environment where they have to compete for limited resources).

The line indicated by an arrow is a reference to the Terminator series, in which the main antagonist is an artificial intelligence known as Skynet that seeks to destroy all humans. By setting an absurdly high cost for an algorithm transforming into Skynet, the coder makes a preventive measure against the algorithm achieving such sentience.

The line about water crossing is a possible reference to the old computer game Oregon Trail, in which crossing water was hazardous. This video game was referenced again in 623: Oregon.

The title text refers to the method by which the program select the desired option, with minimizing being where the program seeks the lowest possible number, and maximizing where the program seeks the highest possible number. When dealing with cases such as generating profit, maximization would obviously be preferred over minimization; but selecting maximization here would be disastrous as it would always chose the BecomingSkynet option before any other due to its massive cost.


[Code displayed, presumably from an IDE.]
def getSolutionCosts(navigationCode):
fuelStopCost = 15
extraComputationCost = 8
[There is a giant arrow pointing to the next line.]
thisAlgorithmBecomingSkynetCost = 999999999
waterCrossingCost = 45
Genetic algorithms tip:
Always include this in your fitness function.

comment.png add a comment! ⋅ comment.png add a topic (use sparingly)! ⋅ Icons-mini-action refresh blue.gif refresh comments!


No comments yet!