Space of possible solutions: P = [..............] Fitness function: f: P -----> R+ f(a) < f(b) : b is "better" than a maxa:P(f(a)) = 66 Threshold value c: If a:P is such that f(a) >= c, then a is acceptable. Ex. Sorting algorithm for arrays of size 100. Given a test set of arrays to be sorted and a sorting algorithm b, f(b) = the average number of array locations in right order. If c = 100 then f(b) = 100 /* sorts all numbers */
P [population of solution] <-----+ | | | | V [application of genetic operation to P] / \ | ,_______/ \__________________| | YES \ / NO | \_/ V Return x
Questions
Example: (1) Behaviour of a game character a1 a2 a4 p1,p2,...,p100 p1,p2,...,p100 p1,p2,...,p100 1 0 1 1 1 1 0 0 1
Our character's "genetic code" (or representation) is a string of 0's and 1's.
A. Random mutation [010..|x| ... ] (Randomly Selected) --α-- --β-- to: [ α | 1-x | β ] B. Cross Over [ x1 | y1 ] [ x2 | y2 ] to: [ x1 | y2 ] [ x2 | y1 ] (Chunks of same size must be replaced.)
A G.A. selects a set of elements from Pi and sends them directly to Pi+1, then selects another set (parents), finds the offspring using genetic operations and sends the offspringto Pi+1
The selection of x depends on the value of f(x). E.g. the elements
with large values of f(x) have high probability of being selected.
pr(x) = f(x)/c
Genetic Algorithm INPUT: P(0) - initial population f - fitness function c - treshold OUTPUT: x such that f(x) >= c METHOD: Step 0: P(i) = P(0) Evaulate all the elements of P(i) using f WHILE termination = false A. select parents from P(i) based on fitness B. generate Offspring from parents usings genetic operations C. generate a subset L of Pi based on fitness D. P(i+1) = Offspring U L E. Evaluate all the elements of P(i+1) using f. If there is a x in P(i) such that f(x) >= c Then return x Else i = i + 1
Example: Given a set, S of say, 1000 clauses, find a truth-value assignment h that makes all these clauses true (if possible). C1,C2,...,C1000 , p1,...,p100 (Only one genetic operation - random mutation) h1 1, 0, ..., 0 h2 0, 1, ..., 1 ... h500 1, 1, ..., 1 f(h) = the n number of caluses true under h. c = 1000