Location determination based on network element clustering

CN122934278APending Publication Date: 2026-10-16HEWLETT PACKARD ENTERPRISE DEV LP
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202511364693.7
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2025-04-07
Filing Date
2025-09-23
Publication Date
2026-10-16

Smart Images

  • Figure CN122934278A_ABST
    Figure CN122934278A_ABST
Patent Text Reader

Abstract

Embodiments of the present disclosure relate to location determination based on network element clustering. Systems and methods are provided for refining the determination of network element clusters in deployment to address weakly linked network elements. Relative distances between network elements can be determined and represented in a matrix, which is applied to two different clustering algorithms. A first clustering algorithm determines a first set of network element clusters, while a second clustering algorithm refines the first set of network element clusters until all determined network element clusters are isolated network element clusters.
Need to check novelty before this filing date? Find Prior Art

Description

Cross-references to related applications

[0001] This application relates to U.S. Patent No. 11,917,575, published February 27, 2024, which is a continuation-to-file of U.S. Patent No. 11,229,000, published January 18, 2022, the entire contents of which are incorporated herein by reference. Background Technology

[0002] Access point (AP) deployment, especially in large facilities, can involve placing / installing APs in various locations, such as in ceilings, behind walls, hidden inside or near structures. Furthermore, AP deployment can include APs placed on multiple floors of a building, or in different areas of those floors (e.g., wings, corridors, rooms, etc.). Attached Figure Description

[0003] This disclosure will be described in detail with reference to the following figures, based on one or more different examples. These figures are provided for illustrative purposes only and depict only typical, non-limiting aspects of these examples.

[0004] Figure 1A The figure illustrates an example of AP deployment in a facility with different access point AP clusters.

[0005] Figure 1B The figure illustrates an example of AP deployment in a facility with linked AP clusters.

[0006] Figure 2 The diagram shows the representative Figure 1A and 1B The adjacency matrix deployed by the AP.

[0007] Figure 3A This is a flowchart illustrating example operations performed in a deployment to identify different / separate AP clusters according to the techniques disclosed herein.

[0008] Figure 3B The figure illustrates an example adjacency matrix and clustering determined according to an example of the technology disclosed herein.

[0009] Figure 4 An example computing component is described, which can be used to implement a constrained, recursive algorithm for determining the location of an AP in deployment according to an example of the technology disclosed herein.

[0010] Figure 5 It is a computing component that can be used to implement the techniques disclosed herein.

[0011] The accompanying drawings are not exhaustive and are not intended to limit this disclosure to its precise form. Detailed Implementation

[0012] As mentioned above, the deployment of APs in a facility results in those APs being installed in various areas of the facility. Once the APs are installed, it may be necessary to determine their locations later. For example, there may be a need to maintain, replace, or modify the installation locations of APs to facilitate better connectivity with user equipment. Maps can be used to determine the location of the APs in the deployment, if such maps exist.

[0013] Therefore, the examples of the techniques disclosed herein are intended for applications or tools capable of automatically determining or mapping the locations of a set of APs within a deployment. With the implementation of Fine Timing Measurement (FTM) (802.11 protocol), wireless devices can calculate the distances (relative distances) between each other with high precision. The application can leverage FTM while using a technique called Multi-dimensional Scaling (MDS), a dimensionality reduction technique in machine learning (ML). MDS can be used to determine the locations of APs based on proximity data (i.e., the relative distances between APs). More specifically, MDS can be applied to generate a set of locations representing the relative positions of multiple objects (e.g., APs) based on a distance table between them. The set of locations can be of any number of dimensions, and more specifically, with regard to AP mapping in a facility, two-dimensional (2D) and three-dimensional (3D) mappings can be provided based on a proximity table or proximity matrix describing the distances between each pair of APs. Mathematically, MDS can be used to transform information about pairwise distances between a set of n objects (e.g., APs) into a configuration of n points (AP locations) mapped to Cartesian space.

[0014] In some scenarios (e.g., multi-story buildings, large-area deployments with AP clusters in different areas, or irregularly shaped buildings with two or more main areas separated by corridors), it is beneficial to divide the floor plan into sub-sections and process each section separately. In other words, it may be advantageous to determine the location of all APs on a cluster-by-cluster basis rather than attempting to determine the location of all APs in the deployment at once; for example, AP location determination can be performed on a per-section / per-area basis within the facility.

[0015] However, relying on users / customers to define these AP clusters introduces complexity and reduces application reliability. Therefore, examples of the techniques disclosed herein also involve automatically identifying sets or clusters of APs belonging to different areas or parts of a deployment. It should be noted that automatic cluster determination can yield other benefits, such as detecting errors in customer AP deployments or labelling, and can also be used to further improve the accuracy of other location determination methods, such as sensor-based or GPS-based methods.

[0016] To identify AP clusters, the input proximity matrix used to determine the relative distances between APs is transformed into an adjacency matrix with values ​​of 1 representing valid network links and values ​​of 0 representing lost network links. For clustering that includes the adjacency matrix as input, spectral clustering techniques often perform best. A popular / suitable spectral clustering technique is the Louvain algorithm. The Louvain algorithm requires the adjacency matrix as its input, along with a resolution parameter or resolution value that restricts the strictness of the clustering. For strict clustering, the ratio of 1s to 0s in the adjacency matrix should be large. However, the resolution parameter varies depending on the size of the adjacency matrix, thus negating the effectiveness of the Louvain algorithm.

