## Intro

I had been looking for a reason to use my google api key. Along the way, I picked up Jillian's key also. This program uses both keys (i hope that's cool with google). They are passed on to the program through an initializing file (not included with the source of this).

## The GA

Creates strings (groups aplhanumeric chars [a-z] separated by spaces. Google doesn't case-differentiate. Plans of including digits.

### Getting it to work

The software is in uncompiled perl. The ouput is meant to go to the web directly and is in html. When you run the program, you need to pass as argument an initializing file in this format:

• first line: address of ftp site (to which you have write access)
• second line: path where the results will be saved on the ftp site
• on every subsequent line: a google api key

The population is initialized from this file. If you want it initialized from another file, you have to hack my code (which you're probably going to need to do anyhow).

The program will also put another file on your ftp server (Population.html) where you can see the population in a human readable print;

### The Objective Function

Gives back a number between 0 and 100 Calculated a polynomial with these factors:

• \$_H_W\$ = The number of hit that is obtained from the google query of the string For example, "king sera" will assign 667000 to F1, the string "my" will assign 910000000 to F1 and the string "my king sera" will assign 212,000 to F1 (at the time of my writing this). ie: the more hits, the better

• \$_N_W\$ = The number of words that make up the query. For example, "king sera" will assign 2 to \$_N_W\$, the string "my" will assign 1 to \$_N_W\$ and the string "   my k king sera" will assign 4 to \$_N_W\$ ie: the more words, the better

• \$_AV_W\$ = The average length of the words in the query ie: Words that are longer will do better than words that are shorter

• \$_LD_W\$, calculated using as the sup of the sequence obtained from removing all the spaces in the string and calculating the pattern from the string (see Word Patterns)

The formula for calculating \$Eval_w\$ is this one: \$((_H_W == 0)?0:(1.0/_H_W)) * ((_AV_W * 20) + (_LD_W*30) + (_N_W*5))\$;)