Wednesday, April 11, 2018

Genetic Algorithms

Darwin was famously quoted as saying: "struggle for existence and survival of the fittest." We drop the first half of the phrase and stick to the fittest in the GA's. There is no dearth of literature on GA's. The following is a bird's eye-view of GA's which are the most similar to the way evolution happens among the species than any other algorithm even though GA's are mentioned along side Evolution Programming and Evolutionary Strategies--the parallel exploration of species' evolution. The GA algorithms' significance is: they not only provide a way to solve difficult problems such as engineering optimization--using strategies found in the nature--but also enable biologists to simulate various ways in which species evolve. Take for example Island Models where species "migrate" from one island to another. In the virtual world the islands are computers or CPU's and the migration is carried out by exchanging results from evolving some data with inter-process communication.

Before we dive into GA, let us understand what the developers of computers envisioned for their invention. Alan Turing and John Von Neumann are some of the earliest pioneers of computers. They wanted their invention to mimic the human intelligence besides carrying out arithmetic or number crunching. It is in this backdrop that the pioneer of GA John Holland came into limelight. His mentor Arthur Burks was a close associate of Von Neumann and they all shared the vision of computers learning and evolving just as humans do. It is not surprising because tools played an important role in our evolution. Even before fire was discovered, neanderthals had used tools for hunting and gathering. Over the millennia these tools had become more and more sophisticated. During the industrial revolution of the 19th century mechanization and automation was introduced to assist with our physical tasks. For instance automobiles freed us from the burden of riding horses or horse-drawn carriages. Noting that horses were domesticated by us and trading them for automobiles might slow down their future evolution. We similarly created genetic variants in agriculture to grow the sweetest mangoes and tastiest oranges.

As mechanization and automation freed us from physical tasks, it is only natural that we looked forward to freeing up our brains from routine tasks. Abacus played an important role in counting much before calculators and computers came along. But abacus was limited to manipulating a few numbers and doesn't scale with large numbers. With calculators we conquered the addition, subtraction, multiplication and division of large numbers. We don't consider these devices as intelligent though they are definitely faster than the fastest human computers like Shakuntala Devi. The ability of computers to play chess is impressive, but we still have grand masters who can routinely beat the computers. In other words, computers are not particularly smart and they dutifully do the crunching dictated by the algorithms we feed them. The quest is on to program a computer to do things that we consider as intelligent. Turing test was one of the earliest means to test the computer's abilities to fool a human tester. If the tester, in a double-blind setting, posed questions for which the computer gave answers that were similar to us, then the computer might be misidentified as a human. We are far from the vision of Alan Turing. We are, however, slowly getting there. And GA's enable the computers to replicate the biological processes. Far from perfect, it is a fledgling with about three decades of research and development.

Biological Background

Living organisms are made of cells that contain chromosomes which are vehicles to transfer genes from parents to offspring. The genes are master templates for proteins and represent traits. For example the color of hair is encoded in a gene. Besides genes chromosomes contain DNA which is the basic building block of life. Offspring emerges by the cross-over of chromosomes from parents. That is, parents' genes are passed on to the offspring in a non-deterministic manner which results in diversity among life forms. Some old lifeforms wither away and are replaced by their newer versions. We no longer see dinosaurs but see their evolved offspring. In other words, dinosaurs evolved into lifeforms like birds, crocodiles, etc.

So where is the DNA in all of these?

If Darwin's theory is a computing machine, DNA--later discovered by Crick and Watson--is the nuts and bolts of it. Without DNA there is no life! Let alone evolution. According to Wikipedia:

"DNA) is a thread-like chain of nucleotides carrying the genetic instructions used in the growth, development, functioning and reproduction of all known living organisms and many viruses. Each nucleotide is composed of one of four nitrogen-containing nucleobases (cytosine [C], guanine [G], adenine [A] or thymine [T]), a sugar called deoxyribose, and a phosphate group"

The GA researchers liken CGAT to alleles. These basic building blocks are rearranged by the organism inside an environment to create complex behaviors and structures, just as alleles 0 or 1 can represent the most complex problem down to the simplest example.

A GA Example

Let us say we have 8 notes such as in Indian classical music denoted as: s, r, g, m, p, d, n, t. We want to evolve these notes into raagas--which are like scales in the western music. We assume a raaga has these 8 notes arranged in some order to illustrate. So we represent them as follows:

