Presentation on theme: "Some interesting papers UKCI '02: Aniko Ekart: GAs for discrete sequence prediction Given a long, long sequence of integers, eg 1,2,0,2,1,1,3,1,2,0,2,0,1,2,1,0,3,3,...,2,0,3."— Presentation transcript:
Some interesting papers UKCI '02: Aniko Ekart: GAs for discrete sequence prediction Given a long, long sequence of integers, eg 1,2,0,2,1,1,3,1,2,0,2,0,1,2,1,0,3,3,...,2,0,3 what comes next? The idea: work out the probability that it is j, using statistics from all subsequences of length i
Discrete sequence prediction Then define... use a GA to find the suitable weights. This weird idea won the Binary Time Series contest at CEC '99
Slime mold simulation UKCI '02: Joe Rothermich and JFM: Studying the emergence of multicellularity with Cartesian GP in ALife ● Lots of simulated cells, each controlled by an evolved controller ● They can move influenced by chemical gradients ● They can release chemicals ● They can divide – a cell dies when it divides, and produces two mutated children ● They have energy, there are energy sources
Cartesian GP: repesentation Each chromosome holds N nodes; a node describes a function block and is described by four integers: 1: the function 2: external input 3: link to a node 4: link to a node 0 = do nothing 1 = move towards (2) 2 = move away from (2) 3 = if (2) present do (3), else (4) 4 = if (2) present do (4), else (3) 5 = if energy > UPPER do (3) else (4) 6 = if energy < LOWER do (3) else (4) 7 = do (3) then divide 8 = do (3) then release chemical The functions:
Cartesian GP for slime molds Example: If chemical 1 is present then do node 0 (= do nothing) else do node 0 (= do nothing) Do nothing Move towards chemical 0
Slime mold simulations Some results: ● Some nice groupings ● Often: “divide only when near energy source” ● Demo source in /home/shared/peter/software in the archive file cells.tar.gz
Robot body plans: what's best? SAB-7: Josh Bongard, Rolf Pfeifer: A method for isolating morphological effects on evolved behaviour Idea: 10 different body plans, each with 4 touch sensors, 4 angle sensors, eight one-degree-of- freedom motors. Use a GA to configure a recurrent net: how far can the robot go in 500 time steps?
Robot body plans Some bodies: Vortex physics engine from - commercial product - handles graphics, collisions, gravity, friction etc
The neural net controller Motors Touch sensors Angle sensors Recurrent 3-node hidden layer Chromosome: 68 weights (including bias weights), each in
Evolving NN-based controllers ● Population size 300, run for 200 generations ● Strong elitism: copy the top 150 into new generation, and then... ●... use tournament selection of size 3 to choose parents from these 150, to create another 76 ●... and finally generate the last 74 by mutating some of the bottom 150 of old population
Robot morphology tests ● 10 GA runs per body ● Fitness = how far a chosen body part has moved after 500 time-steps of the simulation ● Results: ● Rhythmic gait readily emerges... (hmm) ● Too many or too few legs creates problems
Evolution of active vision SAB-7: Davide Marocco and Dario Floreano: Active vision and feature selection in evolutionary behavioural systems The ideas: ● First: neural net controls size and motion of a simple `retina' (3x3 grid) as it looks for a black square or triangle somewhere in a white box ● Second: NN controls pan-and-tilt camera on robot ● Third: same idea applied to a simulated car world
Simple active vision ● `Retina' = 3x3 grid of variable size ● Can also be moved by giving distance and direction ● Returns either average value of 9 cells, or value of top-left cell ● System outputs one of “triangle” or “square”
The neural net used Outputs: 1: it's a triangle 2: it's a square 3: average, or top-left 4: retina size (as %) 5: distance to move (as %) 6: direction to move Boundary bit Retina The net outputs are fully recurrent, that is, each is connected to all the others
The GA used ● Trained on 20 images, each with a triangle or square of random size in random position ● NN gets 50 time-steps – one time-step per move ● Fitness = proportion of correct classifications over the time-steps (NB: cannot say “don't know”, so never perfect) ● Typical evolved behaviour: move toward the shape and scale down, then oscillate vertically looking for a straight edge (if so, square, else..)
Applying it to a Koala robot ● Pan-tilt camera with 240x240 grayscale image ● Infrared sensors on robot as well ● NN controls robot, camera pan and tilt ● Aim: the robot should travel as far as it can without hitting anything ● Evolved on the robot itself: each generation took 1.5 hours, needed around 12 generations in all
Applying it to steer a simulated car ● Car World: available as source, runs on Linux and Windows: carworld.sourceforge.net ● Artificial 3x3 retina evolved to track road edge ● Motion of retina controls vehicle steering
Ant colony: some analysis GECCO-2002: Daniel Merkle, Martin Middendorf: Studies on the dynamics of ant colony optimisation algorithms Idea: permutation problems: n cities, costs Cij >0 to go from i to j, find min-cost tour. Analysed mathematically, results compared to simulations Outcome: ACO behaviour depends in a complex way on the parameters of pheromone updating Performance can even decline as ACO runs.
Container yard management GECCO-02: Ping Chen, Zhaohui Fu, Andrew Lim: Using GAs to solve the yard allocation problem ● Port of Singapore: > 100,000 shiploads per year ● Want to store containers: a single row may hold containers from different shipments, and parts of a shipment may arrive/leave at various times ● Want to keep each shipment together, without needing to move containers to make space for other shipments ● An NP-hard problem...
Yard allocation: invalid example ● Picture shows one row, over times 1-16 ●...shows some invalid placements: must not have containers added to one end of a block and removed from the other end at the same time
Yard allocation: valid example ● A valid placement ● Needs length 13 – is this optimal? ● Turn the problem into a graph problem...
Yard allocation in graph form means “is above” Find a labelling of the graph such that Li < Lj iff i is above j
Yard allocation ● Given a labelling, it describes an ordering in which to “drop” the blocks from above – in effect, a game of Tetris! ●... therefore, it's a permutation problem. ● Fitness = max length of yard used (minimise) ● GA uses one-point crossover with repair, PMX and cycle crossovers; insertion, inversion and swap mutations ● Popsize 100; generate 200, take top 100.
Yard allocation ● GA compared to simulated annealing, tabu search with short-term memory, tab-search with long- term memory ● Tested on problems with separate shipments ● GA outperformed the other methods in all cases, by a healthy margin ● Problems online at
...and so... Lots of unusual project possibilities...