1 / 19

Bioinspired Computing BEAST & Bacteria Overview

Bioinspired Computing BEAST & Bacteria Overview. David Gordon aixdg@comp.leeds.ac.uk. Excuses first. ‘Work in progress’ – loose ends, e.g. easy to crash the interface Some features are untested (none of them necessary for coursework) Documentation is a first draft

Leo
Télécharger la présentation

Bioinspired Computing BEAST & Bacteria Overview

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Bioinspired ComputingBEAST & Bacteria Overview David Gordon aixdg@comp.leeds.ac.uk

  2. Excuses first • ‘Work in progress’ – loose ends, e.g. easy to crash the interface • Some features are untested (none of them necessary for coursework) • Documentation is a first draft • (Almost) never been used bystudents (other than me)

  3. Technologies, concepts & paradigms • C++ • Object-Oriented Programming (OOP) • Encapsulation • Multiple inheritance • Polymorphism • Event-driven architectures • Templates (generic programming) • Standard Template Library (STL) • Ironically, the aim of all this is to make it easy… • You don’t need to know about the above (except C++) but if you do it’ll help

  4. WorldObject Animat Braitenbergs Evolver (Evo)FFNAnimat,(Evo)DNNAnimat FeedForwardNet, DynamicalNet Shrews, Mice… Cheeses, Dots,Targets… How beast is organised World2D arena where assessments go on Simulation MiceSimulation,ShrewSimulation GroupPuts WorldObjects and Animats into Simulation PopulationAs Group, but uses a GA on its contents GeneticAlgorithm A is used by B A Built-in classes B Built-in classes you may never see B A inherits from B A Custom classes

  5. The Simulationclass • Simulations are set up by inheriting from Simulation, adding Groups of WorldObjects (i.e. Cheeses), Populations of Animats (i.e. Mice), and one or more GAs. • Initialisation – persistent objects are set up, parameters for the GA, the number of Animats, the objects in the World etc. • Simulation is responsible for • Putting objects (Mice, Cheeses) into World • Letting them buzz around (e.g. collecting cheese) for a number of timesteps • Taking them out again and putting them through the GA • Repeating for a number of generations • The Simulation object is like a lab technician, who sets up the simulation, then sits up all night repositioning robots and rerunning assessments until the simulation is complete.

  6. Developing with beast • Documentation at http://www.comp.leeds.ac.uk/ar23/BEAST/doc/ • Tutorials, example code • Ask in newsgroups • C++ problems – use http://groups.google.com • Problems: executables large, compile times slow • AR23 students now have extra space • Remove –O3 from Makefile until you’re ready to run • Compile on cslin-gps (don’t run on it though!) • CPU limit • limit cputime unlimited – add to .cshrc

  7. The bacteria model • The bacteria are based on a complex mathematical model • The BEAST implementation is a faithful reproduction of the mathematical model (sort of…) • To use it, you don’t need to know the details of either

  8. Getting started • New stuff is now available – download BEAST_project.tar.gz as before • ‘baccyexamples’ – demonstrate how bacteria move, swarm, use repellents, reproduce and use attractants • ‘bacteria’ – source code for Q3 of coursework

  9. Two new classes • Distribution • 2D grid which covers the World • Models nutrients, chemoattractants and chemorepellents in a solution • Implements diffusion, so distribution ‘dissolves’ over time • Bacterium • Models groups of bacteria • Direction of movement depends on gradients detected in nutrient, attractant and repellent distributions • Can reproduce, swarm, sporulate and die • Properties are controlled by a big list of variables • Full description in bacteria.h or look in documentation WorldObject Distribution Animat Bacterium EvoBacterium

  10. What Bacterium does 1 • Eact timestep, each Bacterium absorbs some nutrient (if available) from its surroundings, and converts it into energy • Then takes a look around: • Looks at the nutrient distribution and the repellent/attractant distributions (if available) • Looks at the other bacteria around it (depending on its swarmRadius)

  11. What Bacterium does 2 • Moves a little in a direction determined by the above information and a bunch of variables set within Bacterium • When bacteria move or die, they leave a dot on another distribution object, called trail • If the Bacterium is in a place with plenty of nutrient, it might release attractant • If there is not enough nutrient, it might release repellent

  12. What Bacterium does 3 • Reproduces • Dies

  13. What Distribution does • Every frame, everything becomes a little more blurred/diffuse • Diffusion speed can be changed in two ways – see code for details

  14. Working with EvoBacterium • Same as Bacterium, but with additional GetGenotype, SetGenotype and GetFitness functions for the GA • Most stuff is commented out, so it basically doesn’t work

  15. How to do the coursework • Disable/enable features (detailed in comments) • Muck about with variables (speed, amount of nutrient, reproduction rate) • Use a Genetic Algorithm…

  16. How to create a fitness function • GetFitness() • Examples are in the code • Possible metrics: • Number of offspring • Area covered • Distance from start • Amount of food eaten • Fractal dimension? • Fitness function does not have to match real bacteria • Could an ‘artificial’ fitness function produce better results than a realistic one?

  17. Note: two sorts of reproduction • Bacteria reproduce during the assessment • Offspring are identical, no mutation goes on • A Genetic Algorithm will work on a population of bacteria between assessments • Reproduction and evolution quite different to actual bacterial evolution – e.g. crossover not present in asexual species • Fitness function can be anything you like

  18. Nutrient, attractant, repellent and trail distributions can be any colour (in comments) World can be any colour (also in comments) Pretty pictures • Save using import <filename.jpg>

  19. Later this week… • Demonstration session Wednesday 1pm • Instructions for batch (coming up in newsgroup) • Arrangements for computer availability over Easter (also coming up in newsgroup)

More Related