Skip to content

liberto/robots

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

robots

Simulates an evolutionary algorithm, shown to produce communication and lying between "robots". Written in CUDA, to take advantage of mass-parallelization. If requested, I could reformat it into regular C. It would be very slow.

More explicit details about project soon.

This is an implementation of the simulator described in Floreano et al. 2007: bit.ly/1iXAPVw

Summary of paper:

A robot has 3 outputs: left motor, right motor, light brightness. The two independent motors control the two wheels on a robot, allowing movement. A robot has 10 inputs: 8 visual, 1 food sensor, 1 poisin sensor. The 8 visual sensors capture data from all 360 degrees around the robot, looking for light produced by other robots and edibles. A robot has 30 bytes of DNA: each is a weight for the connection between any given output and input. When a robot takes in it's 10 inputs, each output sums the weighted connections, and acts upon those outputs.

DNA is initially produced randomaly. 10 robots are placed in an arena. There are two edibles, food and poisin. Every second that a robot is near food, it gains a point. Every second that a robot is near poisin, it loses a point. Only 5 robots can be around an edible at a time. The wheels move the robots around the arena. Multiple "arena" scenarios play out, using different random DNA.

The top 20% of scorers of a generation are selected, their DNA is randomly mated, and is used to produce another generaton of robots.

The paper shows that after 20 generations, robots develop communication through light to help each other find food. By the 50th generation, robots lie about the location of the food, and trick each other into eating poisin.

About

A project to simulate the results found in Floreano et al. 2007 (bit.ly/1iXAPVw) using CUDA

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published