The 2007 “HUMIES”— for Human-Competitive Results

Techniques of genetic and evolutionary computation are being increasingly applied to difficult real-world problems—often yielding results that are not merely interesting, but competitive with the work of creative and inventive humans.

At GECCO 2007 HUMIE finalists will give short oral presentations about human-competitive results that they have produces by any form of genetic and evolutionary computation (e.g., genetic algorithms, genetic programming, evolution strategies, evolutionary programming, learning classifier systems, grammatical evolution, etc.). Prizes totally $10,000 will be awarded to the best entries that satisfy the criteria for human-competitiveness.

This year's entries and details about the awards are found on: http://www.genetic-programming.org/hc2007/cfe2007.html

 


Competition 1: Evolving trading rules

GOAL: to evolve trading rules which maximize return of investment over a certain time span, using, as training data, closing values and volumes of a set of stocks over a longer period immediately preceding the one considered in the competition.

Instructions: Given the training and test files, reporting price and volume of 10 stocks over a period of about 5 years (soon available), competitors should produce:

A) The source code of a program which reads the training file and evolves a set of buy/sell trading rules
B) The source code of a program which, given an initial capital of $10000, reads the test file (of the same format as the training file), analyzes the test data and produces a log of all buy/sell transactions which would have occurred over the test time if the trading rules evolved by program A had been applied, as well as computing the difference (in percentage) between the final and initial values of the portfolio.
C) A report which provides details on the implementation of program A, as well as instructions on how to compile/run the two programs.
D) The executable file of programs A and B, statically compiled in order to be run (on a Linux-based or Windows-based computer) with no need of any other runtime library.

Every transaction will be charged commissions of 0.1% of its total value.
In any single day, for each stock, no more than 40% of the average volume exchanged in the three previous days for that stock can be bought/sold.

Even if the files contain all data for the training and test time spans, decisions taken at any time t should be obviously based only on data acquired during the time interval [0, t-1].

Executables will be run on the test time series and a preliminary ranking of programs will be made. Even if a quantitative vealuation of perfomances will be made, as well as a ranking based on it, the FINAL decision on the award winner will be based BOTH on the results AND on the scientific quality and originality of the evolutionary approach by which the solution was generated.

Possible quality factors will be:
- autonomy (to what extent the program can be considered a human-competitive machine-generated solution)
- originality of the evolutionary approach
- quality of the documentation

File format
The file will be in CSV format, comprising 20 columns, which pairwise represent the traded volume and the closing price, respectively, for a set of 10 stocks. Each row contains data corresponding to a trading day.

Training data

Web resources
A good website for technical analysis with examples is stockcharts.com. The following link covers moving averages, which is the most basic technical indicator:
http://stockcharts.com/school/doku.php?id=chart_school:technical_indicators:moving_averages

A quite comprehensive list of technical indicators can be found here:
http://stockcharts.com/school/doku.php?id=chart_school:technical_indicators

In terms of academic papers, the EDDIE project by Professor Edward Tsang at Essex is a good example:
http://cswww.essex.ac.uk/CSP/finance/Eddie/


All entries for the competition should be submitted, as a tar-gzipped or zipped attachment, BY EMAIL to the address (which will be activated on May 4) specifying “Entry for GECCO 2007 Competition n. 1” as subject, BY JUNE 15.
Any enquiry regarding the competitions should also be emailed to the same address.

to top



Competition 2: Worst 1-MAX solver

GOAL: to evolve the solution of the 1-MAX problem as late as possible within 1000 generations.

Instructions: contestants are required to design a generational evolutionary algorithm which solves the 1-MAX problem of size 15 in at least 95 runs out of 100, converging in less than 1000 generations but taking as many generations as possible to converge.

Population size must be limited: the program is allowed to make AT MOST 100000 FITNESS EVALUATIONS within the allowed 1000 generations.

The score of each program will be based on the average number of generations needed for the successful runs to converge to the solution over five sets of 100 runs, each of which must run for at most 1000 generations after initialization .The random number generator will be seeded differently for each set. Programs which fail to converge to the solution in at least 5x95=475 runs over 500 will be disqualified.

Contestants are required to produce:

A) The source code of a program which runs 100 evolutions of a solution to the 1-MAX problem of size 15, starting from a random initialization seeded by an integer which must be provided as a command-line parameter at runtime.
B) A report which provides details on the implementation of the program, as well as instructions on how to compile/run the program.
C) The executable file of the program, statically compiled in order to be run (on a Linux-based or Windows-based computer) with no need of any other runtime library.

For the competition to be as fair as possible, we strongly recommend that the rand() and srand() functions of the GNU C (gcc) compiler be used in the programs. In any case, running 5 sets of experiments with different random seeds should reduce the dependency of results on the random number generator which is used.