[0017] Therefore, to address the issue of varying resolution parameters, examples of the techniques disclosed herein apply disjoint set functions to the adjacency matrix. Disjoint set functions can be used to isolate sets of APs (clusters) in a deployment represented in the adjacency matrix. Disjoint set functions can be considered a rigorous clustering method. After applying the disjoint set function, the Leuven algorithm can be run on (multiple) clusters represented by the disjoint set outputs / representations of the adjacency matrix (using optimal resolution parameters determined through testing). If running the Leuven algorithm results in a single AP cluster, that AP cluster can be returned as the "final" output. However, if a single / isolated AP cluster is not determined by the Leuven algorithm, the Leuven algorithm can be used to divide the clusters into increasingly smaller clusters until the clusters can no longer be divided, and only a single / isolated cluster remains.

[0018] Once the isolated AP clusters are determined, the adjacency matrix can be transformed back into a proximity matrix, which can be used by MDS to determine the position of APs within these clusters.

[0019] As used herein, the term AP (also known as a Wireless Access Point (WAP)) refers to a network hardware device that allows devices to connect to a wired network, including the Internet or an intranet. An AP can be a standalone device connected to a router (via a wired network) or can be an integrated component of the router itself. An AP can include, but is not limited to, Wi-Fi APs operating under one or more Institute of Electrical and Electronics Engineers (IEEE) 802.11 standards. An AP can also operate using any other wireless communication technology, including, for example, cellular communications (including 4G and 5G technologies), Bluetooth, ZigBee, and other technologies. It should be noted that while the examples of techniques in this disclosure are described in the context of AP location mapping, any network element that can determine its location using FTM (or other mechanisms(s) for determining relative distance) can also perform location mapping.

[0020] Based on examples of the techniques disclosed herein, solutions to technical problems rooted in computer technology are provided. As mentioned above, difficulties may arise when attempting to determine the location of network elements such as APs due to complex installations or deployments. These difficulties are only exacerbated when the installation or deployment is not only complex but also large-scale. Examples of the techniques disclosed herein can be implemented as applications or tools that users or customers may wish to use at any time. Without the use of computerized techniques such as those described herein, the use of algorithms for optimizing clustering identification based on location determination cannot be performed, or the practicality and on-demand use of the techniques disclosed herein will no longer exist / be impossible. As can be understood from the description of the techniques disclosed herein, errors, not to mention undesirable delays, may result from the derivation and processing of matrices and computational attempts performed in a “manual” implementation. Therefore, examples of the techniques disclosed herein, based on computer technology, avoid the introduction of human / psychological errors or negligence and can provide real-time or near-real-time results.

[0021] Figure 1A This is a diagram of facility 100 that includes multiple access points (APs) in a network. (See diagram for example.) Figure 1A As shown, a specific facility 100 may have a large number of access points distributed throughout the environment to provide wireless communication coverage. This particular example illustrates a set of 12 APs designated as AP-A to AP-L, but any number of APs may exist within the facility or deployment. In some examples, the network may include a central controller 120 for controlling certain operations of AP-A to AP-L. A server (or other computing device) 130 may be used to determine the location of APs (such as AP-A to AP-L) using an MDS.

[0022] like Figure 1AAs illustrated, AP-A to AP-G are deployed such that they can include cluster 105. It is understood that cluster 105 is separate and distinct from AP-H to AP-L, which can include cluster 110. In this example, when determining the location of APs (AP-A to AP-L), the locations of APs including cluster 105 and APs including cluster 110 can be determined separately. From an algorithmic perspective, when presented as relative distances between AP-A and AP-L, the disjoint set function can easily separate clusters 105 and 110 from each other, and server 130 can use the MDS to determine the location of their respective APs.

[0023] However, when clusters are not easily distinguishable or isolated, the location of the AP cannot be determined solely by using disjoint set functions. Consider... Figure 1B The deployment shown in the diagram is similar to... Figure 1A The illustrated deployment, facility 100, can have a large number of access points (APs) (i.e., AP-A to AP-L) distributed throughout the environment to provide wireless communication coverage. In some examples, the network may include a central controller 120 for controlling certain operations of APs (APs) (e.g., AP-A to AP-L). A server (or other computing device) 130 may be used to determine the location of the APs (e.g., AP-A to AP-L) using an MDS. However, compared to... Figure 1A Unlike other examples, AP-C, AP-D, and AP-H are linked, albeit weakly. For instance, transmissions of AP-C, AP-D, and AP-H can be received or picked up by each other, indicating their physical proximity. Visually, it's understandable that clusters 105 and 110 are more or less distinct from each other, and while this may not pose a problem operationally, from a mapping perspective, these links prevent simple algorithmic isolation between clusters 105 and 110. That is, the proximity matrix representing this deployment only provides relative / pairwise distances between AP-A and AP-L, with a value of "0" indicating no "link" between two or more APs. Therefore, using conventional clustering methods, such as simply applying disjoint set functions, would treat this deployment as a single cluster, which is not ideal for accuracy.

