## Introduction

xlOptimizer fully implements Artificial Bee Colony (ABC), a new stochastic swarm intelligence algorithm inspired by the foraging behavior of honey bees. ABC was introduced by Karaboga and Basturk [1] and was later employed in a plethora of applications.

## How does it work?

In ABC, the colony of artificial bees consists of three groups: employed bees, onlookers and scouts. The first half of the colony consists of the employed artificial bees and the second half includes the onlookers. For every food source, there is only one employed bee, i.e. the number of employed bees is equal to the number of food sources around the hive. The employed bee whose the food source has been abandoned becomes a scout. In ABC algorithm, the position of a food source represents a possible solution to the optimization problem and the nectar amount of a food source corresponds to the quality (fitness) of the associated solution.

## Mathematical formulation

At the first step, the ABC generates a random initial distribution of SN/2 solutions (food source positions), where SN denotes the total number of bees. Each solution is a  D-dimensional vector.

After initialization, the food source positions are subjected to repeated cycles of improvement. An employed bee produces a modification on the position (solution) in her memory depending on the local information and tests the nectar amount (fitness value) of the new source (new solution). Provided that the nectar amount of the new one is higher than that of the previous one, the bee memorizes the new position and forgets the old one. Otherwise she keeps the position of the previous one in her memory.

Next, the employed bees share the nectar information of the food sources and their position information with the onlooker bees on the dance area. An onlooker bee evaluates the nectar information taken from all employed bees and chooses a food source with a probability related to its nectar amount. As in the case of the employed bee, she produces a modification on the position in her memory and checks the nectar amount of the candidate source. Providing that its nectar is higher than that of the previous one, the bee memorizes the new position and forgets the old one.

Usual parameter values are the following: (a) Colony size = 20-50 bees, (b) limit before a food source becomes abandoned=COLONY_SIZE*VARIABLES/2.

## Options in xlOptimizer

The following options are available in xlOptimizer:

#### Step 1

Enter a short title for the scenario. The log files will be saved to a subfolder with this name.

#### Step 2

Select the number of vectors. The optimum value depends on the complexity of the problem. For ABC, values are usually selected in the range 20-50.

The variables that may be used in the expression are:

• VARIABLES: the number of variables.

#### Step 3

Select the parameters of the ABC algorithm:

• Limit: select the limit of evaluations without improvement after which the food source becomes abandoned (and the corresponding employed bee becomes a scout, i.e. it is reinitialized randomly). Usual value is COLONY_SIZE*VARIABLES/2.
• Clamp variables: if checked, the final vectors are clamped within the boundaries of each variable.

Step 4

Choose whether to use the Registrar operator with the algorithm. This is recommended only for expensive objective functions.

#### Step 5

Select the termination criteria. At least one termination criterion must be active. Usually one selects a maximum number of function evaluations and/or a time limit.

#### Step 6

Select the action when the analysis is finished:

• Nothing: The last individual analysed remains.
• Restore previous solution: The solution that was visible before the analysis is restored.
• Use best: The best solution that was discovered during the analysis is applied.
• Use best if better than the previous version (recommended): The best solution that was discovered during the analysis is applied only if it is better than the previous solution. In the opposite case the previous solution is restored.

#### Step 7

Select whether you want to use random or specific seeds for the random number generator. The seeds must be large negative numbers e.g. -100000. Usually a number of analyses with random seeds is performed. The filename of the log is the seed used in the specific analysis.

#### Step 8

Select the output path. A subfolder with the name of the scenario will be used. Usually a relative path is used i.e. the absolute path check box is not checked. This results in the output logs being saved in the same path as the project file.