# 2. Theoretical Background

ABCrystal is a black-box program, meaning that you can do crystal structure search without knowing too much about theories behind ABCrystal. Of course, it will be beneficial if you understand some basic principles. These will be briefly introduced.

## 2.1. The Artificial Bee Colony Algorithm

Tip

For more details, please refer to:

The ABC algorithm was proposed by Karaboga in 2005. The ABC algorithm mimics the foraging behavior of bees. Three kinds of bees are distinguished in a colony: employed bees (EM), onlooker bees (OL) and scout bees (SC). A colony tries to find the best nectar as food source. To do this, EMs perform an trail search; OLs based on the knowledge of all EMs perform a further research; SCs search completely new areas. After several cycles of search, the colony can find the best nectar.

This scheme has been transferred to ABCrystal. The basic flowchart is:

1. Set $$g = 0$$;

2. A total number of $$SN$$ crystal structures (population) are randomly generated;

3. In generation $$g$$, three kinds of operators: EM, OL, and SC, are applied to the population in turn to generate new crystals structure;

4. The generated new crystal structures are optimized using some potentials;

5. Update the population using the optimized new crystal structures.

6. If $$g \ge g_\mathrm{max}$$, the search terminates; otherwise set $$g = g+1$$ and go back to Step 3.

A typical ABC global optimization needs three parameters: the population size $$SN$$, the maximum of search generation $$g_{\mathrm{max}}$$, and the scout limit $$g_{\mathrm{limit}}$$ (for SC operators). Below is a typical choice of these parameters:

Parameter

Value

$$SN$$

10~300

$$g_{\mathrm{max}}$$

100~100,000

$$g_{\mathrm{limit}}$$

3~5

## 2.2. Automatic Atom Typing

Tip

The details of this part is here:

For organic molecules or molecular cations/anions, it is beneficial to use CHARMM force field. However, a big barrier is to assign atom types to all atoms that are consistent with CHARMM force field. In ABCrystal and also ABCluster, graph representation learning (technically, topology adaptive graph convolution networks, TAGCNs) has been successfully applied to this job. In many cases, it can generate highly reliable typing. Briefly, the basic principle behind this is that several TAGCNs were trained using more than 700 typed molecules. TAGCNs “learned” chemistry during this training process and “remembered” rules as some sort of distributions of weights. This process is transparent to the users of ABCrystal: one just gives coordinates and ABCrystal will do everything for atom typing.