[0024] Figure 2 The diagram illustrates a comparison between adjacency matrix 200 and adjacency matrix 210, which represent... Figure 1A and Figure 1BAP deployment. As described above, the examples of the techniques disclosed herein implement clustering algorithms. Since the input form of FTM-based methods is a proximity matrix (which sometimes lacks distance data), algorithms relying on the average distance to the cluster centers are not feasible. Some methods may attempt to manually fill in the missing distance data with values. However, this can introduce errors when dealing with AP deployments of varying densities, as the threshold density used as the basis for clustering can vary between areas of the facility.

[0025] In this context, the proximity matrix, reflecting the relative distances between APs, is transformed into an adjacency matrix. To perform this transformation, entries with non-zero values ​​in the proximity matrix are converted to "1" in the adjacency matrix, and entries with zero or missing values ​​in the proximity matrix are converted to "0". The result is an adjacency matrix that describes valid links in the AP deployment / network as "1" and lost / non-existent links as "0". (See reference...) Figure 2 It is understandable that the adjacency matrix 210 (represents...) Figure 1B The example reflects a link between APs (AP-C, AP-D, and AP-H) as a value of "1". This is consistent with the adjacency matrix 200 (representing...). Figure 1A In contrast to the example, adjacency matrix 200 reflects a value of "0" between AP-C, AP-D, and AP-H. Similarly, this is because in Figure 1A In the example, there are no links between those APs. Therefore, Figure 1B The example represents a scenario in which the techniques of this disclosure can be used to define or determine AP clusters, where conventional methods using individual disjoint set functions would be ineffective in accurately identifying distinct AP clusters 105 and 110. As described above, spectral clustering, and more specifically, the Leuven algorithm, can be used to maximize the ratio of all links within a cluster (between APs) to the number of links between nodes in that cluster and any other cluster.

[0026] In addition to the adjacency matrix, a resolution parameter can be derived as a way to increase the strictness of the clustering. However, as discussed above, the optimally adjusted or set resolution parameter (value) cannot be universally applied to datasets of different sizes. This resolution parameter (value) results in a large ratio of 1s to 0s in the adjacency matrix (reflecting strict clustering). That is, the optimal resolution parameter for dense clusters cannot be the same / similar for sparser clusters. This makes it infeasible to use the Leuven algorithm specifically to determine clusters for different deployments with different densities. In other words, relying solely on a "general" solution based on the Leuven algorithm will not lead to accurate cluster determination.

[0027] Furthermore, as will be described in more detail below, while FTM can be used to derive distance data between APs, it cannot resolve rotations or inversions of AP positions in 3D (or 2D) space without anchor APs. That is, AP mounting can cause APs to be oriented in various directions at specific locations, or even inverted, and at least three anchor positions are required to resolve the mapping of the proximity matrix in 3D / 2D space. To reduce the number of anchor APs required for the resolution of the proximity matrix, the resolution parameter should be set to a low value.

[0028] Therefore, to avoid problems associated with limiting optimal resolution parameters, a constrained but recursive clustering algorithm is used according to the examples of the techniques disclosed herein. It should be understood that the Leuven algorithm operates with the best possible constrained resolution parameters (e.g., derived through testing). However, the limitations associated with the conventional use of the Leuven algorithm along with resolution parameters can be overcome by using recursive clustering as disclosed herein.

[0029] Figure 3A The figure illustrates the operations performed by this recursive clustering algorithm 300. In operation 302, an adjacency matrix is ​​established or derived from the proximity matrix. That is, the distance between each pair of APs can be determined by instructing the APs, for example, by server 130 or controller 120 (Figure 1). The APs can determine the distance, for example, using AP signaling, such as using measurements of the time-of-flight of signals between APs. Distance determination can include the use of FTM between each pair of APs. FTM is a function provided in IEEE 802.11mc for determining the distance between stations using the time-of-flight of frame exchanges between transmitting and receiving stations. FTM can be used to provide accurate distance measurements based on direct signal transmissions (i.e., line-of-sight in terms of signal transmission) between each pair of APs in the facility. More specifically, APs can exchange timestamped signals, and the APs can calculate the round-trip time (RTT) of those exchanged signals, which can then be used to estimate the distance between the APs that exchanged signals.

[0030] The result of the distance measurement process between each pair of APs is a dataset describing the distances between all APs in the facility. In some examples, a table representing this dataset (not shown) can be generated. This table can be called a distance matrix or a proximity matrix. A proximity matrix is ​​a representation of the pairwise distances between set elements, for example, in the form of a two-dimensional array, in this case, the set of APs from AP-A to AP-L. The distance measurement results for each pair of APs can be received by server 130, which then generates the proximity matrix based on the received data measurement results.

[0031] It should be noted that any signaling / signaling readouts between two network devices (such as access points) can be used as the basis for distance determination. For example, signals reflecting strength (e.g., Return Signal Strength Indication (RSSI)) or other signals that can typically be exchanged between network devices (e.g., beacons, Bluetooth transmissions, UWB readouts, etc.) can indicate which network devices are likely closer / farther from each other (a stronger signal is equivalent to closer) or which network devices are adjacent to each other. This signaling information can be converted or translated into an adjacency matrix (without an intermediate proximity matrix). For example, receiving such a signal at a network device indicates that the network device is an adjacent device (reflected as "1" in the adjacency matrix), while not receiving such a signal indicates that the network device pair under consideration is not a neighbor (reflected as "0" in the adjacency matrix).

