Title: Object Oriented Programming
1Object Oriented Programming
Dr. Mike Spann m.spann_at_bham.ac.uk
2Assignment Introduction
- Aims/Objectives
- To produce a C implementation of the ANT colony
optimisation algorithm (ACO) and derivatives - To apply to the Travelling Salesman Problem
3ANT algorithms
4ANT 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 where they are
applied to the solution of hard discrete
optimization problems
5ANT algorithms
- Ant systems are a population based approach. In
this respect they is similar to genetic
algorithms - There is a population of ants, with each ant
finding a solution and then communicating with
the other ants - Communication is not peer to peer but indirect
with the use of pheromone
6ANT 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
7Travelling Salesman Problem
- Classic discrete optimisation problem
- Salesman needs to visit all cities just once and
return back home - Find the best route (minimum route length)
8Travelling Salesman Problem
- The TSP is a NP-hard problem
- Essentially it means there is no polynomial time
solution (complexity O(Nk) ) nor can a solution
be verified in polynomial time - We would need to check the solution over all
possible routes to verify it - One of many NP hard problems
9Travelling Salesman Problem
- N cities -gt (N-1)!/2 routes
- Small problem involving 29 cities in Western
Sahara has 2x1028 routes! - Currently TSPs involving 1000s cities are being
studied - You should restrict your algorithm to problems
with lt1000 cities! - The ACO algorithm has proved to be an effective
approach with performances close to optimal
10Applying the ACO algorithm to the TSP
- ACO is an iterative algorithm
- During each iteration a number of ants are
released to search the solution space - Typically the number of ants number of cities
- Each ant makes a probabilistic choice about its
route - The higher the pheromone on an edge in the TSP
graph, the higher the chance of selecting that
edge
11Applying the ACO algorithm to the TSP
- dij distance between cities i and j
- tij the amount of pheremone between cities i and
j - ß determines influence of arc length over
accumulated pheromone
12Applying the ACO algorithm to the TSP
- After each ant has completed its route, the
route length for each ant is computed - Assumes each ant has a local memory of where its
been unlike biological ants! - The pheromone on the edges of each route are
updated according to the route length - Also, it is assumed that a certain amount of
pheromone evaporation takes place so that old
routes are forgotten
13Applying the ACO algorithm to the TSP
14Improvements to the basic ACO algorithm
- The performance of the basic ACO is not great
- But definitely better than the Greedy algorithm!
- A number of improvements are possible which
produce closer to optimal solutions - These include
- Min-Max algorithm
- Rank order algorithm
- Elitist algorithm
- Non-probabilistic transition
- Also local search algorithms can refine the
solution
15Improvements to the basic ACO algorithm
- Elitist algorithm
- Only update the pheromone on the currently
optimum route - The pheromone on all edges still undergoes
evaporation - Makes a big difference in performance over the
basic ACO
16Improvements to the basic ACO algorithm
- Non probablistic transition
- Choose a non-probabilistic transition rule
according to some annealing schedule - Choose a random number 0ltqlt1 and some threshold
parameter q0(t) - qlt q0(t) probabilistic transition rule applied as
before - Otherwise, a deterministic transition rule is
applied
17Improvements to the basic ACO algorithm
- q0(t) defines an annealing schedule
- q0(t) small for small t, the normal probabilistic
transition rule is favoured - Exploration
- q0(t) approaches 1 for increasing t, the
deterministic transition rule is favoured - Exploitation
18Improvements to the basic ACO algorithm
- Local search
- Exchanges edges to reduce the edge length
- k-opt algorithms
- Can impose a huge computational burden for kgt3
- I implemented a simple approach which requires a
single comparison at each node
19Improvements to the basic ACO algorithm
a
e
c
d
b
f
20Assessment
- 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
21Demo