001 s
010 r
100 g
110 m
111 p
101 d
011 n
000 t

Note that we used 0 and 1 (called alleles) to make them digestible by the computer in an efficient manner. Each of these strings 001, 010, etc. are called chromosomes in the GA literature. Once we defined the strings, the next step is to create intermediate population selected by fitness which is a measure of how well the string meets some specification. Scales starting with s-r-g-m-p-d-n-t, for example, could be considered as more fit than those starting with any other notes. The fitness could also be based on playing the notes on a musical instrument and determining if they are melodious. This is called simulation. In engineering optimization problems, the simulation could be model-based or an actual artifact made to a specification. Say you have a tank with certain volume to hold water and you want to connect a pump to the tank. How big of a tank or the horse power of pump is determined by some calculation. If the tank has 10 cubic meters of volume and the pump can handle 0.1 cubic meters per minute, then the tank will be emptied in 100 minutes. Bigger the pump faster the transfer. But there is a cost associated with it as bigger pumps cost more. Also the construction of tank itself is subject to some cost constraints.

Continuing with our musical notes and scales, we will now create chromosomes by pairing the notes

001001 ss
010010 rr
100100 gg
110110 mm
111111 pp
101101 dd
011011 nn
000000 tt

Now to make it interesting, the GA's cross-over the chromosomes. So let us create the cross-over at the middle (it can be anywhere within the string) of our chromosomes taking two at a time.

001010 sr
010001 rs
100110 gm
100100 mg
111101 pd
101111 dp
011000 nt
000011 tn

Now we created paired notes that are different from our original population. Let us apply the fitness. We agreed that scales starting with s-r are preferable. So we eliminate all but the top 2 to arrive at:

001010 sr.

But this isn't a scale that we have defined as containing 8 notes. For that we have to cross-over 001010 (sr) with other chromosomes by pairing them. So now our population (a term used by GA's to indicate the set of strings we are currently working with) consists of:

001010 010001 sr-rs
001010 100110 sr-gm
001010 111101 sr-pd
001010 101111 sr-dp
001010 011000 sr-nt
001010 000011 sr-nt

As you can see we have prefixed sr (001010) to every other chrmosome. Thus we have evolved the populaton to 4 notes. We also note that sr-gm is the one that closely matches with the fitness criterion. So we cross it over with others and continue this process two more times to arrive at the perfect scale s-r-g-m-p-d-n-t that we are seeking.

This example is perhaps the most elementary process in the world of music. But it is conceivable that our ancestors carried out similar reasoning when they "invented" the scales. Even if they didn't, this is one way to explain a novice how scales have evolved from notes. Most people are interested in a descriptive rather than a prescriptive solution. That is, we can tell a novice "a scale must have 8 notes" or we can say "a scale is of 8 notes selected based on their fitness". Which one of the explanations is more satisfying is up to the receiver. Of course, the explanation can be twisted to say "this is how you should learn" rather than "this is how it is learnt." Whatever explanation you choose we just made a GA for generating scales!

Mutation vs. Cross-over

A cross-over is how diploids like us evolve. Haploids however have single set of unpaired chromosomes. So how do they evolve? One answer is mutation. In evolutionary biology a mutation happens in genes. It is largely believed that blue or green eyes are a result of mutation. In GA's mutation is done by randomly switching the alleles (0 or 1). Let us say we have a chromosome --in the music example--001010 010001 sr-rs. Let us mutate the 4th bit from right to arrive at 001010 011001. This is actually sr-ns which could not be generated by cross-over. Of course, we could have mutated the 3rd bit from left and lost s note.

The question is which is better: mutation or cross-over? Some GA researchers believe cross-over is a metaphor for exchanging genes via mating rituals. And it is totally unnecessary to evolve the population in the virtual world at least. Their opponents reason that cross-over results in a faster convergence to the desired solution by searching across hyper-planes (a n-dimensional representation of search space that will be described next).

For instance each of the notes can be represented as existing in three dimensional space as a cube with its origin at 000. When we consider the scales, it will be a 8-dimensional hyper cube that computers can search through even though we can't easily visualize it. The result is cross-over transfers a larger set of chromosomes than mutation that can be limiting the search for one or two alleles at a time. It can be seen when you decide to mutate a set of alleles based on some criteria. If we define fitness function as notes starting with n-r-t, then it is possible to mutate the lower bits keeping the higher bits the same.