[0032] Once the proximity matrix has been derived or constructed, it can be converted into an adjacency matrix. An adjacency matrix is ​​a matrix representing how vertices in a graph are connected, where the elements / values ​​of the adjacency matrix indicate whether a pair of vertices (in this case, a pair of nodes / APs) are adjacent to each other. To perform this conversion, entries with non-zero values ​​in the proximity matrix are converted to "1" in the adjacency matrix, and entries with zero or missing values ​​in the proximity matrix are converted to "0". Because the presence of non-zero values ​​in the proximity matrix indicates the distance between two nodes / APs, the presence of "1" in the resulting adjacency matrix indicates that two nodes / APs are adjacent or linked. In the techniques disclosed herein, being linked or adjacent indicates that a pair of nodes / APs should likely belong to the same node / AP cluster. Conversely, the presence of "0" in the adjacency matrix indicates that nodes / APs are not adjacent or linked to each other, and therefore should not be in the same node / AP cluster.

[0033] At operation 304, disjoint set separation is performed on the adjacency matrix derived at operation 302 (a method that can be used to identify clusters). In set theory, disjoint sets are sets that have no common elements; in other words, they are distinct clusters. To determine the existence of disjoint sets, a check is performed to determine whether two elements belong to the same set by finding their respective representatives (parent elements). If the representatives of two elements are the same, they belong to the same set. This check can be repeated for all elements of interest until disjoint sets are identified (if they exist). In the context of the adjacency matrix, disjoint set separation can be performed by traversing the adjacency matrix to determine the representative of each index (the intersection of two nodes / APs). It should be understood that some indices will reflect 0 by default because the distance of a node / AP relative to itself is zero. See, for example... Figure 2The adjacency matrices 200 and 210 are provided, where the main diagonal (also called the first diagonal or main diagonal) includes the distances "between" node A and itself, node B and itself, etc. More specifically, if the value at an index is "1", its neighbors are checked to determine if the neighbor index value is also "1". If so, the union of that index and its neighbors is taken. This traversal, checking, and union operation (if necessary) of neighbors can be repeated for all indices until all disjoint sets in the adjacency matrix have been identified.

[0034] The result of performing disjoint set separation at operation 304 is that one or more clusters are identified or identified at operation 306. As mentioned above, using disjoint set separation to identify clusters yields a rigorous definition of the clusters. In practice, this means that two or more clusters that are only weakly linked can still be identified as a single cluster. However, as discussed above, when attempting to map or determine the location of APs on a cluster-by-cluster basis, this determination can be biased / lead to inaccuracy when the cluster includes weakly linked APs.

[0035] Therefore, in operation 308, another clustering algorithm is applied to each cluster determined / identified in operation 306. As mentioned above, the use of the disjoint set function can identify the initial clusters or cluster sets that can be further refined using the Leuven algorithm (an example of a clustering algorithm). The Leuven algorithm is based on the idea of ​​optimizing a metric called "modularity." If the network of nodes is randomly connected, modularity quantifies the quality of the "community structure" (in this context, clusters) by comparing the number of edges (links between nodes / APs) within a community to the expected number of edges. Finally, the Leuven algorithm seeks to maximize the modularity score of the community structure / cluster, which indicates a strong community structure. In this context, a strong community structure resembles a cluster that is precisely determined, for example, a cluster with no weak links between nodes / APs, as mentioned above, which can negatively impact cluster determination.

[0036] The Leuven algorithm involves iterating through the indices of the identified clusters and assigning each index to its own community / cluster. The Leuven algorithm can then iterate over the indices, evaluating the modularity gain by moving each index to its neighboring community / cluster and calculating the change in modularity resulting from this move. After evaluating all nodes / APs, the Leuven algorithm clusters the nodes / APs into their newly determined communities / clusters. This iterative improvement and community / cluster aggregation operation can be repeated until no further improvement in modularity can be achieved. At this point, the Leuven algorithm can output the final community structure (clusters) where nodes / APs within the same community / cluster are more densely connected to each other than nodes / APs belonging to another community / cluster.

[0037] In operation 310, a check is performed to determine whether the result of applying the clustering algorithm in operation 308 resulted in the identification of a single cluster. If not, the constrained recursive algorithm 300 returns to operation 306, where the clustering algorithm is applied again until the result obtained in operation 310 is a single cluster.

[0038] Once a single cluster has been identified, operation 312 returns a matrix representing that single cluster. In other words, the adjacency matrix, including the distinct / independent clusters, is output.

[0039] Once the clustering is returned, the adjacency matrix representing that cluster can be transformed back into a proximity matrix. The proximity matrix data itself does not describe the physical location of the APs represented in the proximity matrix. In some examples, the proximity matrix is ​​solved to determine the location of each AP relative to every other AP. In some examples, the determined locations can be used to generate a mapping of APs.

