From e071d8ed625f1e9e3b20fac199a09da03094ec97 Mon Sep 17 00:00:00 2001 From: MarcoBackman Date: Fri, 8 Oct 2021 10:48:57 -0400 Subject: [PATCH] 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).