throbber
Case 2:21-cv-00072-JRG Document 25-3 Filed 04/23/21 Page 1 of 15 PageID #: 368
`Case 2:21-cv-00072-JRG Document 25-3 Filed 04/23/21 Page 1 of 15 PageID #: 368
`
`
`
`
`
`
`
`EXHIBIT 2
`
`EXHIBIT 2
`
`
`

`

`US008618984B2
`
`(12) United States Patent
`Lin et al.
`
`(10) Patent No.:
`(45) Date of Patent:
`
`US 8,618,984 B2
`Dec. 31, 2013
`
`(54) SELECTING BEACONS FOR LOCATION
`NFERENCE
`
`(75) Inventors: Jyh-Han Lin, Mercer Island, WA (US);
`Lon-Chan Chu, Redmond, WA (US);
`Aravind Krishnamachari Seshadri,
`Redmond, WA (US); Prasanta Ghosal
`s
`...
`s
`RNR S.Schifteels Anup
`s
`s
`s
`Kashinath Pachlag, Bothell, WA (US)
`
`(73) Assignee: Msion Corporation, Redmond, WA
`US
`
`(*) Notice:
`
`Subject to any disclaimer, the term of this
`patent is extended or adjusted under 35
`U.S.C. 154(b) by 323 days.
`
`7/2008 Houri
`7,397,424 B2
`1/2009 Morgan et al. ............. 455,456.5
`7,474,897 B2 *
`8, 2009 Taschereau
`7,577,244 B2
`7,750,848 B2 * 7/2010 Normarket al. ......... 342,357.25
`2004/0203904 A1* 10, 2004 Gwon et al. ............... 455,456.1
`2007/0001867 A1* 1/2007 Rowe et al. .............. 340,825.49
`2007/0210961 A1
`9/2007 Romijn
`2008/017.6583 A1* 7/2008 Brachet et al. ............. 455,456.3
`2008/0238767 A1 10, 2008 Zhou
`2008/0252511 A1 10, 2008 Jacotot
`2008/0280624 A1 1 1/2008 Wrappe
`2010, 0013704 A1
`1/2010 Coutel et al. ............. 342,357.04
`
`OTHER PUBLICATIONS
`Olson et al., “Robust Range-Only Beacon Localization.” IEEE AUV,
`2004.
`
`Continued
`(Continued)
`
`(21) Appl. No.: 12/727,901
`(22) Filed:
`Mar 19, 2010
`(65)
`Prior Publication Data
`
`Sep. 22, 2011
`
`(2010.01)
`
`US 2011 FO227791 A1
`(51) Int. Cl.
`GOIS 5/02
`(52) U.S. Cl
`CPC
`
`G0IS 5/0252 (2013.01); G0IS5/0278
`• us
`(2013.01)
`
`- - - - - - - - - - - - -
`
`58 F. fo - - - - - ificati- - - - - -s - - - - - - - h- - - - - - 342/451: 342/464
`(58) is:
`assification s386. 450, 451, 463,464
`S
`licati - - - - - file? - - - - -
`1
`s
`hhi s
`s
`ee application file for complete search history.
`References Cited
`
`(56)
`
`U.S. PATENT DOCUMENTS
`
`Primary Examiner — Gregory C Issing
`
`ABSTRACT
`
`57
`(57)
`Location inference using selected beacons. Data is received
`representing a set of beacons observed by a computing
`device. The beacons are located withina first geographic area.
`geograp
`A Subset (e.g., a clique) of the beacons is selected based on a
`coverage area of each of the beacons, where each of the
`beacons in the selected subset has a coverage area that over
`laps with the coverage area of each of the other beacons in the
`selected Subset. Using known or estimated positions of the
`beacons, a second geographic area is defined based on the
`selected subset of beacons and the beacon reference data and
`the coverage areas associated therewith. The second geo
`graphic area, Smaller than the first geographic area, represents
`an aroproximate location of the computing device. In some
`pp
`pulung
`embodiments, the computing device is calculated to be within
`the second geographic area with 95% probability.
`
`5,936,572 A *
`6,776,334 B1
`
`8, 1999 Loomis et al. ........... 342.357.29
`8/2004 Garg
`
`20 Claims, 5 Drawing Sheets
`
`Case 2:21-cv-00072-JRG Document 25-3 Filed 04/23/21 Page 2 of 15 PageID #: 369
`
`ISEE C1C3, W1
`AND W3. FIND
`MYPOSITION?
`
`INFER USERS
`POSITION
`RATIVETO
`C1 C3, W1 AND
`W3
`
`
`
`POSITIONING
`SYSTEM
`
`

`