[0040] Figure 3B The figure illustrates an example scenario for determining clusters within an adjacency matrix according to the techniques of this disclosure. Figure 3B An example adjacency matrix of 320 can be represented, such as Figure 2 Adjacency matrices 200 and 210 are shown, but include a greater number of APs, along with the resulting indices. Similar to adjacency matrices 200 and 210, the presence of a 1 at an index (here, represented as a box / dot) indicates that the APs are adjacent / linked. Examples of such indices are indices 322, 324, 326, and 328. The absence of dots / boxes in adjacency matrix 320 indicates that there are no links between the indexed nodes / APs. It should be understood that due to the size of adjacency matrix 320, individual "1"s and "0"s are not shown, nor are all indices labeled for readability.

[0041] For example, consider adjacency matrix 320 representing an AP deployment or network in a 12-story building, with the lowest floor divided into two buildings. As described above, the distance between each pair of APs can be determined by instructing the deployed APs via, for example, AP signaling, such as using measurements of the time-of-flight of the signals between APs. These distances can be used to generate a proximity matrix, where the distance between two APs (or relative to the APs themselves) is represented as an index of the proximity matrix. This proximity matrix can be converted into an adjacency matrix by replacing the indices with distance values ​​with "1" and by replacing the indices without associated distance values ​​with "0".

[0042] As mentioned above, regarding Figure 3A Disjoint set separation can be performed on adjacency matrices such as adjacency matrix 320. It should be understood that adjacency matrix 320 can be... Figure 2An enlarged example of an adjacency matrix of 200 / 210. Similarly, the deployment scale of the AP locations can be determined to be very large based on examples of the techniques disclosed herein. The first cluster set can be generated through the execution of disjoint set separation. In Figure 3B In the example scenario, the application of disjoint set separation can lead to the determination of 11 AP clusters (clusters 340-360) in the first 11 floors of the building represented by adjacency matrix 320. Visually, it can be understood that the density of APs including AP clusters 340-360 makes these clusters seem like individual clusters that cannot be further decomposed into more clusters.

[0043] The application identifier cluster 330 is separated from the disjoint set of floor 12 (as described above, which is divided between the two buildings). However, consistent with the deployment of APs in cluster 330 spanning the two buildings, the first set / cluster of AP 332 (in the first building of the two buildings) can be weakly connected only to the second set / cluster of AP 334 (in the second building of the two buildings).

[0044] Visually, it is understandable that when determining the positions of the APs that make up AP clusters 332 and 334, AP clusters 332 and 334 should be processed separately. Therefore, by applying the Leuven algorithm to cluster 330, it will be determined that cluster 330 can be further subdivided into smaller clusters, namely AP clusters 332 and 334.

[0045] Solving a proximity matrix with a large number of values ​​is computationally difficult. In some examples of the techniques disclosed herein, a median distance table (MDS) is used to determine the location of an access point (AP) from proximity (matrix) data. An MDS can be applied to generate a set of locations representing the relative positions of multiple objects (APs in this case) based on a distance table between them. The set of locations can be of any number of dimensions, and more specifically, with regard to AP mapping within a facility, 2D and 3D mappings can be provided based on a proximity table describing the distances between each pair of APs. As discussed above, an MDS can be applied to transform information about pairwise distances between a set of n objects into a configuration of n points mapped to Cartesian space.

[0046] Solving for AP distance data for multiple access points results in a complete set of AP locations. However, while the set of AP locations provides the positional relationships of all access points, it does not resolve rotations and reversals of locations in 3D (or 2D) space; that is, the set of locations satisfying AP distance values ​​can be oriented in any direction or can be reversed. In some examples, for instance, server 130 uses one or more actual known locations of the APs to resolve rotations and reversals of the location set. As mentioned above, known access points can be referred to as anchor points, and it is generally expected that the locations of at least three anchor points are needed to resolve the mapping of the proximity matrix in 3D space. However, the actual number of anchor points required can depend on the specific environment. The locations of anchor points can be determined in any way, including but not limited to using GPS data to provide the required coordinates. In some examples, solving for the necessary number of proximity matrices including known anchor points leads to the generation of a properly oriented set of access point locations.

[0047] Figure 4 The diagram illustrates various examples of computational components that can be used to determine the location of APs (or other objects) in a deployment on a per-cluster basis, according to the technology of this disclosure. Reference is now made to... Figure 4 The computing component 400 can be, for example, a server computer, a controller, or any other similar computing component capable of processing data. Figure 4 In the example implementation, computing component 400 includes hardware processor 402 and machine-readable storage medium 404.

[0048] Hardware processor 402 may be one or more central processing units (CPUs), semiconductor-based microprocessors, and / or other hardware devices suitable for retrieving and executing instructions stored in machine-readable storage medium 404. Hardware processor 402 may retrieve, decode, and execute instructions such as instructions 406-412 to control processes or operations for determining the location of APs / objects in the deployment on a per-cluster basis. Alternatively to, or in addition to, retrieving and executing instructions, hardware processor 402 may include one or more electronic circuits comprising electronic components for the function of executing one or more instructions, such as field-programmable gate arrays (FPGAs), application-specific integrated circuits (ASICs), or other electronic circuits.

