| Input: |
| () A set of objects in a spatial area as |
| () , The neighbor list size |
| () Eps points –radius for spatial and non-spatial data objects |
| () Minpts- The minimum number of points that must exist in the Eps neighborhood |
| () - Threshold value to be included in a cluster. |
| Output: Clusters with their core objects and noise points as . |
| Method: |
| () Set cluster_layer = 0; |
| () Initialize a loop for selecting objects from the given data base |
| For to do |
| //select an arbitrary object and check if it is visited or not |
| If does not belong to any cluster, then |
| Move forward to process next point |
| = process_neghbors as region query(, Eps); |
| If sizeof() < Minpts then |
| Mark next point() as noise |
| Else |
| Cluster_layer = Cluster_layer + 1; //Increase the cluster number |
| For to sizeof() // set cluster number to all points in |
| End (of marking) |
| Expand cluster by pushing all points to |
| Expand cluster(push() all objects to ) |
| While ( = empty()) //Repeat the process while database is not empty |
| Object = pop(); //Apply pop operation on current object |
| = process_neighbors(current point, Eps1, Eps2) //spatial and non spatial objects distance |
| If ≥ Minpts then |
| For to in |
| If ( is not visited and not identified as a noise and sizeofneghborpts ≥ ) then |
| Add with current cluster |
| End if |
| End if |
| Push() |
| End for |
| End for |
| Region Query(, Eps) |
| End while |
| End of algorithm |
| Return all points with cluster number and Eps-neighborhood. |