IP Library Patent Application 18672945
Patent Application
App. No. 18/672,945

ADDITIVE ONLINE COMPLETE LINKAGE CLUSTERING

Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US None
App. No.
18/672,945
Filed
May 23, 2024
Examiner
HU, XIAOQIN
Art Unit
2168
USPC
707/738
Abstract

In certain aspects, a computer-implemented method includes receiving an incoming element; determining whether a distance of the incoming element to the nearest existing element that is found is above a clustering threshold; creating, based on determining the distance is above the clustering threshold, a new cluster and associating the new cluster to the incoming element; determining, based on determining the distance is not above the clustering threshold, whether distances from the incoming element to contents of the nearest existing element that is found are all below the clustering threshold; associating, based on determining the distances from the incoming element to the contents of the nearest existing element that is found are all below the clustering threshold, associating the incoming element to the cluster of the nearest existing element that is found; processing, based on determining the distances from the incoming element to the contents of the nearest existing element that is found are not all below the clustering threshold, elements of the cluster of the nearest existing element that is found together with the incoming element using an original complete-linkage algorithm, wherein the processing generates a first cluster and a second cluster, wherein the first cluster is smaller than the second cluster; creating another cluster and re-associating elements of the first cluster into the another cluster.

Claims (67)

1 . A computer-implemented method comprising:

receiving an incoming element;

searching for a nearest existing element with respect to the incoming element;

determining whether a distance of the incoming element to the nearest existing element that is found is above a clustering threshold;

creating, based on determining the distance is above the clustering threshold, a new cluster and associating the new cluster to the incoming element;

determining, based on determining the distance is not above the clustering threshold, whether distances from the incoming element to contents of the nearest existing element that is found are all below the clustering threshold;

associating, based on determining the distances from the incoming element to the contents of the nearest existing element that is found are all below the clustering threshold, associating the incoming element to the cluster of the nearest existing element that is found;

processing, based on determining the distances from the incoming element to the contents of the nearest existing element that is found are not all below the clustering threshold, elements of the cluster of the nearest existing element that is found together with the incoming element using an original complete-linkage algorithm, wherein the processing generates a first cluster and a second cluster, wherein the first cluster is smaller than the second cluster;

creating another cluster; and

re-associating elements of the first cluster into the another cluster.

2 . The computer-implemented method of claim 1 , further comprising:

assigning, based on the incoming element being in the second cluster, the incoming element.

3 . The computer-implemented method of claim 1 , wherein the searching for the nearest existing element with respect to the incoming element further comprises:

searching in a database, wherein the database comprises elements tagged with cluster IDs.

4 . The computer-implemented method of claim 1 , wherein the searching for the nearest existing element with respect to the incoming element further comprises:

determining whether a vector of the incoming element is contained in a hash table.

5 . The computer-implemented method of claim 4 , further comprising:

setting, based on determining the vector of the incoming element is contained in the hash table, a cluster ID of the incoming element to a cluster ID of a parent cluster of an element object found in the hash map.

6 . The computer-implemented method claim 5 , further comprising:

creating, based on determining the vector of the incoming element is not contained in the hash table, a new element object associated with the incoming element.

7 . The computer-implemented method of claim 6 , further comprising:

adding the new element object to the hash table.

8 . A system comprising:

a memory comprising instructions; and

a processor configured to execute the instructions which, when executed, cause the processor to:

receive an incoming element;

search for a nearest existing element with respect to the incoming element;

determine whether a distance of the incoming element to the nearest existing element that is found is above a clustering threshold;

create, based on determining the distance is above the clustering threshold, a new cluster and associating the new cluster to the incoming element;

determine, based on determining the distance is not above the clustering threshold, whether distances from the incoming element to contents of the nearest existing element that is found are all below the clustering threshold;

associate, based on determining the distances from the incoming element to the contents of the nearest existing element that is found are all below the clustering threshold, associating the incoming element to the cluster of the nearest existing element that is found;