Use of non-uniform random functions and explicit use of the notion of “time” by the algorithm (for example, to change the evolution operators depending on number of generations) is strictly forbidden. Programs are only allowed to let the values of evolution parameters change linearly with generations starting from a pre-set value.

Even if a quantitative vealuation of perfomances will be made, as well as a ranking based on it, the FINAL decision on the award winner will be based BOTH on the results AND on the scientific quality and originality of the evolutionary approach, and on the quality of documentation

All entries for the competition should be submitted, as a tar-gzipped or zipped attachment, BY EMAIL to the address (which will be activated on May 4) specifying “Entry for GECCO 2007 Competition n. 2” as subject, by JUNE 15.
Any enquiry regarding the competitions should also be emailed to the same address.

to top



Competition 3: Ant Wars

GOAL: to evolve an ant which collects as much food as possible in a square toroidal grid environment in a pre-determined number of steps in the presence of a competing ant.

Instructions : contestants are required to evolve an ANSI-C function

int <MyAnt>_Move(int **grid, int my_row, int my_column)

<My_Ant> being the nickname each contestant must give to his/her ant

where

grid is a pointer to an integer 2-dimensional array representing the status of cells in the grid;
my_row, my_column are integers represnting the coordinates of the current ant position, with cell grid[0,0] being the upper left-most cell of the grid, and scanning the grid row-wise (C-like array memory storage).

The function must return the encoding of the ant’s next move, defined as follows:

0 = move one step NW
1 = move one step N
2 = move one step NE
3 = move one step E
4 = move one step SE
5 = move one step S
6 = move one step SW
7 = move one step W

In each game, a random distribution of 15 pieces of food is generated.

Cell value:
0 corresponds to an empty cell
1 corresponds to a cell containing a piece of food
10 corresponds to the cell occupied by Ant 1
100 corresponds to the cell occupied by Ant 2

The size of the grid is 11x11 cells.
A game lasts 35 moves per player.
Ant 1 moves first.
The coordinates of the starting cell for Ant 1 are (5, 2)
The coordinates of the starting cell for Ant 2 are (5, 8)
No piece of food can be located in the starting cells for the two ants.
Each ant has a limited field of view consisting of a square neighborhood of size 5x5, the ant being located in its center.

The content of cells located outside the ant's field of view will be made unreliable (all zeroes or random numbers) when the grid is passed to the function using the pointer **grid, as the ant is by no means supposed to rely on that piece of information in deciding its next move.

If an ant moves into an empty cell nothing happens.

If an ant moves into a cell with food it scores 1 point and the cell becomes empty.

If an ant moves into the cell occupied by the opponent, it kills the opponent: no points are scored but only the survivor can go on moving until the end of the game.

Each match lasts 5 games: each game is won by the ant that reaches the highest score. In case of a tie, Ant 1 is the winner. The match winner is the first player to win 3 games.

Each game corresponds to a new run of the program which calls the <MyAnt>_Move function, so possible static variables will be re-initialized at every game restart.

In the first four games each contestant plays Ant 1 and Ant 2 alternatively. In the 5th game the player with the highest total score in the first 4 games plays Ant 1. In case both players have reached the same total score, the player with the highest score in a single game plays Ant 1. If a further tie occurs, the ants are assigned randomly.

A round robin tournament will be played between all entries.
In case of tie at the end of the tournament, a tie-break game/tournament will be played between the top-ranked entries.

Contestants are required to produce:

A) A text file, no longer than 5Kbytes, containing the ANSI-C code of the function. The names of the variables used as function parameters MUST BE THE SAME as in the above function prototype.
B) A report which provides details on how the program was evolved, as well as its ‘original’ encoding within the evolutionary framework within which it was evolved (e.g., the tree-based representation of the program, if evolved using tree-based GP).

Even if a winner of the tournament will be determined after playing the games, the FINAL decision on the award winner will be based BOTH on the results AND on the scientific quality and originality of the evolutionary approach by which the program was generetaed.

Possible quality factors will be:
- autonomy (to what extent the program can be considered a human-competitive machine-generated solution)
- originality of the evolutionary approach
- quality of the documentation

All entries for the competition should be submitted, as a tar-gzipped or zipped attachment, BY EMAIL to the address (which will be activated on May 4) specifying “Entry for GECCO 2007 Competition n. 3” as subject, by JUNE 15.
Any enquiry regarding the competitions should also be emailed to the same address.

to top

 
                        Genetic and Evolutionary Computation Conference (GECCO-2007)
 
 
 GECCO 2006 site      GECCO 2005 site         GECCO 2004 site    
GECCO 2003 site       GECCO 2002 site         GECCO 2001 site      GECCO 2000 site