[0049] Machine-readable storage media such as 404 can be any electronic, magnetic, optical, or other physical storage device that contains or stores executable instructions. Therefore, machine-readable storage media 404 can be, for example, random access memory (RAM), non-volatile RAM (NVRAM), electrically erasable programmable read-only memory (EEPROM), storage devices, optical discs, etc. In some examples, machine-readable storage media 413 can be a non-transitory storage medium, where the term "non-transitory" excludes transient propagation signals. As described in detail below, machine-readable storage media 404 can be encoded with executable instructions such as instructions 404-412.

[0050] Hardware processor 402 can execute instructions 406 to generate a matrix representing the relationships between pairs of elements deployed in the network, based on signaling exchanged between them. According to the examples described herein, network elements can be APs, but can also be other network elements, or simply other objects whose relative distances are determined. In some examples, the matrix representation can begin as a proximity matrix, where the indices reflect the determined distances between network elements, or simply the relationships between network elements as reflected by the exchanged signals. As mentioned above, to utilize spectral clustering techniques, the proximity matrix can be converted into an adjacency matrix, where indices associated with relative distances (i.e., non-zero values) can be replaced with the value "1". Those indices not associated with relative distances or reflecting the distance between a network element and itself are assigned the value "0". It should be noted that these values ​​are only used to distinguish between valuable and non-valued indices, and other representative values ​​can be used to replace non-zero and zero distance values. This simplifies the dimensionality of the relative distance data to simple binary values. This makes subsequent processing / analysis more efficient and less resource-intensive, not to mention facilitating the use of spectral clustering techniques. When relying on signals such as RSSI reflecting signal strength, or simply receiving / not receiving signals (such as Wi-Fi beacons), a neighbor matrix is ​​not needed because this information can be "directly" binary-coded into a neighbor matrix.

[0051] Hardware processor 402 can execute instructions 408 to initially identify one or more element clusters by applying a first clustering algorithm to the matrix. In some examples, the first clustering algorithm may be a disjoint set separation function or algorithm. As mentioned above, disjoint set separation can determine the existence of clusters from the adjacency matrix. However, disjoint set separation results in strictly limited clustering, i.e., any link between two network elements, however weak, will cause the two network elements to be grouped together in a cluster / as a cluster. In scenarios where network elements are only weakly linked, for example, another transmission may be received, but from a location / mapping perspective, the AP belongs to a different geographical area for all intentions and purposes, and therefore should therefore be clustered separately to achieve more accurate location determination.

[0052] Therefore, the hardware processor 402 can execute instruction 410 to recursively apply the second clustering algorithm to each of the one or more initially identified element clusters and any subsequently identified element clusters, until only one or more isolated element clusters remain from the recursive application of the second clustering algorithm. That is, another clustering algorithm, such as the Leuven algorithm, can be applied to the clusters identified via the disjoint set separation algorithm to further subdivide the clusters implemented by the disjoint set separation algorithm. This is an iterative and recursive process, thereby allowing the clusters to be refined (further subdivided into additional clusters) again and again until there are no more clusters among the identified clusters that can be further subdivided.

[0053] Hardware processor 402 can execute instructions 412 to determine the location of elements deployed in a network using multidimensional scaling, based on one or more isolated groups of elements. As discussed above, the examples of techniques disclosed herein attempt to utilize FTM and MDS techniques to determine the location of network elements such as APs. Accurate clustering of network elements helps to provide an optimal representation of the relative distances between such network elements. Furthermore, in scenarios where two or more network elements are only weakly linked, location determination is more accurate when the clustering of network elements does not include weakly linked network elements. When applied in a conventional manner, such optimized clustering can be provided by using a two-level or two-stage iterative and recursive approach that leverages multiple clustering algorithms to overcome the limitations of clustering algorithms.

[0054] If the customer chooses not to identify which access points (APs) belong to a floor or incorrectly identifies some APs, the iterative, recursive clustering algorithm of this disclosure enables the correct subdivision of floor plans or other deployment characteristics, which in turn leads to more accurate automatic positioning results. Furthermore, through examples of the techniques of this disclosure, complex deployments of features, such as complex building layouts, can be easily handled, thereby increasing the number of conditions under which automatic positioning algorithms (e.g., based on FTM and MDS) can function correctly. A long-term benefit of binding this data with data from elevation sensors and GPS sensors is that improved positioning accuracy is possible by limiting some APs to a subset of the same elevation values.

