IP Library Granted Patent US 10,162,878
Granted Patent B2
US 10,162,878 · App. 14/718,804 · Granted Dec 25, 2018

System and method for agglomerative clustering

Inventors: Stephen Nuchia (Tulsa, OK); Daniel Scott (Broken Arrow, OK)
Assignee: TIBCO Software Inc.
G06F17/30598
View Patent ↗
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 10,162,878
App. No.
14/718,804
Filed
May 21, 2015
Granted
Dec 25, 2018
Kind
B2
Art Unit
2168
USPC
707/737
Abstract

An information handling system performs a method for finding a nearest neighbor of a point. In some embodiments, the method may be used for agglomerative clustering. The method includes projecting a space Θ of a first dimension with a first distance μ to a space P of a second, smaller dimension with a distance μ′ by a projection function p. For all pairs of points v 1 and v 2 in Θ, μ′ (p(v 1 ), p(v 2 ))≤μ(v 1 , v 2 ), where p is the function that projects points in Θ to points in P. The method also includes selecting a point v in Θ and performing a search for its nearest neighbor in Θ by projecting v to P and locating a set S of nearest neighbors in P of p(v). A search is then performed in Θ of a set of S′ of points that project onto the points in S.

Claims (117)

1. A computer implemented method for improving, using multi-dimensional indexing data structures, a process of finding nearest neighbors for points, in multi-dimensional spaces, associated with a manufacturing process, the computer comprising a processor and memory, the method comprising:

powering the computer;

in response to powering the computer, executing an initialization procedure for the computer, the initialization procedure comprising configuring the memory and initializing one or more device drivers for communicating with one or more devices;

providing a multi-dimensional indexing data structure in the memory, the multi-dimensional indexing data structure comprising at least one of an R-tree data structure or a KD-tree data structure;

projecting, using at least one processor associated with the multi-dimensional indexing data structure, an n-dimension space Θ, with a dissimilarity measure μ into an m-dimensional space P with a dissimilarity measure μ′ by a projection function p, wherein:

1<m<n; and

μ′( p ( v 1), p ( v 2))≤μ( v 1, v 2) for all points v 1 and v 2 in Θ;

selecting, using the at least one processor associated with the multi-dimensional indexing data structure, a point v in Θ;

performing, using the at least one processor associated with the multi-dimensional indexing data structure, a search in P for a set S′ of k nearest neighbors of the point p(v) in P;

finding, using the at least one processor associated with the multi-dimensional indexing data structure, a set S of all points in Θ that project to the set S′; and

determining, using the at least one processor associated with the multi-dimensional indexing data structure, whether a point of the set S is a nearest neighbor of the point v,

wherein determining whether the point of the set S is the nearest neighbor of the point v enables determination of a problem or an issue associated with the manufacturing process.

2. The computer implemented method of claim 1 , wherein 3≤m≤5, and wherein n≥1000.

3. The computer implemented method of claim 1 , wherein the projecting comprises:

selecting a principal component u of Θ using principal component analysis; and

projecting points v of Θ onto u.

4. The computer implemented method of claim 1 , wherein the projecting comprises:

selecting a set PC of principal components of Θ using principal component analysis, wherein the set PC contains principal components for 0≤s<n;

projecting Θ onto the principal components of the set PC;

determining an additional principal component u of Θ that captures the most remaining variance after removing the variance captured by projecting Θ onto the principal components of the set PC;

if u captures at least 1/m-s of the remaining variance, projecting points v of Θ onto u; and

otherwise:

selecting a j-dimensional space J contained in Θ, where j>1; and

projecting the points v onto their norm in the space J.

5. The computer implemented method of claim 1 , wherein:

the method further comprises indexing the space P using a spatial indexing technique suitable for finding the k-nearest neighbors of a point or cluster and suitable for performing a bounding-box search, both in spaces of a small fixed dimension; and

the performing comprises using the indexing to find the set S′.

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

selecting a cluster C in Θ;

performing a search in P for a set T′ of k nearest neighbors of a cluster p(C) in P;

finding a set T of all clusters in Θ that project to the set T′;

determining whether a cluster C′ of the set T is a nearest neighbor of the cluster C; and

if C′ is a nearest neighbor of the cluster C, merging C and C′ to form a cluster.

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

initially setting k to an integer within 1 of the square root of n;

for each cluster D of a plurality of clusters in Θ, searching for the nearest neighbor of D by:

finding the k-nearest neighbors of the cluster p(D) in P;

finding a set of clusters S″ in Θ based upon the k-nearest neighbors; and

searching for a nearest neighbor of D′ in S″; and

adjusting k based upon how often S″ contains a nearest neighbor of C′.

8. The computer implemented method of claim 6 , wherein:

determining whether the cluster C′ in S is a nearest neighbor of the cluster C comprises:

determining that no other cluster in T is closer to C than C′;

determining whether all clusters D in P for which μ′ (D, p(C))≤backed-out (μ(C′,C) are members of T′;

if so, returning C′ as a closest neighbor of C; and

if not, increasing the value of k to k′ and performing a search in P for a set T″ of k′ nearest neighbors of the cluster p(C) in P.

9. The computer implemented method of claim 6 , wherein:

determining whether the cluster C′ in S is a nearest neighbor of the cluster C comprises:

determining that no other cluster in T is closer to C than C′;

determining whether all clusters D in P for which μ′(D, p(C))≤backed-out (μ(C′,C) are members of T′;

if so, returning C′ as a closest neighbor of C; and if not:

performing a bounding-box search in P for a set U′ of all clusters D for which μ′(D, p(C))≤backed-out (μ(C′,C); and

finding a set U of clusters in Θ that project to the set U′; and

searching the set U for a nearest neighbor of the cluster C.

10. The computer implemented method of claim 6 , further comprising searching for mutual nearest neighbors by generating a chain of nearest neighbor clusters, wherein:

a first cluster of the chain is the cluster C;

each successor cluster in the chain is a nearest neighbor of an immediately previous cluster in the chain; and

a last cluster in the chain and a second-last cluster in the chain are mutual nearest neighbors.

11. The computer implemented method of claim 10 , further comprising:

merging the last cluster and the second-last cluster in the chain of nearest neighbors;

selecting a cluster of the chain other than the last cluster and the second-last cluster; and

generating another chain of nearest neighbor clusters, wherein the first cluster of the other chain is the selected cluster of the chain.

12. The computer implemented method of claim 10 , further comprising generating a plurality of chains of nearest neighbor clusters in parallel.

13. A computer implemented method for improving, using multi-dimensional indexing data structures, a process of finding nearest neighbors for points, in multi-dimensional spaces, associated with a manufacturing process, the computer comprising a processor and memory, the method comprising:

powering the computer;

in response to powering the computer, executing an initialization procedure for the computer, the initialization procedure comprising configuring the memory and initializing one or more device drivers for communicating with one or more devices;

providing a multi-dimensional indexing data structure in the memory;

projecting, using at least one processor associated with the multi-dimensional indexing data structure, an n-dimension space Θ with a dissimilarity measure μ into an m-dimensional space P with a dissimilarity measure μ′ by a projection function p, wherein:

1≤m<n;

(μ′( p ( v 1), p ( v 2))≤μ( v 1, v 2) for all points v 1 and v 2 in Θ; and

the projecting comprises:

selecting, using at least one processor associated with the multi-dimensional indexing data structure, a j-dimensional space J of Θ, where j>1; and

projecting, using at least one processor associated with the multi-dimensional indexing data structure, points v onto their norm in the space J; and

selecting, using at least one processor associated with the multi-dimensional indexing data structure, a point v in Θ;

performing, using at least one processor associated with the multi-dimensional indexing data structure, a search in P for a set ‘S’ of k nearest neighbors of the point p(v) in P;

finding, using at least one processor associated with the multi-dimensional indexing data structure, a set S of points in Θ that project to the set S′; and

determining, using at least one processor associated with the multi-dimensional indexing data structure, whether a point of the set S is a nearest neighbor of the point v,

wherein determining whether the point of the set S is the nearest neighbor of the point v enables determination of an issue associated with the manufacturing process.

14. The computer implemented method of claim 13 , wherein the projecting further comprises:

selecting a principal component u of Θ using principal component analysis; and

projecting points v of Θ onto u.

15. The computer implemented method of claim 13 , wherein the projecting further comprises:

selecting a set PC of principal components of Θ using principal component analysis, wherein the set PC contains principal components for 0≤s<n;

projecting Θ onto the principal components of the set PC;

determining a principal component u of Θ that captures the most remaining variance;

if u captures at least 1/m-s of the remaining variance, projecting points v of Θ onto u; and

otherwise projecting points v onto their norm in the space J.

16. A computer program product embodied in a non-transitory computer readable medium and comprising computer instructions for:

powering a computer;

in response to powering the computer, executing an initialization procedure for the computer, the initialization procedure comprising configuring a memory and initializing one or more device drivers for communicating with one or more devices;

providing a multi-dimensional indexing data structure in the memory, the multi-dimensional indexing data structure comprising at least one of an R-tree data structure or a KD-tree data structure;

projecting, using at least one processor associated with the multi-dimensional indexing data structure, an n-dimension space Θ, with a dissimilarity measure μ into an m-dimensional space P with a dissimilarity measure μ′ by a projection function p, wherein:

1<m<n; and

μ′( p ( v 1), p ( v 2))≤μ( v 1, v 2) for all points v 1 and v 2 in Θ;

selecting, using the at least one processor associated with the multi-dimensional indexing data structure, a point v in Θ;

performing, using the at least one processor associated with the multi-dimensional indexing data structure, a search in P for a set S′ of k nearest neighbors of the point p(v) in P;

finding, using the at least one processor associated with the multi-dimensional indexing data structure, a set S of all points in Θ that project to the set S′; and

determining, using the at least one processor associated with the multi-dimensional indexing data structure, whether a point of the set S is a nearest neighbor of the point v,

wherein determining whether the point of the set S is the nearest neighbor of the point v enables determination of a problem or an issue associated with the manufacturing process.

17. The computer program product of claim 16 , wherein the projecting comprises:

selecting a principal component u of Θ using principal component analysis; and

projecting points v of Θ onto u.

18. The computer program product of claim 16 , wherein the projecting comprises:

selecting a set PC of principal components of Θ using principal component analysis, wherein the set PC contains principal components for 0≤s<n;

projecting Θ onto the principal components of the set PC;

determining an additional principal component u of Θ that captures the most remaining variance after removing the variance captured by projecting Θ onto the principal components of the set PC;

if u captures at least 1/m-s of the remaining variance, projecting points v of Θ onto u; and

otherwise:

selecting a j-dimensional space J contained in Θ, where j>1; and

projecting the points v onto their norm in the space J.

19. The computer program product of claim 16 , further comprising computer instructions for indexing the space P using a spatial indexing technique suitable for finding the k-nearest neighbors of a point or cluster and suitable for performing a bounding-box search, both in spaces of a small fixed dimension; and the performing comprises using the indexing to find the set S′.

20. The computer program product of claim 16 , further comprising computer instructions for:

selecting a cluster C in Θ;

performing a search in P for a set T′ of k nearest neighbors of a cluster p(C) in P;

finding a set T of all clusters in Θ that project to the set T′;

determining whether a cluster C′ of the set T is a nearest neighbor of the cluster C; and

if C′ is a nearest neighbor of the cluster C, merging C and C′ to form a cluster.

Assignments (34)
CHANGE OF NAME Recorded Jul 1, 2026
From: CLOUD SOFTWARE GROUP, INC.
To: CLOUD SOFTWARE GROUP, LLC
Reel/Frame 075874/0220 →
PATENT SECURITY AGREEMENT Recorded Aug 15, 2025
From: CLOUD SOFTWARE GROUP, INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 072488/0172 →
SECURITY INTEREST Recorded May 24, 2024
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 067662/0568 →
PATENT SECURITY AGREEMENT Recorded Apr 14, 2023
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 063340/0164 →
RELEASE AND REASSIGNMENT OF SECURITY INTEREST IN PATENT (REEL/FRAME 062113/0001) Recorded Apr 14, 2023
From: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
To: CITRIX SYSTEMS, INC.; CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.)
Reel/Frame 063339/0525 →
CHANGE OF NAME Recorded Feb 7, 2023
From: TIBCO SOFTWARE INC.
To: CLOUD SOFTWARE GROUP, INC.
Reel/Frame 062714/0634 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 062112/0262 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 062113/0470 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 062113/0001 →
RELEASE REEL 052115 / FRAME 0318 Recorded Oct 3, 2022
From: KKR LOAN ADMINISTRATION SERVICES LLC
To: TIBCO SOFTWARE INC.
Reel/Frame 061588/0511 →
RELEASE (REEL 049010 / FRAME 0167) Recorded Sep 30, 2022
From: JPMORGAN CHASE BANK, N.A.
To: TIBCO SOFTWARE INC.
Reel/Frame 061575/0482 →
RELEASE (REEL 054275 / FRAME 0975) Recorded May 7, 2021
From: JPMORGAN CHASE BANK, N.A.
To: TIBCO SOFTWARE INC.
Reel/Frame 056176/0398 →
SECURITY AGREEMENT Recorded Nov 2, 2020
From: TIBCO SOFTWARE INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 054275/0975 →
SECURITY AGREEMENT Recorded Mar 6, 2020
From: TIBCO SOFTWARE INC.
To: KKR LOAN ADMINISTRATION SERVICES LLC, AS COLLATERAL AGENT
Reel/Frame 052115/0318 →
SECURITY INTEREST Recorded Apr 26, 2019
From: TIBCO SOFTWARE INC.
To: JPMORGAN CHASE BANK, N.A. AS COLATERAL AGENT
Reel/Frame 049010/0167 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 19, 2018
From: QUEST SOFTWARE INC.
To: TIBCO SOFTWARE INC.
Reel/Frame 045592/0967 →
CHANGE OF NAME Recorded Mar 21, 2018
From: DELL SOFTWARE INC.
To: QUEST SOFTWARE INC.
Reel/Frame 045660/0755 →
CHANGE OF NAME Recorded Mar 9, 2018
From: DELL SOFTWARE INC.
To: QUEST SOFTWARE INC.
Reel/Frame 045546/0372 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 16, 2018
From: DELL PRODUCTS L.P.
To: DELL SOFTWARE INC.
Reel/Frame 045355/0817 →
RELEASE OF SECURITY INTEREST IN CERTAIN PATENT COLLATERAL AT REEL/FRAME NO. 040581/0850 Recorded Jun 7, 2017
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
To: DELL SOFTWARE INC.
Reel/Frame 042731/0286 →
RELEASE OF SECURITY INTEREST IN CERTAIN PATENT COLLATERAL AT REEL/FRAME NO. 040587/0624 Recorded Jun 7, 2017
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
To: DELL SOFTWARE INC.
Reel/Frame 042731/0327 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Nov 10, 2016
From: DELL SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040587/0624 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Nov 9, 2016
From: DELL SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040581/0850 →
RELEASE OF SECURITY INTEREST IN CERTAIN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040039/0642) Recorded Oct 31, 2016
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
To: AVENTAIL LLC; DELL PRODUCTS L.P.; DELL SOFTWARE INC.
Reel/Frame 040521/0016 →
RELEASE OF SECURITY INTEREST Recorded Oct 31, 2016
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: AVENTAIL LLC; DELL PRODUCTS, L.P.; DELL SOFTWARE INC.
Reel/Frame 040521/0467 →
RELEASE OF REEL 036502 FRAME 0291 (NOTE) Recorded Sep 14, 2016
From: BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: DELL SOFTWARE INC.; DELL PRODUCTS L.P.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040027/0637 →
RELEASE OF REEL 036502 FRAME 0237 (TL) Recorded Sep 14, 2016
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: DELL SOFTWARE INC.; DELL PRODUCTS L.P.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040028/0088 →
SECURITY AGREEMENT Recorded Sep 14, 2016
From: AVENTAIL LLC; DELL PRODUCTS, L.P.; DELL SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040030/0187 →
SECURITY AGREEMENT Recorded Sep 14, 2016
From: AVENTAIL LLC; DELL PRODUCTS L.P.; DELL SOFTWARE INC.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 040039/0642 →
RELEASE OF REEL 036502 FRAME 0206 (ABL) Recorded Sep 13, 2016
From: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
To: DELL SOFTWARE INC.; DELL PRODUCTS L.P.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040017/0204 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (ABL) Recorded Aug 27, 2015
From: DELL PRODUCTS L.P.; DELL SOFTWARE INC.; WYSE TECHNOLOGY, L.L.C.
To: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 036502/0206 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (TERM LOAN) Recorded Aug 27, 2015
From: DELL PRODUCTS L.P.; DELL SOFTWARE INC.; WYSE TECHNOLOGY L.L.C.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 036502/0237 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (NOTES) Recorded Aug 27, 2015
From: DELL PRODUCTS L.P.; DELL SOFTWARE INC.; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 036502/0291 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 9, 2015
From: NUCHIA, STEPHEN; SCOTT, DANIEL
To: DELL PRODUCTS, LP
Reel/Frame 035811/0059 →
Continuity (1)
Related Publication 20160342677A1 · Nov 24, 2016
Cited By (1)
US 12,436,981