process, based on determining the distances from the incoming element to the contents of the nearest existing element that is found are not all below the clustering threshold, elements of the cluster of the nearest existing element that is found together with the incoming element using an original complete-linkage algorithm, wherein the processing generates a first cluster and a second cluster, wherein the first cluster is smaller than the second cluster;

create another cluster; and

re-associate elements of the first cluster into the another cluster.

9 . The system of claim 8 , further comprising instructions to cause the processor to:

assign, based on the incoming element being in the second cluster, the incoming element.

10 . The system of claim 8 , wherein the instructions to cause the processor to search for the nearest existing element with respect to the incoming element further comprises:

search in a database, wherein the database comprises elements tagged with cluster IDs.

11 . The system of claim 8 , wherein the instructions to cause the processor to search for the nearest existing element with respect to the incoming element further comprises:

determine whether a vector of the incoming element is contained in a hash table.

12 . The system of claim 11 , further comprising instructions to cause the processor to:

set, based on determining the vector of the incoming element is contained in the hash table, a cluster ID of the incoming element to a cluster ID of a parent cluster of an element object found in the hash map.

13 . The system of claim 12 , further comprising instructions to cause the processor to:

create, based on determining the vector of the incoming element is not contained in the hash table, a new element object associated with the incoming element.

14 . The system of claim 13 , further comprising instructions to cause the processor to:

add the new element object to the hash table.

15 . A non-transitory machine-readable storage medium comprising machine-readable instructions for causing a processor to execute a method, the method comprising:

receiving an incoming element;

searching for a nearest existing element with respect to the incoming element;

determining whether a distance of the incoming element to the nearest existing element that is found is above a clustering threshold;

creating, based on determining the distance is above the clustering threshold, a new cluster and associating the new cluster to the incoming element;

determining, based on determining the distance is not above the clustering threshold, whether distances from the incoming element to contents of the nearest existing element that is found are all below the clustering threshold;

associating, based on determining the distances from the incoming element to the contents of the nearest existing element that is found are all below the clustering threshold, associating the incoming element to the cluster of the nearest existing element that is found;

processing, based on determining the distances from the incoming element to the contents of the nearest existing element that is found are not all below the clustering threshold, elements of the cluster of the nearest existing element that is found together with the incoming element using an original complete-linkage algorithm, wherein the processing generates a first cluster and a second cluster, wherein the first cluster is smaller than the second cluster;

creating another cluster; and

re-associating elements of the first cluster into the another cluster.

16 . The non-transitory machine-readable storage medium of claim 15 , further including instructions for causing the processor to execute the method comprising:

assigning, based on the incoming element being in the second cluster, the incoming element.

17 . The non-transitory machine-readable storage medium of claim 15 , wherein the instructions for causing the processor to execute searching for the nearest existing element with respect to the incoming element further comprises:

searching in a database, wherein the database comprises elements tagged with cluster IDs.

18 . The non-transitory machine-readable storage medium of claim 15 , wherein the instructions for causing the processor to execute searching for the nearest existing element with respect to the incoming element further comprises:

determining whether a vector of the incoming element is contained in a hash table.

19 . The non-transitory machine-readable storage medium of claim 18 , further including instructions for causing the processor to execute the method comprising:

setting, based on determining the vector of the incoming element is contained in the hash table, a cluster ID of the incoming element to a cluster ID of a parent cluster of an element object found in the hash map.

20 . The non-transitory machine-readable storage medium of claim 19 , further including instructions for causing the processor to execute the method comprising:

creating, based on determining the vector of the incoming element is not contained in the hash table, a new element object associated with the incoming element; and

adding the new element object to the hash table.

Assignments (2)
PATENT SECURITY AGREEMENT Recorded Mar 3, 2026
From: JAMF SOFTWARE, LLC
To: BLUE OWL CAPITAL CORPORATION, AS COLLATERAL AGENT
Reel/Frame 075025/0447 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 23, 2024
From: DANICHEV, PAVEL; SIDI, NIR DOV; AVRAHAM, NIR
To: JAMF SOFTWARE, LLC
Reel/Frame 068385/0867 →