Experiments should run in a Linux OS.

KDTree-master is downloaded from https://github.com/crvs/KDTree.

Please ensure that python3 is installed and scikit-learn is installed.

Please ensure that the version of scikit-learn is higher than 0.23.1. To check the version, you can run:

python3 -m pip show scikit-learn

====================================================================================

To run experiments on real datasets:
To compile exp.cpp, run:
make all

Notice that each time, you can run only one algorithm in this folder.

To run our algorithm:
./exp new_DBSCAN false > new_DBSCAN_result.txt

To run DBSCAN v1 without KDTree:
./exp DBSCAN_naive false > DBSCAN_naive_result.txt

To run DBSCAN v2 without KDTree:
./exp DBSCAN false > DBSCAN_result.txt

To run DBSCAN++ uniform initialization without KDTree:
./exp DBSCAN_uniform false > DBSCAN_uniform_result.txt

To run DBSCAN++ k-center initialization without KDTree:
./exp DBSCAN_kcenter false > DBSCAN_kcenter_result.txt

To run DBSCAN v1 with KDTree:
./exp DBSCAN_naive > DBSCAN_naive_KDTree_result.txt

To run DBSCAN v2 with KDTree:
./exp DBSCAN > DBSCAN_KDTree_result.txt

To run DBSCAN++ uniform initialization with KDTree:
./exp DBSCAN_uniform > DBSCAN_uniform_KDTree_result.txt

To run DBSCAN++ k-center initialization with KDTree:
./exp DBSCAN_kcenter > DBSCAN_kcenter_KDTree_result.txt


====================================================================================

To run experiments on synthetic datasets:

Change the variable run_real in the main() function to be false

To compile exp.cpp, run:
make all

To run our algorithm:
./exp new_DBSCAN false > new_DBSCAN_synthetic_result.txt

To run DBSCAN++ uniform initialization without KDTree:
./exp DBSCAN_uniform false > DBSCAN_uniform_synthetic_result.txt

To run DBSCAN++ k-center initialization without KDTree:
./exp DBSCAN_kcenter false > DBSCAN_kcenter_synthetic_result.txt

To run DBSCAN++ uniform initialization with KDTree:
./exp DBSCAN_uniform > DBSCAN_uniform_synthetic_KDTree_result.txt

To run DBSCAN++ k-center initialization with KDTree:
./exp DBSCAN_kcenter > DBSCAN_kcenter_synthetic_KDTree_result.txt




