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
|