Search Space

We can say the search space is a way to describe the number of generations the GA algorithm has to go through before arriving at the solution. In our example, we needed 4 generations to create scales.In theory though we had 2 raised to the power of 24 or 16,777,216 (almost 17 million) strings to search! Even for computers this is a herculean task. If we randomly generated the strings and applied the fitness function to them, we would be needing 17 million trials! If a string has length L and there are 2 alleles, the search space is 2 raised to the power of L. For 3 alleles, it is 3 raised to the power of L. And so on.

In general though search space refers to the set of potential solutions and a notion of distance between them. We already looked at the solution space which for GA is an exponential. How about their distance? There are several ways the distance between 2 strings can be found. One is called Hamming distance. From Wikipedia Hamming distance is defined as:

In information theory, the Hamming distance between two strings of equal length is the number of positions at which the corresponding symbols are different. In other words, it measures the minimum number of substitutions required to change one string into the other, or the minimum number of errors that could have transformed one string into the other. In a more general context, the Hamming distance is one of several string metrics for measuring the edit distance between two sequences.

It is now clear that an algorithm that has the knack to figure out the distance between the current solution and the required solution wins! And GA's will get you there faster than any other method.

Where do alleles come from?

In the musical scale example we have started with a set of notes. Where do the notes or alleles, come from? We have at least two ways of explaining them. The notes are primordial or they are a subset of our speech that is taken from our musical repertoire. First we recognize that each note represents a frequency of sound. If they are primordial, we can conceive that the creator incorporated them in the creation at the beginning of time. String theorists believe that vibrational particles with mass, charge and other properties created the universe. So, for example, an electron is a manifestation of a vibrational state of strings. Some theologians believe that the first documented human knowledge was in vedas which state that the creator uttered aum resulting in the creation of the universe. This observation is compatible with string theory that has no reference to vedas. We can hypothesize that at time=0 a primordial universe was formed from aum which took the course of big bang and evolution of life. There is no need to believe that creation and evolution are mutually exclusive. In GA's we take alleles as pre-existing. GA's can't invent them all by themselves. Computer scientists use binary strings made of 0 and 1 because that is how computers represent all the data, including programs, in their memory which is orchestrated by transistors that switch either on (1) or off (0). Engineers might use real numbers to solve optimization problems which are also represented as 0 and 1 by the underlying computer architecture without GA explicitly knowing them.

Schema Theorem and Elitism

In GA world, a schema is a chromosome containing 3 alleles: 1, 0, *. For example we could have defined our scales as s-r-*-*-p-*-*-*, where we used * to indicate we don't care which note appears there. So s-r-s-r-p-d-n-t could have been a candidate. Any chromosome that is represented with these 3 alleles is called a schemata or schema. Now the schema theorem says:

M(H,t+1) = M(H,t) f(H,t)/f (1-p) + p [(1-losses) M(H,t)f(H,t)/f + gains]

Where M(H,t) = the number of string samplings on a hyper plane (current solution) at time t
f(H,t) = average evaluation of the sample of strings
f = cumulative of  f(H,t) over all hyper-planes
p=probability of cross-over

After some simplification we get

M(H,t+1)/M(H,t) = pf(H,t)/f + constant

So how is it going to be useful? For that we need to divide M(H,t+1) and M(H,t) with M which is the search space.

P(t+1) = P(t) * constant1 + constant2

where P is the probability of a generation. With some assumptions we can say that the probability of a generation is deterministically dependent on the previous generation. This is called Elitism in GA where a chromosome crosses over with all of its children and grand children and so on. Gengiz Khan whose genes can be traced to one in 200 people is probably considered as an Elitist.

Then we can ask if it is deterministic how can new species arrive in the nature? If dogs could evolve into seals by virtue of being able to swim, how can we explain it? Obviously GA is not going to help you with that. Reading Darwin's manuscripts might help.

Natural Selection

Darwin was not very clear on how nature selects a specie. This is not to say he didn't know. We know that species evolved over millions of years. That means, the natural selection is a continuous process. Some evolutionists believe species would suddenly appear where none could be found (say volcanic explosion). This is as good as saying an alien ship brought them.

In GA's, selection is, as already stated, by fitness. A chromosome selected for cross-over, by default, is fit. If a chromosome is totally dropped, it is because it is replaced by a child chromosome. This has a parallel in our world as generations of people bearing the same last name (patrilineal which Wikipedia defines as "the male line or agnatic kinship, a common kinship system in which an individual's family membership derives from and is traced through his or her father's lineage").