[0055] Figure 5 A block diagram of an example computer system 500 is depicted, in which various examples of the techniques disclosed herein can be implemented. AP (e.g., Figure 1A and 1B The various components or aspects of the AP (Application Programmable Array) and server 130 or controller 120 can be implemented by computer system 500. Computer system 500 includes bus 502 or other communication mechanism for transmitting information, and one or more hardware processors 504 coupled to bus 502 for processing information. Hardware processor 504 may be, for example, one or more general-purpose microprocessors.

[0056] Computer system 500 also includes main memory 506, such as random access memory (RAM), cache and / or other dynamic storage devices, coupled to bus 502 for storing information and instructions to be executed by processor 504. Main memory 506 can also be used to store temporary variables or other intermediate information during the execution of instructions to be executed by processor 504. When stored in storage media accessible to processor 504, these instructions make computer system 500 a special-purpose machine customized to perform the operations specified in the instructions.

[0057] Computer system 500 also includes read-only memory (ROM) 508 or other static storage devices coupled to bus 502 for storing static information and instructions for processor 504. Storage devices 510, such as disks, optical discs, or USB thumb drives (flash drives), are provided and coupled to bus 502 for storing information and instructions.

[0058] Computer system 500 can be coupled to display 512, such as a liquid crystal display (LCD) (or touchscreen), via bus 502 for displaying information to the computer user. Input device 514, including alphanumeric keys and other keys, is coupled to bus 502 for sending information and command selections to processor 504. Another type of user input device is cursor control 516, such as a mouse, trackball, or arrow keys, for sending directional information and command selections to processor 504 and for controlling cursor movement on display 512. In some examples, the same directional information and command selections as those for cursor control can be achieved by receiving touches on a touchscreen without a cursor.

[0059] The computing system 500 may include a user interface module that implements a GUI, which may be stored as executable software code executed by (or more) computing devices in a mass storage device. For example, this module and other modules may include components such as software components, object-oriented software components, class components, and task components; processes; functions; attributes; procedures; subroutines; program code segments; driver programs; firmware; microcode; circuits; data; databases; data structures; tables; arrays; and variables.

[0060] Generally, the terms "component," "engine," "system," "database," and "data storage" used in this article can refer to logic contained in hardware or firmware, or to a collection of software instructions that may have entry and exit points, written in a programming language (such as Java, C, or C++). It should be understood that software components can be invoked from other components or from themselves, and / or can be invoked in response to detected events or interrupts.

[0061] Computer system 500 may implement the techniques described herein using custom hard-wired logic, one or more application-specific integrated circuits (ASICs) or field-programmable gate arrays (FPGAs), firmware, and / or program logic. The custom hard-wired logic, one or more ASICs or FPGAs, combined with the computer system, enable computer system 500 to become a special-purpose machine or to program computer system 500 as a special-purpose machine. As an example of the techniques according to this disclosure, the techniques herein are executed by computer system 500 in response to processor(s) 504 executing one or more sequences of one or more instructions contained in main memory 506. These instructions may be read into main memory 506 from another storage medium, such as storage device 510. Execution of the instruction sequence contained in main memory 506 causes processor(s) 504 to perform the processing steps described herein. In additional examples, hard-wired circuitry may replace or be used in combination with software instructions.

[0062] As used herein, the term "non-transitory medium" and similar terms refer to any medium that stores data and / or instructions that cause a machine to operate in a particular manner. Such non-transitory media can include non-volatile media and / or volatile media. Non-transitory media are distinct from transmission media but can be used in conjunction with transmission media. Transmission media participate in the transmission of information between non-transitory media. For example, transmission media include coaxial cables, copper wires, and optical fibers, including conductors containing bus 502. Transmission media can also take the form of sound waves or light waves, such as those generated during radio wave and infrared data communication.

[0063] Computer system 500 also includes a communication interface 518 coupled to bus 502. Network interface 518 provides bidirectional data communication coupled to one or more network links connected to one or more local networks. For example, communication interface 518 may be an Integrated Services Digital Network (ISDN) card, cable modem, satellite modem, or modem to provide data communication connectivity to a corresponding type of telephone line. As another example, network interface 518 may be a Local Area Network (LAN) card to provide data communication connectivity to a LAN-compatible network (or a WAN component communicating with a Wide Area Network (WAN)). Wireless links may also be implemented. In any such implementation, network interface 518 transmits and receives electrical, electromagnetic, or optical signals carrying digital data streams representing various types of information.

[0064] Each process, method, and algorithm described in the preceding sections can be implemented in a code component executed by one or more computer systems or a computer processor including computer hardware, and is implemented automatically, wholly or partially, by the code component. One or more computer systems or computer processors can also operate to support the performance of related operations in a "cloud computing" environment or as "Software as a Service" (SaaS). The processes and algorithms can be implemented, wholly or partially, in an application-specific integrated circuit (ASIC). The various features and processes described above can be used independently of each other or in combination in various ways.

[0065] Different combinations and sub-combinations are intended to fall within the scope of this disclosure, and certain methods or processing blocks may be omitted in some implementations. The methods and processes described herein are not limited to any particular order, and the blocks or states associated with them may be executed in other suitable orders, or in parallel, or in some other manner. Blocks or states may be added to or removed from the examples disclosed herein. The performance of certain operations or processes may be distributed across computer systems or computer processors, residing not only within a single machine but also deployed across multiple machines. It should also be noted that the terms “optimized,” “best,” etc., as used herein can be used to indicate performance that is as efficient or perfect as possible. However, as will be recognized by one of ordinary skill in the art upon reading this document, perfection cannot always be achieved. Therefore, these terms may also include performance or implementation that is as good, efficient, or practical as possible under given conditions, or performance or implementation that is superior to performance that could be achieved with other settings or parameters.

[0066] As used herein, the term “or” can be interpreted in an inclusive or exclusive sense. Furthermore, descriptions of resources, operations, or structures in the singular form should not be construed as excluding the plural form. Unless otherwise expressly stated, conditional language such as “can,” “able,” “may,” or “may” is generally intended to convey that some examples include certain features, elements, and / or steps, while other examples do not, unless otherwise expressly stated or understood in the context in which it is used.

[0067] Unless otherwise expressly stated, the terms and phrases used in this document, and their variations thereof, should be interpreted as open-ended rather than restrictive. Adjectives such as “regular,” “traditional,” “normal,” “standard,” “known,” and terms with similar meanings should not be construed as limiting the described terms to a given time period or terms available up to a given time, but should be understood to include any regular, traditional, normal, or standard techniques available or known at any time now or in the future. In some cases, the presence of broadening words and phrases such as “one or more,” “at least,” “but not limited to,” or other similar phrases should not be construed as implying an intention or need for a narrower scope where such broadening phrases might not have been present.

Claims

1. A method comprising: Based on the signaling exchanged between component pairs deployed in the network, a matrix representing the relationship between the component pairs is generated; By applying a first clustering algorithm to the matrix, one or more element clusters are initially identified; The second clustering algorithm is recursively applied to each of the one or more element clusters initially identified and any subsequently identified element clusters, until only one or more isolated element clusters remain from the recursive application of the second clustering algorithm; as well as Using multidimensional scaling, the location of the element deployed in the network is determined based on the clustering of the one or more isolated elements.

2. The method of claim 1, wherein the generation of the matrix comprises: A proximity matrix is ​​generated, the indices of which reflect the relationship based on signaling.

3. The method of claim 1, wherein the signaling-based relationship reflects the relative distance between the element pairs.

4. The method according to claim 3, further comprising: The proximity matrix is ​​transformed into an adjacency matrix by distinguishing between indices with relative distances and those without relative distances.

5. The method of claim 4, wherein the distinction comprises: Replace indices with relative distances with the value 1, and replace indices without relative distances with the value 0.

6. The method according to claim 1, wherein the first clustering algorithm includes a disjoint set separation algorithm, and the disjoint set separation algorithm strictly limits the clustering to include weakly linked elements.

7. The method of claim 6, wherein the second clustering algorithm comprises a spectral clustering algorithm, the spectral clustering algorithm being capable of further subdividing clusters that include weakly linked elements.

8. The method of claim 1, wherein the clustering of one or more isolated elements is represented as a sub-adjacency matrix.

9. The method according to claim 8, further comprising: The sub-adjacency matrix is ​​converted back to a proximity matrix form, which includes the relative distances between the elements.

10. The method of claim 1, wherein multidimensional scaling includes machine learning techniques for converting the relative distance into a configuration of points mapped to Cartesian space.

11. The method of claim 1, wherein the element includes an access point.

12. A system comprising: processor; as well as The memory includes instructions that, when executed, cause the processor to: Send instructions to the deployed access points (APs) to exchange signals used to determine the relative distance between the APs; Generate a first matrix representation of the relative distances between the APs; The first matrix is ​​converted into a second matrix binary representation of the relative distance between the APs; Identify one or more AP clusters in the deployment; The determination of the one or more AP clusters is refined by iteratively and recursively applying clustering algorithms to subdivide the clusters of the one or more clusters that include weakly linked APs into one or more isolated AP clusters. as well as The location of the AP is determined based on the relative distance reflected in the one or more isolated AP clusters.

13. The system of claim 12, wherein the instructions that cause the processor to determine the relative distance between the APs include, when executed, instructions that also cause the processor to perform the following operations: calculate the round-trip time (RTT) of the exchanged signals, the calculated RTT providing a basis for estimating the relative distance between the APs.

14. The system of claim 12, wherein the instructions that cause the processor to generate the representation of the first matrix include, when executed, instructions that also cause the processor to perform the following operations: inputting the relative distance between the APs in a proximity matrix, wherein the index of the proximity matrix is...

15. The system of claim 14, wherein the second matrix representation comprises an adjacency matrix derived by replacing non-zero relative distance values ​​in the neighbor matrix with 1 and by replacing zero relative distance values ​​in the neighbor matrix with 0.

16. The system of claim 15, wherein the instructions for causing the processor to determine the one or more AP clusters include, when executed, instructions for causing the processor to perform the following operation: iterating through the indices of the adjacency matrix using a disjoint set separation algorithm to identify the one or more AP clusters.

17. The system according to claim 16, wherein the clustering algorithm includes the Leuven algorithm.

18. One or more non-transitory computer-readable storage media having stored thereon executable computer program instructions, which, when executed by one or more processors, cause the one or more processors to perform operations, the operations including: Determine the relative distances between network elements; The relative distance is represented in the proximity matrix; Convert the proximity matrix into an adjacency matrix; The first set of network element clusters is determined from the adjacency matrix by applying a disjoint set separation algorithm. A second set of network element clusters is determined by applying a spectral clustering algorithm to a first set of network element clusters, the second set of network element clusters comprising only isolated network element clusters; and Based on the clustering of the isolated network elements, the location of the network elements is determined.

19. The one or more non-transitory computer-readable storage media of claim 18, wherein determining the location of the network element comprises: The adjacency matrix representing the cluster of isolated network elements is reduced to the proximity matrix representing the cluster of isolated network elements.

20. The one or more non-transitory computer-readable storage media of claim 19, wherein determining the location of the network element comprises: The relative distances reflected in the proximity matrix representing the clustering of the isolated network elements are converted into a configuration of points mapped to Cartesian space.

Citation Information

Patent Citations

  • Automatic location of access points in a network

    US11229000B2

  • Automatic location of access points in a network

    US11917575B2