Examine the problem of Approximate Nearest Neighbor by using DolphinnPy: https://github.com/ipsarros/DolphinnPy (Python 2.7, uses NumPy)

1. Parameterize DolphinnPy appropriately (projection dimension K, num_of_probes, points examined M) in order to maximize performance (speed and accuracy) when n, d grow, and error epsilon is fixed.

2. Run DolphinnPy on a family of examples and assess its complexity in practice as a function of input parameters n, d, epsilon (error) by reporting also its accuracy in all cases.

3. Compare DolphinnPy's practical performance to that of some LSH software (e.g. Falconn by Andoni et al.'15) as indicated in the relevant paper(s). For this, you shall execute DolphinnPy on the same datasets as those used to evaluate LSH.

Optional.
You may instead use DOLPHINN, a C++ header-only library (stands for: Dimension reductiOn and LookuPs on a Hypercube for effIcient Near Neighbor): https://github.com/gsamaras/Dolphinn

How to use DOLPHINN? Just include DOLPHINN's header file; src/main.cpp contains a representative example.