Perhaps nature is random in selection. GA's that use Roulette or Tournament selection follow this precept. In Roulette a wheel divided into equal sections is spun to select a chromosome for cross-over. In Tournament selection two chromosomes are randomly selected from a population and one of them is eliminated based on fitness.

Do GA's find Global Optimum?

To understand optimum solution, we need to understand the shape of solution space first. In engineering an optimal solution is the one that maximizes or minimizes a function. For example, in car manufacturing you want to maximize fuel consumption and minimize the wear and tear of tires. In economics you want to maximize yield of an instrument and minimize the load associated with it. So on so forth. Let us say we have the following equation:

a + 2b + 3c + 4d = 30

where a, b, c and d are variables

Suppose we want to find the values of these variables that satisfy the equation. One solution is a=10, b=2, c=4, d=1 just from inspecting it. But how do we know if there are other solutions and the one we found is the most optimal? For that we have to visualize a landscape with valleys and peaks. The optimal solution is found either in a valley (minimum) or a peak (maximum). For example if we set b=c=d=0 that gives us a single variable function. We can identify that a=30 is one feasible solution. Thus we found 2 solutions that are feasible and probably optimal but not globally optimal. We can posit a global optimum because of the feasibility of several solutions (a=b=d=0,c=10; a=c=d=0, b=15; etc.). Therefore a global optimum is one based on some criteria. We can say we want to find a solution where a,b,c,d can take any integer value not zero. One such solution: a = 7, b = 5, c = 3, d = 1 was found by a GA starting with random integer values such as these:

Chromosome[1] = [a;b;c;d] = [12;05;23;08]  
Chromosome[2] = [a;b;c;d] = [02;21;18;03]  
Chromosome[3] = [a;b;c;d] = [10;04;13;14]  
Chromosome[4] = [a;b;c;d] = [20;01;10;06]  
Chromosome[5] = [a;b;c;d] = [01;04;13;19]  
Chromosome[6] = [a;b;c;d] = [20;05;17;01] 

Notice that we are not using bit strings. That the GA finds a solution at all is a mystery. Once it finds a solution whether it is globally optimum is yet another mystery. Some evolutionists suggest that one can use a gradient search to scale the peaks in the solution space. This is called Lamarckism (or Lamarckian inheritance) which from Wikipedia "is the idea that an organism can pass on characteristics that it has acquired during its lifetime to its offspring (also known as heritability of acquired characteristics or soft inheritance)". In other words, the GA can go back and forth between cross-over and Lamarckism in its quest to find the global optimum.

GA and Machine Learning

After this tour de force, can we say GA is a kind of machine learning? What is being learnt here is a process similar to generate and test or means-ends analysis or a combination of both. In generate and test, scientists consider multiple hypotheses at the same time and test one at a time. It is a slow process, but once completed is guaranteed to find a hypothesis that explains the data if the set of initial hypotheses contains the correct one—which is not always the case. In means-ends analysis, an objective function (ends) is tested for optimality based on a set of operators (means) by evolving the initial set of variables. In both these cases we can achieve convergence, a term to describe success in searching for an optimal solution, by carefully selecting the variables and manipulating them.

There is no mystery in GA's if the initial hypotheses (chromosomes) considered are potential solutions already. After all the selection, cross-over and mutation, the fitness is going to determine the final candidate solution. There are so many ways to define fitness. In biology fitness is often equated with the number of progeny. The more prolific an organism in nature, the more fit it is. By this measure, we can say if the E.Coli cellular division is uninterrupted with infinite food resource, then they fill up the whole earth and beyond. Luckily there is no infinite food source that the E.Coli can tap into. Nevertheless E.Coli is perhaps the most fittest organism nature ever created. We are taught early on by governments and scientists that population control is an imperative if every one needs to enjoy a higher standard of living. on why our ancestors chose to have multiple offspring was the prevalence of disease and famine. Not to mention malthusianism which is the idea that population growth is potentially exponential while the growth of the food supply is arithmetical at best. This completely contradicts with the way we have evolved over millennia. One reasWith the advances in medicine and agriculture, these obstacles are being overcome.

The prevailing trend in machine learning is, where we fail to solve complex problems, such as robots identifying the enemy and annihilating the enemy leaving good guys out, computers can be coached. It assumes that we need to be able to define the problem fairly accurately. In most cases, we can't do that. Robots have come to mean, for instance, the ultimate machine learning tools. Suppose, we want an office bot to bring us a stapler from a cabinet down the hall. The way to do it is manifold. You can create a rail line between the supply room and your cube and the robot is the train that goes to the cabinet, pushes a button—much like a vending machine—and brings the object you desire. The solution is feasible but not practical. We can't have rail lines crisscrossing offices. An acceptable solution is to create a robot fitted with a camera and move its limbs to accomplish the mission. But this solution is so much more complicated. Using the camera's visual inputs the robot may have to climb stairs, move its limbs carefully to not step over others' feet and last but not least grab the stapler ever so gently not to crush it (and making sure there are enough staples). Even after accomplishing this task, can we say the robot has learned anything? All we know is the robot is an accomplished stapler retriever. Can a robot understand what a staple is? So can we make robots that learn any retrieval task? For that scientists use the term “behavior.” If we can teach a set of behaviors to a robot, then we can expect the robot to function anywhere and do any task much like we do. An example of a behavior is a motor skill that involves extending arms, rotating wrists and grabbing an object with fingers. As you can see the more generally we can define our problem, the more compositional it becomes, and GA's cut through this complexity of compositions by representing each behavior as a chromosome.

What is the goal of Evolution?

If Darwin didn't publish his theories, humans would still be recanting the mythologies rich with interesting characters --that seem to emerge from nowhere—to explain our existence. However, the evolutionists that followed and including Darwin couldn't answer the question: what is the goal of evolution? If genes were independent of each other, and don't mutate, then we would all be sharing the same genes and potentially remain on earth for ever. Would that be a desirable outcome? If medicine could make us disease-free, does it mean we could become immortal? In reality genes are not independent of each other and they mutate and cannot in their natural course make us super beings. It is probably not far from truth to state that all humans are fallible because genes are not copied exactly from parent to offspring. In other words, nature makes mistakes as it marches forwards. We being subservient to nature share all things natural. We are expected, naturally, to steer evolution towards a purpose: a just society, a literate nation, planet free from hunger, etc. Those in the opposing camp, believe in intelligent design which has been stated as: certain features of the universe and of living things are best explained by an intelligent cause, not an undirected process such as natural selection. If you are an oncologist you would think cancer could not have manifested itself under intelligent design. So are auto-immune diseases where an organism's own cells suppress the immunity and make it susceptible to invasion by microbes. On the other hand, with machine learning, we are indeed adopting intelligent design, by making infallible robots. So evolution and intelligent design are not all that apart. Computer scientists unwittingly embrace intelligent design in their inventions and compete for the grand prize which could not be defined easily and elusive at best except by selection!

Can natural selection be democratic?

What if in a GA, a set of observers voted on the best outcome? Suppose a GA evolves 10 scales of music. Can it ascertain for itself which one out of the 10 is most melodious? After all, the computer on which the GA runs has no representation of melody which is intrinsically human. Leave aside GA, what about little children as they are growing up, can they identify melody? As children they are exposed to lullabies and animations, that make them musical experts in their own right. It seems the good taste for music is both natural and acquired. There is no indication that natural selection can be democratic. If it is so, who are the observers voting? Some are content to theorize the elite, even in a democracy, decide what survives. So if there is a vote, it has to be among the elites, but not the hoi polloi. For instance, British royals had exported the English language and their mannerisms to their colonies and shaped the evolution of the colonies. If you have to conduct a vote on the best computer scientist, obviously it can't be among the common people without the knowledge of computer science (otherwise Bill Gates will be chosen).

Can evolution be stalled?

