From e071d8ed625f1e9e3b20fac199a09da03094ec97 Mon Sep 17 00:00:00 2001 From: MarcoBackman Date: Fri, 8 Oct 2021 10:48:57 -0400 Subject: [PATCH 01/10] Update README.md --- README.md | 58 +++++++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 44 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index 961f223..560e75f 100644 --- a/README.md +++ b/README.md @@ -1,24 +1,54 @@ #

RangeSearchAnalysis

##

Algorithm of Analysis individual project #1 - Range searching algorithm

+## Main classes that runds individually. + * Main.java + * Takes integer input based on the input files. If input files are in three dimension, user has to put, for example, [5 10 25] separated by the space(exclude brackets). + * Executes sequential construction and KD-KNN-tree construction based on the input files in data with specified file name. + * If data file for input is empty, CoordinateGen.java execution is required before running Main.java program in order to make arbitrary input files. + + * CoordinateGen.java + +## This project is comprised of three major sections. -This project is comprised of three major sections. +For every distance calcuation, Euclidean distance is used. -### 1. Point Generator. - * Generates arbiturary points in incremental order. - * Matrix dimesion determined by users input. - * Matrix starting from 100 * 2 ^ n, where n = 1, 2, 3, 4... (Each of the matrix length is identical) - * Experimental number of points generated 600 * n, where n = 1, 2, 3, 4... - * Each generated points are save in .dat file named like: "POINTS_*MATRIX LENGTH*_*NUMBER OF POINTS*.dat +### 1. Point Generator(**CoordinateGen.java**). + * Generates arbiturary points in random order. + * Matrix dimesion determined by getting users input. + * Matrix point range and number of points grow larger. + * When generated input file name is BIG_DATA_CASE10_20, this means the generated random points have maximum point range from 1 to 10 with number of points of 20. ### 2. Data structures. - * Sequential structure. - * insert() - * find() - - * KD-Tree Structure. - * insert() - * find() + * Linked List (**SequentialAlgorithm.java**). + * insert(list) + > Append additional coordinate points to the end + * findClosestDistance(targetPoints) + > Visit every node to verify the shortest distance + + * KD-Tree (**KDTreeIntegers.java**). + * Class.AxisSort + > comparator that sorts an ArrayList by axis index + * insert(depth, listOfPoints, currentNode, parentNode) + > Builds a binaray-tree like data structure. + * findKDTreeNormal(targetPoints) + > finds a approximately close distance to the targetPoints + + * KNN-Search (method in **KDTreeIntegers.java**). + * findKNNAlgorithm(targetPoints, node) + > find closest distance from the targetPoints with the result node from KD-Tree search ### 3. Result exportation. + * All summary data are exported into .cell file. Data contains: + > General cell + >> Numeric value range. + >> Number of points. + >> Desired coordinationto look up. + + > Each cell contains + >> Closest coordinate points found + >> Distance value in double + >> Construction time consumption in nano seconds + >> Search time consumption in nano seconds + Time is measured by using ProcessTimeRecorder(System.nanoTime). From 48043f1f057e8b2fc7f5e2b6801150c22fc3b388 Mon Sep 17 00:00:00 2001 From: MarcoBackman Date: Fri, 8 Oct 2021 10:49:46 -0400 Subject: [PATCH 02/10] Update README.md --- README.md | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 560e75f..e00b0f0 100644 --- a/README.md +++ b/README.md @@ -22,9 +22,9 @@ For every distance calcuation, Euclidean distance is used. ### 2. Data structures. * Linked List (**SequentialAlgorithm.java**). * insert(list) - > Append additional coordinate points to the end + > Append additional coordinate points to the end
* findClosestDistance(targetPoints) - > Visit every node to verify the shortest distance + > Visit every node to verify the shortest distance
* KD-Tree (**KDTreeIntegers.java**). * Class.AxisSort @@ -40,15 +40,15 @@ For every distance calcuation, Euclidean distance is used. ### 3. Result exportation. * All summary data are exported into .cell file. Data contains: - > General cell - >> Numeric value range. - >> Number of points. - >> Desired coordinationto look up. + > General cell + >> Numeric value range.
+ >> Number of points.
+ >> Desired coordinationto look up.
> Each cell contains - >> Closest coordinate points found - >> Distance value in double - >> Construction time consumption in nano seconds - >> Search time consumption in nano seconds + >> Closest coordinate points found
+ >> Distance value in double
+ >> Construction time consumption in nano seconds
+ >> Search time consumption in nano seconds
Time is measured by using ProcessTimeRecorder(System.nanoTime). From 7cb1791164731489420e4685ab24672538b26446 Mon Sep 17 00:00:00 2001 From: MarcoBackman Date: Fri, 8 Oct 2021 10:50:59 -0400 Subject: [PATCH 03/10] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e00b0f0..fb319b1 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ #

RangeSearchAnalysis

-##

Algorithm of Analysis individual project #1 - Range searching algorithm

+##

Algorithm of Analysis - KD-Tree/KNN algorithm

## Main classes that runds individually. * Main.java From 74511e2adaec4c0d0886aad2b428d2a2e8f8dcea Mon Sep 17 00:00:00 2001 From: MarcoBackman Date: Fri, 8 Oct 2021 10:51:18 -0400 Subject: [PATCH 04/10] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index fb319b1..487461a 100644 --- a/README.md +++ b/README.md @@ -51,4 +51,4 @@ For every distance calcuation, Euclidean distance is used. >> Construction time consumption in nano seconds
>> Search time consumption in nano seconds
- Time is measured by using ProcessTimeRecorder(System.nanoTime). +Time is measured by using ProcessTimeRecorder(System.nanoTime). From b2cfcc0f3252bba1d4b7068f096a7e36f9cfefa4 Mon Sep 17 00:00:00 2001 From: MarcoBackman Date: Fri, 8 Oct 2021 10:52:24 -0400 Subject: [PATCH 05/10] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 487461a..576fde2 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ #

RangeSearchAnalysis

##

Algorithm of Analysis - KD-Tree/KNN algorithm

-## Main classes that runds individually. +## Executable main classes. * Main.java * Takes integer input based on the input files. If input files are in three dimension, user has to put, for example, [5 10 25] separated by the space(exclude brackets). * Executes sequential construction and KD-KNN-tree construction based on the input files in data with specified file name. From 1cb250bc38de9cae5817ddf92dcc1e3b37681094 Mon Sep 17 00:00:00 2001 From: MarcoBackman Date: Fri, 8 Oct 2021 10:54:12 -0400 Subject: [PATCH 06/10] Update README.md --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 576fde2..3626898 100644 --- a/README.md +++ b/README.md @@ -8,6 +8,8 @@ * If data file for input is empty, CoordinateGen.java execution is required before running Main.java program in order to make arbitrary input files. * CoordinateGen.java + * Prompts user to type in the dimension. This will be the initial dimension setup. + * Prompts user to select a file type - Large points, Small points. ## This project is comprised of three major sections. From 4187b4db549f8db24cd96e15955ba5d5ca153d1c Mon Sep 17 00:00:00 2001 From: MarcoBackman Date: Mon, 11 Oct 2021 14:36:34 -0400 Subject: [PATCH 07/10] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 3626898..4a69b5e 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,6 @@ #

RangeSearchAnalysis

##

Algorithm of Analysis - KD-Tree/KNN algorithm

+## Florida Tech 2021 Individual Project ## Executable main classes. * Main.java From 5a4545ec5e13e07f36e8a114849c7937251a8a77 Mon Sep 17 00:00:00 2001 From: MarcoBackman Date: Mon, 11 Oct 2021 14:38:18 -0400 Subject: [PATCH 08/10] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 4a69b5e..e07f9b5 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ #

RangeSearchAnalysis

-##

Algorithm of Analysis - KD-Tree/KNN algorithm

-## Florida Tech 2021 Individual Project +##

Algorithm of Analysis - KD-Tree/KNN algorithm.

Florida Tech 2021 Individual Project

+ ## Executable main classes. * Main.java From 62d72162c17ac89a92e3680491e6295e301d8b91 Mon Sep 17 00:00:00 2001 From: MarcoBackman Date: Mon, 11 Oct 2021 23:11:03 -0400 Subject: [PATCH 09/10] Create test --- img/test | 1 + 1 file changed, 1 insertion(+) create mode 100644 img/test diff --git a/img/test b/img/test new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/img/test @@ -0,0 +1 @@ + From f6fecaafb3a9460b9dad97305908cd864089d25c Mon Sep 17 00:00:00 2001 From: MarcoBackman Date: Mon, 11 Oct 2021 23:11:20 -0400 Subject: [PATCH 10/10] Delete test --- img/test | 1 - 1 file changed, 1 deletion(-) delete mode 100644 img/test diff --git a/img/test b/img/test deleted file mode 100644 index 8b13789..0000000 --- a/img/test +++ /dev/null @@ -1 +0,0 @@ -