`US 8,618,984 B2
`Page 2
`
`(56)
`
`References Cited
`
`OTHER PUBLICATIONS
`
`Meneses, et al., “Enhancing the Location-Context through Inference
`over Positioning Data'. Retrieved at{<http://ubicomp.algoritimi.
`uminho.pt/csmu? proc/meneses-135.pdf>>, Jun. 2006, pp. 10.
`Sinha, et al., “A Beacon Selection Algorithm for Bounded Error
`Location Estimation in Ad Hoc Networks'. Retrieved at <<http://
`ieeexplore.ieee.org/stamp? stamp.jsp?arnumber 4127348&isnum
`ber=4127326>, Mar. 5-7, 2007, pp. 6.
`
`Lieckfeldt, et al. An Algorithm for Distributed Beacon Selection,
`Retrieved at<http://ieeexplore.ieee.org/stamp? stamp.jsp?arnum
`ber=4517414&isnumber=45.17341>>, Sixth Annual IEEE Interna
`tional Conference on Pervasive Computing and Communications,
`Mar. 17-21, 2008, pp. 318-323.
`Bahl, et al., “RADAR: An In-Building RF-based User Location and
`Tracking System”. Retrieved at{<http://www.cs.indiana.edu/~con
`nelly/Docs/radar.pdf>>, 2000, pp. 10.
`
`* cited by examiner
`
`Case 2:21-cv-00072-JRG Document 25-3 Filed 04/23/21 Page 3 of 15 PageID #: 370
`
`

`

`U.S. Patent
`
`Dec. 31, 2013
`
`Sheet 1 of 5
`
`US 8,618,984 B2
`
`
`
`5) NINOILISOd
`
`
`
`VNE LSÅS
`
`CINV INA’S O’IOCINI—. "9MA CIN\/
`
`
`
`
`
`
`
`9 MW?NOI LISOd XIN
`
`Case 2:21-cv-00072-JRG Document 25-3 Filed 04/23/21 Page 4 of 15 PageID #: 371
`
`I "5ÐI
`
`ZO
`
`

`

`U.S. Patent
`
`Dec. 31, 2013
`
`Sheet 2 of 5
`
`US 8,618,984 B2
`
`
`
`Case 2:21-cv-00072-JRG Document 25-3 Filed 04/23/21 Page 5 of 15 PageID #: 372
`
`Z '5ÐI
`
`

`

`Case 2:21-cv-00072-JRG Document 25-3 Filed 04/23/21 Page 6 of 15 PageID #: 37337
`6e
`aP12/B
`652t
`R.J.27
`C
`d
`g
`
`
`
` mm0.eVtHa2P20ws.aU
`
`n3emm2w1,O3DceGD
`
`baHmS
`
`5m.m03
`
`,mm
`
`32#.BmMm9,awP65l}18
`
`
`
`
`
`<._.<n_mozmmmu—mmzoo/Em
`
`TRmUH>m_n_
`
`
`
`memmmuofi63%03:5on
`
`
`
`<m_~_<>m_O_>_m__>_
`
`momgmm.OHn—
`
`
`
`
`
`2%._.m_mmm__n__._.2m_n__zoo<mm
`
`
`
`._.2m_zOn__>_Oomo<n_w_m_._.z_
`
`
`
`._.Zm_zon__>_oomm._..__n_
`
`
`
`._.2m_zon__>_ooMDOZO
`
`
`
`._.2m_zOn__>_OomozmmmEZ
`
`
`
`<mm<moém>8EEmEzEfiezoo/mm.
`
`E5.
`
`2%magma
`
`
`
`
`
`

`

`U.S. Patent
`
`Dec. 31, 2013
`
`Sheet 4 of 5
`
`US 8,618,984 B2
`
`FIG. 4
`
`
`
`
`
`RECEIVE BEACONNO
`FINGERPRINT FROM
`MOBILEDEVICE
`
`404
`
`406
`
`4.08
`
`410
`
`REMOVE OUTLYING BEACONS
`
`SELECT CLIQUE OF BEACONS
`
`INFER GEOGRAPHICAREA OF
`MOBILE DEVICE BASED ON
`SELECTED BEACONS
`
`PROVIDE THE INFERRED
`GEOGRAPHICAREA TO THE
`MOBILE DEVICE AS THE
`APPROXIMATE LOCATION OF THE
`MOBILE DEVICE
`
`Case 2:21-cv-00072-JRG Document 25-3 Filed 04/23/21 Page 7 of 15 PageID #: 374
`
`

`

`U.S. Patent
`
`Dec. 31, 2013
`
`Sheet 5 of 5
`
`US 8,618,984 B2
`
`FIG.5
`
`
`
`Case 2:21-cv-00072-JRG Document 25-3 Filed 04/23/21 Page 8 of 15 PageID #: 375
`
`

`

`1.
`SELECTING BEACONS FOR LOCATION
`NFERENCE
`
`US 8,618,984 B2
`
`BACKGROUND
`
`Some existing positioning systems such as global position
`ing systems (GPS) determine the location of devices using
`satellites. Other systems such as collaborative positioning
`systems determine the location of the devices based on
`crowd-sourced data. The crowd-sourced data typically
`includes a list of beacons observed at a particular location
`along with identification of the particular location as obtained
`by mobile devices such as laptops, netbooks, and cellular
`telephones. The positions of the beacons are then used to
`estimate the location of devices (e.g., those lacking GPS
`capability or coverage) that request position information
`based on an observed list of beacons. The complexity and
`accuracy of the estimations depend in part on which beacons
`are selected for the estimations.
`
`10
`
`15
`
`SUMMARY
`
`Embodiments of the disclosure enable the selection of
`beacons from which to infer a location of a computing device.
`A computing device observes a set of beacons within a first
`geographic area. Data representing the set of beacons is
`received from the computing device. A subset of the beacons
`is selected based on a coverage area of each of the beacons
`such that each of the beacons in the selected subset has a
`coverage area that overlaps with the coverage area of each of
`the other beacons in the selected Subset. A second geographic
`area, Smaller than the first geographic area, is defined based
`on the selected Subset of beacons, beacon reference data, and
`the coverage areas to estimate the location of the computing
`device.
`This Summary is provided to introduce a selection of con
`cepts in a simplified form that are further described below in
`the Detailed Description. This Summary is not intended to
`identify key features or essential features of the claimed sub
`ject matter, nor is it intended to be used as an aid in determin
`ing the scope of the claimed Subject matter.
`
`25
`
`30
`
`35
`
`40
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`FIG. 1 is an exemplary block diagram illustrating a posi
`tioning system inferring a location of a mobile device based
`on a beacon fingerprint provided by the mobile device.
`FIG.2 is an exemplary block diagram illustrating receipt of
`a beacon fingerprint from a mobile computing device and
`calculation of a location for the mobile computing device
`based on the beacon fingerprint.
`FIG. 3 is an exemplary block diagram illustrating a com
`puting device selecting beacons from which to infera location
`of another device.
`FIG. 4 is an exemplary flow chart illustrating location
`inference based on selected beacons.
`FIG. 5 is an exemplary block diagram illustrating a beacon
`fingerprint having a maximally complete clique.
`Corresponding reference characters indicate correspond
`ing parts throughout the drawings.
`
`45
`
`50
`
`55
`
`60
`
`DETAILED DESCRIPTION
`
`Referring to the figures, embodiments of the disclosure
`enable selection of beacons from which to infer a location of
`a computing device. The beacons are selected based on their
`relationship to neighboring beacons. In some embodiments,
`
`65
`
`Case 2:21-cv-00072-JRG Document 25-3 Filed 04/23/21 Page 9 of 15 PageID #: 376
`
`2
`the computing device detects a set of beacons b1, b, . . . .
`b}. Knowing the estimated positions and coverage areas of
`each of the beacons, aspects of the disclosure determine the
`Smallest circle Such that the location of the computing device
`is within the circle with 95% probability. The calculated
`location of the computing device is provided to the computing
`device.
`Referring again to FIG. 1, an exemplary block diagram
`illustrates the positioning system 106 inferring a location of a
`mobile device 102 based on a beacon fingerprint provided by
`the mobile device 102. The mobile device 102 (e.g., a mobile
`telephone) detects or observes one or more beacons including
`cellular towers (or sector if directional antennas are
`employed) and wireless fidelity (Wi-Fi) access points or other
`wireless access points (WAPs).
`The beacons detected by the mobile device 102 at a given
`point in time represent the beacon fingerprint. The beacon
`fingerprint may also include other attributes of the detection
`Such as signal strength. While aspects of the disclosure may
`be described with reference to beacons implementing proto
`cols such as the 802.11 family of protocols, embodiments of
`the disclosure are operable with any beacon for wireless
`communication. In the example of FIG. 1, the mobile device
`102 detects the presence of beacons C1, C3, W1, and W3.
`The mobile device 102 provides the detected beacon fin
`gerprint to the positioning system 106 via a network 104. The
`network 104 includes a wireless cellular network in some
`embodiments, but other types of networks such as Wi-Fi and
`those providing Internet access are contemplated in other
`embodiments.
`The positioning system 106 stores, or has access to, data
`describing the approximate location of one or more of the
`beacons. The data is referred to as beacon reference data 314
`and describes, for example, the longitude, latitude, and/or
`altitude of the beacons. In some embodiments, the beacon
`reference data 314 is stored in a beacon store 212. Using the
`approximate location of at least one of the beacons in the
`detected beacon fingerprint, the positioning system 106 oper
`ates to infer the location of the mobile device 102 relative to
`the detected beacon fingerprint, as described herein. The
`inferred location is provided to the mobile device 102.
`Referring next to FIG. 2, an exemplary block diagram
`illustrates receipt of a beacon fingerprint from a mobile com
`puting device and calculation of a location for the mobile
`computing device based on the beacon fingerprint. The sys
`tem illustrated in FIG. 2 represents an example of a location
`inference system or positioning system in accordance with
`aspects of the disclosure. However, other systems, elements,
`and configurations are contemplated and within the scope of
`embodiments of the disclosure.
`The inference engine 214 receives a beacon fingerprint
`from devices such as the mobile device 204. The inference
`engine 214 accesses the beacon reference data 314 stored in
`the beacon store and predicts the location of observation
`associated with the unresolved beacon fingerprint. The pre
`dicted location is provided to the mobile device 204. The
`operation of the inference engine 214 is next described with
`reference to FIG. 3.
`Referring next to FIG. 3, exemplary block diagram illus
`trates a computing device 304 selecting beacons from a bea
`con fingerprint and calculating a location of another device
`based on the selected beacons. In some embodiments, the
`computing device 304 is associated with the positioning sys
`tem 106. For example, the computing device 304 represents
`the inference engine 214.
`The computing device 304 receives data from one or more
`of the devices 302, such as device #1 through device iiM, via
`
`

`