Suppose UN declared universal holidays round the year with all play and no work except for people producing basic necessities of life like food, housing and clothing. The rest of us not producing basic necessities would be making better tools for them. This is what can happen with machine learning. As machines carry on our tasks we would be designing better algorithms and feeding them to sustain the machines. Some of us would be working on programs that generate programs. It is not all that far fetched given that John Koza, a prodigal student of GA founder John Holland, created a GA that evolves best computer programs by rearranging the subroutines. This goes with the belief that all the ingredients to achieve a perfect machine learner have already been made. For those of us aware of classical music, the many melodious permutations and combinations of notes have been invented by the likes of Mozart, Beethoven, et al. When the music evolved into rock and roll, blues, jazz, pop, etc. they are not all that apart from classics. They are merely a rearrangements of notes already developed by the classical musicians. If they are able to invent a new musical instrument, the notes to play are still the same, even though their arrangement varies from musician to musician. In a sense with the advancement of science and technology the evolution of natural processes has been out-paced by the evolution in the tools and artifacts. So in a relativistic sense natural evolution has been stalled. We might make a super-smart computer in our life-time, but nature cannot produce a bird that can type in a reasonable time. This leads to the topic of species extinction. Nature makes way for newly evolved species by making their parents extinct. Case in point is dinosaurs. But this happens over thousands of years. But these days we hear about more species extinct than evolved. For example, frog populations, considered as harbingers of earth's climate change, have been declining under the evolutionary pressure created by human demand for land by destroying their habitat. Some frogs have also been declining because of a fungus called chytrid. Whom do we blame for the decline of frog population? Some argue the species of frogs like Macaya Brest-Spot are not fit to survive in the new man-made environment by natural selection. Either they evolve or unfortunately, perish.

DNA Computers and GA

Many believe we have reached the limit in silicon based chips that power the computers. The silicon chip manufacturing industry for a long time followed Moore's law which refers to the observation of Intel co-founder Gordon Moore in 1965 that the number of transistors per square inch on integrated circuits would double every year. Fast forward to 2018 and we can note that the windows had slipped from one year to 18 months. It is conceivable that this follows diminishing margin of returns that can be represented as an S-curve. At the beginning the S curve has an asymptotic line when computer were made of vacuum tubes. After the invention of transistor the growth has been exponential as per Moore's law. Now we are at the peak of the S-curve where the line is flat. So where do we go next? Some scientists experimenting with DNA, the material our genes are made of, are of the belief that it is the fastest computer we can conceive of. This seems like great news for GA because the architecture on which GA's can run be made of bio chips or native, boosting their performance. There is a caveat though. Aeroplanes don't function like birds, even though they both fly. They are based on aerodynamics and fluid mechanics. One of the earliest AI languages LISP was programmed on LISP based silicon chips and it has largely been extinct. If the evolution of computers takes the course of bio chips, for Moore's law to be sustainable, we will know if GA's can survive based on what else but their fitness!

Genetic Engineering with GA

Genetic Engineering(GE) applies biotechnology to modify genes in vivo and create an organism with the altered genes. Ever since GE was developed in the 1970's, it has been applied from animals to plants. For exampe, vegetables with longer shelf-life are preferable to the retail sellers. Also animals with impaired insulin production to cause diabetes can be cured. And so on. The practical application of GA, besides engineering optimization, has been with electronic circuit design. Unlike GE, where it was feared one day scientists would create a monster no one can destroy, GA's success is modest and was feared can become a mad technician creating every conceivable electronic circuit and applying for patents. Both haven't materialized partly because of self-regulation by the scientific community.

Putting it all together

GA's are inspired by the biological aspects of nature and consider nature as primarily intelligent. They may mimick the nature but cannot help us unravel all the mysteries of nature. So GA is a means to create a machine learner that can launch us to inter-planetary travel one day and meet alien species that are evolving like us in the vast universe. If Darwin's theories are universal—there is no reason to believe otherwise—so are GA's. Evolutionary programming in general have made us appreciate natural selection and fitness. Not all people are judged this way and a just society goes out of its way to accommodate people with special needs. Each life is but one data point in the sprawling graph of nature. Its fitness is determined by some criteria like height, weight, number of offspring, etc. GA's can process millions of permutations and combinations, on appropriate hardware, in a shorter time span. The ability to understand and improve GA's lies in studying the search space or hyper-planes. Most GA's are non-deterministic and provide new hypotheses for scientists to test. As a tool for scientific research and engineering optimization GA's are pre-eminent. And understanding how they work will enable us to create faster and better machine learners that are going to make our lives richer.

References

http://www.boente.eti.br/fuzzy/ebook-fuzzy-mitchell.pdf is an e-book by Melanie Mitchell

https://arxiv.org/ftp/arxiv/papers/1308/1308.4675.pdf has a mathematical optimization problem solved with GA

http://www.cs.colostate.edu/~genitor/MiscPubs/tutorial.pdf is a tutorial on GA's

www.intelligentdesign.org

No comments:

Post a Comment