ee4e m sc c programming n.
Skip this Video
Loading SlideShow in 5 Seconds..
EE4E,M.Sc. C++ Programming PowerPoint Presentation
Download Presentation
EE4E,M.Sc. C++ Programming

Loading in 2 Seconds...

play fullscreen
1 / 13

EE4E,M.Sc. C++ Programming - PowerPoint PPT Presentation

  • Uploaded on

EE4E,M.Sc. C++ Programming. Assignment Introduction. Assignment Introduction. Aims/Objectives To produce a C++ implementation of the ANT colony optimisation algorithm (ACO) To apply to the travelling salesman problem. ANT algorithms. ANT algorithms.

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
Download Presentation

PowerPoint Slideshow about 'EE4E,M.Sc. C++ Programming' - ramla

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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
ee4e m sc c programming

EE4E,M.Sc. C++ Programming

Assignment Introduction

assignment introduction
Assignment Introduction
  • Aims/Objectives
    • To produce a C++ implementation of the ANT colony optimisation algorithm (ACO)
    • To apply to the travelling salesman problem
ant algorithms1
ANT algorithms
  • Ants are practically blind but they still manage to find their way to and from food. How do they do it?
  • These observations inspired a new type of algorithm called ant algorithms (or ant systems)
  • These algorithms are very new (Dorigo, 1996) and is still very much a research area
ant algorithms2
ANT algorithms
  • Ant systems are a population based approach. In this respect it is similar to genetic algorithms
  • There is a population of ants, with each ant finding a solution and then communicating with the other ants
ant algorithms3
ANT algorithms
  • Real ants can find the shortest path to a food source by laying a pheromone trail
  • The ants which take the shortest path, lay the largest amount of pheromone per unit time
  • Positive feedback reinforces this behaviour and more ants take the shortest path resulting in more pheromone being laid
travelling salesman problem
Travelling Salesman Problem
  • Classic discrete optimisation problem
    • Salesman needs to visit all cities just once and return back home
travelling salesman problem1
Travelling Salesman Problem
  • N cities -> (N-1)! routes
  • Currently TSP’s involving 1000’s cities are being studied
  • You should restrict your algorithm to problems with <100 cities!
  • The ACO algorithm has proved to be an effective approach with performances close to optimal
travelling salesman problem2
Travelling Salesman Problem
  • Ants distribute an amount of pheremone on each part of its route in inverse proportion to the length of the route
    • Doesn’t quite mimic the behaviour of real ants!
  • Typically the number of ants ~number of cities
  • After every iteration t (all ants complete their routes), the pheremone trails are updated and new ants are generated
travelling salesman problem3
Travelling Salesman Problem
  • In practice, applying ACO to TSP is a compromise between reinforcing previous ant behaviour and exploring new solutions
    • Probabilistic decisions
    • Pheromone evaporation
  • Use any convenient programming platform
  • Think about presentation of results and user interfaces
    • Console based I/O ok but GUI’s more flexible and user friendly
  • Important to separate out ANT-based classes and the problem domain (TSP) classes so that either can be used separately
  • Programming report (deadlines are on the handout)
  • Follow closely the marking pro-forma
  • The report should contain discussions about object orientation, code re-useability, object interaction, algorithm performance and comparisons (close to ‘optimal’?)
  • A formal design discussion is not expected but informal class/object diagrams and pseudo-code should be used
  • Include with your report your software with enough information to allow me to run it
    • Maybe include a user guide
  • I will base the marks partly on the observed functionality