# RW791 Artificial Intelligence¶

## Description¶

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¶

To be determined.

## Prerequisites¶

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.

## Outcomes¶

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

## Instructor¶

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.