RW791 Artificial Intelligence


This course considers two main paradigms within the Computational Intelligence (a subset of Artificial Intelligence) domain, namely

  • Computational Swarm Intelligence, and
  • Evolutionary Computation.

Within the Computational Swarm Intelligence paradigm mathematical and algorithmic models of social organisms found in nature will be studied, including

  • particle swarm optimization (which is based on a very simple bird flocking behavior model),
  • ant algorithms (which are based on models of foraging, cemetery organization, and division of labour behaviours observed in ant colonies), and
  • artificial bee colony optimization (which is based on the waggle dance foraging behavior of bees)

If time allows, other Computational Swarm Intelligence paradigms will also be studied.

Within the Evolutionary Computation paradigm, algorithmic models of Darwinian evolution will be studied, including

  • genetic algorithms,
  • genetic programming,
  • evolutionary strategies,
  • evolutionary programming,
  • differential evolution,
  • cultural algorithms,
  • co-evolution, considering both competitive and cooperative co-evolution, and
  • estimation of distribution algorithms.

These algorithms will mostly be studied in the context of complex optimisation problems, including single-objective optimization, multi-objective optimization, dynamic environments, constrained optimization, and finding and tracking multiple solutions to optimization problems. Consideration will also be given to large-scale optimization problems.

In addition to the two paradigms above, Hyper-heuristcs will be studied. Hyper-heuristics are algorithms that find a solution to an optimization problem, and in parallel learns from a pool of algorithms which algorithm is best to solve that optimization problem.

Mode of Presentation

The module will be presented online, until further notice. Lectures will be pre-recorded, with recordings uploaded to SUNlearn. Weekly Teams meetings will be scheduled for online discussions of the material. For each week, you will receive a lecture plan with details of the recordings to listen to, the slides to work through, and the reading material to work through. These lecture plans will also indicate when SUNlearn quizzes will take place and the Teams meeting times. If you are not yet added to the AI791 Team, please let me know, so that I can add you.


Programming (well, obviously...) and Mathematics on at least first year level. Prior artificial intelligence and optimization knowledge is not required.

With reference to programming, you will be allowed to use any programming language, as long as your programs in the end will built and run on Linux. However, you may want to make use of CIlib, an opensource library of Computational Intelligence algorithms, implemented in Scala.


After completing this course, students should be able to

  • understand the paradigms of Computational Swarm Intelligence and Evolutionary Computation, and how these paradigms were inspired from the corresponding phenomena from nature
  • understand the mathematical models and algorithmic implementations of these phenomena from nature:
    • particle swarm optimization
    • ant algorithms
    • artificial bee colony optimization
    • genetic algorithms
    • genetic programming
    • evolutionary programming
    • evolutionary strategies
    • differential evolution
    • cultural algorithms
    • cooperative and competitive coevolution
    • estimation of distribution algorithms
  • understand the search behaviours of these algorithms, specifically with respect to
    • the exploration-exploitation trade-off
    • convergence baviour
    • scalability to large-scale optimization problems
    • computational efficiency
  • understand the hyper-heuristic paradigm:
    • how to design a good heuristic pool
    • different heuristic selection approaches
  • describe, explain, apply, and modify the above algorithms
  • apply their knowledge about these algorithms to find solutions to the following classes of optimization problems:
    • unconstrained and boundary constrained optimization problems
    • equality and inequality constrained problems
    • multi-objective and many-objective optimzation problems
    • dynamic optimization problems, where the objective function(s) may change and/or the constraints may change
    • finding multiple solutions to multi-modal optimization problems
    • continuous-valued and discrete-valued optimization problems
    • hybrids of the above
  • understand and be able to conduct statistically sound empirical evaluations and comparisons of these stochastic optimization algorithms
  • write a proper technical report


Prof Andries Engelbrecht.

Academic Integrity

The university's policy on plagiarism and collaboration applies throughout the course and is strictly enforced. It is the students' responsibility to familiarise themselves with the regulations in this regard.