The no-free-lunch theorem states that for a given problem, no single Algorithm can solve all instances of the problem with the highest accuracy. The Algorithm complementarity expands this concepts into the observation that different Algorithms, while trained on the same dataset, will exhibit different per-instance accuracy due to Algorithm bias. The per-instance Algorithm selection is a meta strategy that aims to solve this problem by learning each Algorithm's performance over a certain number of samples and then generalizes this knowledge. For the improvement of the classification task, one starts from a set of pretrained component Algorithms. Then, we construct an Algorithm selection mechanism that chooses the best component Algorithm on a case-by-case basis. The general methodology is to train an Algorithm classifier using a set of meta-features that would capture Algorithm performance and related information. The standard approaches are, for instance, based on meta-features [9], reasoning [10], parallel execution [11], Algorithm configuration [12], etc. In all the cases, however, the data and the features must be able to describe the Algorithms' performance well enough to allow for a reliable Algorithm selection [13]. The training of the meta classifier, i.e., Algorithm selector, however, also requires data. The data can be either obtained from a set of runs of the component Algorithms on a training data or a set of solved instance problems. The main difference is that one can use the Algorithm evaluation as a conceptual step towards task change [14]. In ideal conditions, one would always want to have a specific dataset that would reveal as much information about the individual Algorithms as possible. However, in general, training data for systems in production might not be available and not enough novel annotated data might be generated. For this purpose, we consider a specific scenario for optimization. Let the problem of training an Algorithm selector be a function of available data. Considering a dataset \(\mathbb{D}_{T}\) we analyze a) how much data are experimentally necessary to train an Algorithm selector and, b) how much data augmentation using data generation can improve the selector accuracy. In particular, we study what amount of natural and synthetic data is necessary to train an Algorithm selector that would outperform the best Algorithm, what properties of the selector would allow us to efficiently select component Algorithms, and how to generate synthetic data that would give the most accurate Algorithm selection accuracy. Finally, we evaluate the different approaches to Algorithm selection on input image classification. While data augmentation by synthetic data has been effectively used in various machine learning tasks, so far there is no work related to Algorithm selection using synthetic dataset. Algorithm selection has been evaluated on various mechanisms as well as on an increasing number of features or meta-features, and therefore we study if additional information required for an Algorithm selector generalization ability can be generated using a synthetic data generator. The results of this paper can be summarized as follows:  
* The evaluation of synthetic data for Algorithm selection;
* An analysis of synthetic vs real-world data with respect to Algorithm selection accuracy;* The determination of the relation of Algorithms' complementarity for Algorithm selection in classification problems. This paper is organized as follows: in Section 2, an overview of the previous work is given; in Section 3, we describe the methodology used. In Section 4 we describe the experimental settings and in Section 5, we describe the experiments and the obtained results. Finally, in Section 6 we discuss the results and in Section 7 we conclude the paper.