Description
Summary:Iskanje najbližjih objektov se uporablja na različnih področjih in pomembno je, da jih lahko hitro poiščemo. Pri iskanju v visokodimenzionalnih prostorih ne znamo hitro poiskati eksaktnih sosedov, zato se zadovoljimo s približnimi. V magistrski nalogi opišemo najbolj uporabljane eksaktne in približne metode za iskanje najbližjih sosedov. Med eksaktnimi so to R, R*, KD, M, PM in ball-drevo, med približnimi pa RKD-drevo, LSH, hierarhično razvrščanje z voditelji in gozd robov. Nekatere smo implementirali sami, druge smo uporabili iz že obstoječih knjižnic. Predstavimo in analiziramo rezultate testiranj hitrosti iskanja najbližjih sosedov, točnosti in porabe pomnilnika. V programskem jeziku python smo razvili knjižnico, ki vsebuje opisane metode in omogoča njihovo preprosto in enotno uporabo preko programskega vmesnika. Knjižnica omogoča tudi avtomatsko izbiro najprimernejšega algoritma za dano podatkovno množico. Algoritem izberemo na podlagi dveh odločitvenih dreves, ki smo ju sestavili s pomočjo analize rezultatov testiranj. Nearest neighbours search is used in different problems, therefore it is important that we are able to find nearest neighbours fast. When searching in high-dimensional spaces we have to be satisfied with approximate nearest neighbours, because fast methods do not exist. In this master thesis we describe some well-known exact and approximate methods for searching nearest neighbours. The described exact ones are R, R*, KD, M, PM and ball-tree, while the approximate are RKD-tree, LSH, hierarchical k-means and boundary-forest. Some of them we implemented, while others were taken from existing libraries. We present and analyze the search results in terms of speed, precision and memory requirements of methods. We developed a library in python programming language, which includes the described methods and provides a simple and consistent API. The library also allows automatic selection of the most suitable algorithm for a given dataset based on two decision trees, which were created through analysis of the results.