`3
`a network 306. The devices 302 include, for example, mobile
`computing devices such as mobile device 102. However, the
`devices 302 may include any device executing instructions
`(e.g., application programs) to provide data. The data
`includes beacon fingerprints.
`In some embodiments, the devices 302 include portable
`computing devices such as laptops, netbooks, gaming
`devices, and/or portable media players. Further, each of the
`devices 302 may represent a group of processing units or
`other computing devices.
`Exemplary networks 306 include wired and/or wireless
`networks, and may represent local area networks or global
`networks such as the Internet. In embodiments in which the
`network 306 includes wireless networks, the computing
`device 304 and the devices 302 may be enabled with technol
`ogy such as BLUETOOTH brand wireless communication
`services (secured or unsecured), radio frequency identifica
`tion (RFID), Wi-Fi such as peer-to-peer Wi-Fi, ZIGBEE
`brand wireless communication services, near field communi
`cation (NFC), and other technologies that enable short-range
`or long-range wireless communication.
`The computing device 304 has at least one processor 308
`and one or more computer-readable media Such as a memory
`area 310. The processor 308 includes any quantity of process
`ing units, and is programmed to execute computer-executable
`instructions for implementing aspects of the disclosure. The
`instructions may be performed by the processor 308 or by
`multiple processors executing within the computing device
`304, or performed by a processor external to the computing
`device 304 (e.g., by a cloud service). In some embodiments,
`the processor 308 is programmed to execute instructions such
`as those illustrated in the figures (e.g., FIG. 4).
`The memory area 310 includes any quantity of media asso
`ciated with or accessible to the computing device 304. The
`memory area 310 may be internal to the computing device
`304 (as shown in FIG. 3), external to the computing device
`304 (not shown), or both (not shown).
`The memory area 310 stores beacon identifier sets 312,
`such as beacon identifier set #1 through beacon identifier set
`iN. Each set 312 of beacon identifiers corresponds to a bea
`con fingerprint observed by one of the devices 302. Each of
`40
`the beacon identifiers within each of the sets 312 corresponds
`to one of the observed beacons. For example, each Wi-Fi
`beacon has a Basic Service Set Identifier (BSSID). In another
`example, each Global Service for Mobile communications
`(GSM) cellular tower includes a mobile country code (MCC),
`mobile network code (MNC), location area code (LAC), and
`a cell identifier. Universal Mobile Telecommunication Sys
`tem (UMTS) towers have beacon identifiers composed of
`MCC, MNC, and a cell identifier. Carrier Division Multiple
`Access (CDMA) towers have beacon identifiers composed of
`a system identifier, network identifier, and a base-station
`50
`identifier.
`The memory area 310 further stores beacon reference data
`314. The beacon reference data 314 for one of the beacons
`describes a position of the beacons. In some embodiments
`such as shown in FIG. 2, the beacon reference data 314 is
`stored on computer-readable media separate or remote from
`the computing device 304 (e.g., stored in the beacon store
`212). For example, the beacon reference data 314 may be
`stored by a cloud computing service, and the computing
`device 304 accesses the beacon reference data 314 via a web
`service.
`The memory area 310 further stores, or has access to,
`coverage area data 315. The coverage area data 315 includes
`coverage areas associated with the beacons represented by the
`beacon identifier set 312. Each of the beacons has a particular
`coverage area associated therewith. The coverage area may
`correspond to, for example, a circle or other shape. In some
`embodiments, the coverage area data 315 corresponds to
`
`30
`
`Case 2:21-cv-00072-JRG Document 25-3 Filed 04/23/21 Page 10 of 15 PageID #: 377
`
`45
`
`55
`
`60
`
`65
`
`US 8,618,984 B2
`
`10
`
`15
`
`25
`
`35
`
`4
`signal strength. Further, in Some embodiments, the coverage
`area data 315 may be part of the beacon reference data 314.
`The coverage area may be described by, for example, a radius
`or range of the beacons.
`The memory area 310 further stores one or more computer
`executable components for implementing aspects of the dis
`closure. Exemplary components include an interface compo
`nent 316, filter component 318, clique component 320, and
`inference component 322. Operation of the components is
`discussed below with reference to FIG. 4.
`At least a portion of the functionality of the various ele
`ments in FIG.3 may be performed by other elements in FIG.
`3, or an entity (e.g., processor, web service, server, applica
`tion program, computing device, etc.) not shown in FIG. 3.
`Referring next to FIG. 4, an exemplary flow chart illus
`trates location inference based on beacons selected from a
`beacon fingerprint. The beacon fingerprint represents a set of
`beacons in a geographic area (e.g., a first geographic area) as
`observed by a device such as device 302 at a particular instant
`in time while the device 302 is at a particular geographic
`location (e.g., the point of observation). Upon receipt of the
`beacon fingerprint at 402 from device 302, a computing
`device Such as computing device 304 analyzes the beacon
`fingerprint. For example, the computing device 304 may
`receive a request to calculate the point of observation, or
`location, of the beacon fingerprint. The computing device 304
`may also receive, or already have access to, beacon reference
`data 314 and coverage area data 315 associated with the
`beacons in the beacon fingerprint.
`At 404, one or more outlying beacons may be removed
`from the beacon fingerprint (e.g., from the beacon identifier
`set 312). The outlying beacons represent the beacons in the
`beacon fingerprint that are on the edge, boundary, or outskirts
`of the geographic area (e.g., the first geographic area) covered
`by the beacon fingerprint. The outlying beacons also repre
`sent the beacons that have moved, or are out of place. The
`outlying beacons are identified based on the beacon reference
`data 314 associated with the beacons. Alternatively, the bea
`cons near the center of the geographic area are selected for
`further processing (thus excluding the outlying beacons).
`At 406, a clique of beacons is selected from the beacons
`remaining after the operation at 404. The clique represents a
`subset of the beacons where each of the beacons in the subset
`has a coverage area that overlaps with the coverage area of
`each of the other beacons in the subset. In some embodiments,
`the Subset of beacons is modeled or represented as an undi
`rected graph with the beacons as nodes and where the beacons
`with overlapping coverage areas are connected by an edge
`between the respective nodes. In such embodiments, the
`clique is described as the subset of beacons where any two
`beacons in the Subset are connected by an edge. Some
`embodiments determine the maximally complete clique of
`beacons. Alternatively, some embodiments may calculate the
`maximum complete clique of beacons. Determining the
`maximally complete clique is often less computationally
`intensive than determining the maximum complete clique.
`Further, adding another beacon to a maximally complete
`clique may not make the intersected area Smaller to improve
`the accuracy of the location estimation. If there is more than
`one maximally complete clique, aspects of the disclosure
`select the clique with the most beacons to attempt to obtain a
`Smaller intersected area.
`At 408, a second geographic area is inferred or defined
`based on the clique of beacons, along with the beacon refer
`ence data 314 and coverage area associated with the clique of
`beacons. For example, a circle may be inferred. The second
`geographic area represents an area in which the computing
`device that provided the beacon fingerprint is located (e.g.,
`the point of observation). By reducing the quantity of beacons
`
`

`

`US 8,618,984 B2
`
`5
`from which to infer the second geographic area, the second
`geographic area as defined by the clique is smaller than the
`first geographic area.
`At 410, the second geographic area is provided or identi
`fied to the computing device as an approximate location of the
`computing device. For example, the boundaries of the second
`geographic area are provided to the computing device. In
`another example, a center of the second geographic area is
`determined and provided to the computing device as the
`approximate location of the point of observation of the com
`puting device.
`10
`In an example in which there are at least three beacons from
`which the second geographic area is determined, the second
`geographic area is determined by triangulation.
`In some embodiments, the operations illustrated in FIG. 4
`are performed by the computing device 304. In other embodi
`ments, one or more of the operations illustrated in FIG. 4 are
`performed by another computing device (e.g., as a web ser
`vice). In still other embodiments such as peer-to-peer
`embodiments, one or more of the operations illustrated in
`FIG. 4 are performed by the devices 302.
`Further, the operations illustrated in FIG. 4 may be imple
`mented as software instructions encoded on a computer-read
`able medium, in hardware programmed or designed to per
`form the operations, or both. As an example, the operations in
`FIG. 4 may be implemented as computer-executable compo
`nents or other software such as in the components illustrated
`25
`in FIG. 3. In such an example, the interface component 316,
`when executed by the processor 308, causes the processor
`308 to receive data representing a set of beacons observed by
`a computing device. The beacons are located within a first
`geographic area. The filter component 318, when executed by
`the processor, causes the processor to select no more than a
`first predefined quantity of the beacons based on the coverage
`areas of the beacons. For example, the filter component 318
`may select seven of the beacons having the smallest coverage
`areas. In some embodiments, a small coverage area for one of
`35
`the beacons represents a high degree of accuracy or confi
`dence in the beacon reference data 314 corresponding to the
`beacon.
`
`15
`
`30
`
`6
`The clique component 320, when executed by the proces
`Sor, causes the processor to identify no more than a second
`predefined quantity of the selected beacons each having over
`lapping coverage areas (e.g., where each of the identified
`beacons has a coverage area that overlaps with the coverage
`areas of each of the other identified beacons). For example,
`the clique component 320 may select three of the beacons
`with overlapping coverage areas to enable triangulation. To
`reduce the computation complexity, some embodiments stop
`searching for additional or larger cliques once a clique of
`three beacons has been found.
`The inference component 322, when executed by the pro
`cessor, causes the processor to define the second geographic
`area based on the beaconsidentified by the clique component
`320, and based on the beacon reference data 314 and coverage
`area data 315.
`Referring next to FIG. 5, an exemplary block diagram
`illustrates a beacon fingerprint having a maximally complete
`set of beacons. In the example of FIG. 5, a device such as
`device 302 has observed beacons b,b,b,b,bs, be, and b,
`that constitute the beacon fingerprint. The circles around each
`of the beacons represent the coverage areas associated with
`the beacons.
`There are two cliques in FIG. 5, one is maximum and the
`other is maximal. The maximum clique includes beacons b,
`b2 b, and be, while the maximal clique includes beacons b,
`b. and b.
`An example for selecting beacons for determining a loca
`tion of the device 302 is next described with reference to FIG.
`5.
`An exemplary algorithm, flow, or pseudo code for imple
`menting aspects of the disclosure as computer-executable
`instructions is next described. In the example algorithm
`below, the input is a beacon fingerprint {b, b, ..., b}. The
`output is a circle C centered at c with radius R. An exemplary
`pre-condition of the algorithm is that for each i, if b, is
`detected at y, then y is within C, with 95% probability. As a
`result, the true position x of the device is in C with 95%
`probability.
`
`1.
`
`2.
`
`Case 2:21-cv-00072-JRG Document 25-3 Filed 04/23/21 Page 11 of 15 PageID #: 378
`
`1.3.
`
`2.2.
`2.3.
`2.4.
`
`2.4.2.
`
`Eliminate beacon outliers, based on the typical coverage area of
`beacon
`, by
`Find the median m of{b, b, ...
`1.1.
`Filter by tile membership
`1.2.
`1.2.1. Remove beacons not in the tile for minor in its neighboring
`tiles, if applicable
`Filter by distance to the median
`1.3.1. Remove b, such that Dist(b, m) > max beacon distance
`(e.g. 500 meters for Wi-Fi beacon, 20 kilometers for cellular
`beacon
`Select beacons for inference, using 95% confidence circles
`{b1, b2,..., b} are the beacons remaining from operation 1 above
`2.1.
`sorted by radius in non-decreasing order (r, s , for all i <j)
`If K = 0 return “Location not found' (beacons are too dispersed)
`If K = 1, set C to C1 (e.g., c = b, R = r)
`If K is greater than 1 (e.g., at least two beacons)
`Model the beacon set as an undirected graph, where each
`2.4.1.
`node is a beacon and two nodes are connected if their circles
`intersect.
`Find all maximally complete components or cliques (e.g.,
`maximally complete subgraphs in which all pairs of nodes are
`directly connected). The circles in a complete component
`intersect on at least one point.
`2.4.2.1. Initialize G = {G = G(b)={{b}}; S = {b-..... bk}
`2.4.2.2. For each b, in S, check component G, in G, from lower
`indexed to higher indexed, if{b}UG, is still a complete
`component
`2.4.2.2.1.
`
`2.4.2.2.2.
`
`If so, add b, to first G,({b}UG, is a complete
`component
`If no component G, exists in G such that
`{C}UG, is a complete component, then start a new
`component G.-G(b)={b} and append it to G
`
`

`

`US 8,618,984 B2
`
`7
`
`-continued
`
`2.4-3. If there is more than one complete component in G, select
`the component with the maximum number of nodes; select the
`Smallest indexed component if there is a tie in the number of
`nodes
`Infer the circle, using the complete component selected in operation 1
`above
`3.1.
`
`3.
`
`3.2.
`3.3.
`
`3.4.
`
`Kb1, b2,..., b} are the L beacons in the selected complete
`component from operation 1 above and assume the beacons are
`sorted by radius in non-decreasing order (r, s , for all i <)
`If L is 1 (e.g., only one beacon), set C to C1 (e.g., c = b, R = r)
`If L is 2 (e.g., only two beacons), set C = Jointcircle(C1, C2)
`3.3.1. If Dist(b,b)s Sqrt{r^-r) set C = C,
`3.3.2. else
`Find the two intersetion points P and P
`3.3.2.1.
`Set c to the intersetion point of Line(P1, P2) and
`3.3.2.2.
`Line(b1, b)
`3.3.2.3. Set R to Max(Dist(c., P1), 50 meters)
`If Le 3 (e.g., there are more than two beacons)
`3.4.1. Select the first 3 beacons with the smallest radius or
`strongest signal strength
`3.4.1.1. Check C1, C2, C3 for pair-wise inclusion; if found,
`remove the containing circle and go to operation 3.3 with
`the remaining two circles; otherwise continue
`3.4.1.2. Check if (Ci?nC, CCs) or (C?hCCC) or (C-?hCC
`C), if so, remove the containing circle and go to 3.3 with
`the remaining two circles; else continue
`3.4.1.3. If(CCCUCs), set C to C; otherwise continue
`3.4.1-4. Find the three intersection points Pi, P., Ps
`3.4.1.5. Set c to the center of circumcircle (e.g., c is
`equidistant to P1, P2, P3)
`3.4.1.6. Set R to Max(Dist(c., P1), 50 meters)
`
`In the above example, the minimum radius is set to 50
`meters to reflect a typical radius since it is possible that the
`calculated R value could be less than 50.
`
`Additional Examples
`
`Another exemplary algorithm, flow, or pseudo code for
`implementing aspects of the disclosure as computer-execut
`able instructions is next described. In this example, the quan
`tity of beacons analyzed is limited to seven to reflect one
`
`30 serving cell and six neighboring cells. Further, the maximum
`clique size is limited to three to enable triangulation yet avoid
`unnecessary computation. In the example algorithm below,
`the input is a beacon fingerprint {b, b, ..., by}. The output
`is a circle C centered at c with radius R. An exemplary
`pre-condition of the algorithm is that for each i, if b, is
`detected at y, then y is within C, with 95% probability. As a
`result, the true position X of the device is in C with 95%
`probability.
`
`35
`
`1.
`
`Case 2:21-cv-00072-JRG Document 25-3 Filed 04/23/21 Page 12 of 15 PageID #: 379
`
`1.3.
`
`Eliminate beacon outliers, based on the typical coverage area of
`beacon
`1.1.
`Find the median m of{b1, b2,..., by}
`1.2.
`Filter by tile membership
`1.2.1. Remove beacons not in the tile form nor in its neighboring
`tiles, if applicable
`Filter by distance to the median
`1.3.1. Remove b, such that Dist(b, m) > max beacon distance
`(e.g. 500 meters for Wi-Fi beacon, 20 kilometers for cellular
`beacon)
`Select beacons for inference
`{b1, b2,...,b) are the beacons remaining from operation 1 sorted
`2.1.
`by radius in non-decreasing order (r, sr, for all i <)
`2.1.1. If K > 7, set K = 7 (e.g., truncate to the first 7 beacons)
`If K = 0 return “Location not found (e.g., beacons are too
`dispersed)
`If K = 1, set C to C1 (e.g., c = b, Rc = r)
`If 2s. Ks 7
`2.4.1. Model the beacon set as an undirected graph, where each
`node is a beacon and two nodes are connected if their circles
`intersect.
`2.4.2. For all 3-tuples {b,b,b}, i < j<k
`2.4.2.1. If{b,b,b} is a complete subgraph (or 3-clique), go to
`operation 3 with {b,b,b); otherwise continue
`2.4.3. If no 3-clique found, for all pair {bib,}, i <
`2.4.3.1. If{b,b,} is a complete subgraph (or 2-clique), go to
`operation 3 with {b,b,}; otherwise continue
`2.4.4. If no 2-clique or 3-clique found, go to operation 3 with {b}
`
`2.2.
`
`23.
`2.4.
`
`

`

`US 8,618,984 B2
`
`10
`
`9
`-continued
`
`3.
`
`3.4.
`
`Infer the circle, using the beacons selected from operation 2 (at most 3
`beacons selected)
`3.1.
`Kb1, ..., b} are the L beacons selected and sorted by radius in non
`decreasing order (r, s , for all i <j)
`3.2.
`If L = 1, set C to C (e.g., c = b, R = r)
`If L = 2, then C = JointCircle(CC)
`3.3.
`3.3.1. If Dist(b,b)s Sqrt{r^-r) set C = C,
`3.3.2. else
`3.3.2.1. Find the two intersection points P and P2.
`3.3.2.2. Set c to the intersection point of Line(P1, P2) and
`Line(b,b)
`3.3.2.3. Set R to Max(Dist(c., P1), 50 meters)
`If L = 3
`3.4.1.1. Check C1, C2, C3 for pair-wise inclusion; if found,
`remove the containing circle and go to operation 3.3 with
`the remaining two circles; otherwise continue
`3.4.1.2. Check if (C1 ?hCCC) or (C?hCCC) or (Ca?hCC
`C), if so, remove the containing circle and go to 3.3 with
`the remaining two circles; else continue
`3.4.1.3. Check if (CCCUCs), if so set C to C; otherwise
`continue
`3.4.14. Find the three intersection points P1, P2, Ps
`3.4.1.5. Set c to the center of circumcircle (equal-distance
`point to P1, P2, Ps)
`3.4.1.6. Set R to Max(Dist(c., P1), 50 meters)
`
`25
`
`35
`
`40
`
`In the above example, the minimum radius is set to 50
`meters to reflect a typical radius since it is possible that the
`calculated R value could be less than 50.
`In some embodiments, the operations illustrated in FIG. 4
`executed on a mobile device enabled with BLUETOOTH
`30
`brand communication technology. Application programs
`such as gaming application programs executing on the mo

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket