k-Vector range searching techniques - Calhoun: The NPS

Calhoun: The NPS Institutional Archive
DSpace Repository
Faculty and Researchers
Faculty and Researchers Collection
2014
k-Vector range searching techniques
Mortari, Daniele
Monterey, California. Naval Postgraduate School
http://hdl.handle.net/10945/41061
Downloaded from NPS Archive: Calhoun
! " #$ %$ & "
& ' (
! "# "! *
#
$%&%'
$&' ( ) %
" !
( ( %
( %
*
) * % #
#
# " "! #
# )
%#
*
+ , -%
.
/ 0 $&' ( 1# 2
3
4 !
%#
5
* ! " ) *
+
"+*)& +,* -./-
0 1 Æ
2
3 * 4 *
! , * .%#
$$#5. , ) 6#
0 7
Æ
7 8
* 0
1
9
1+:7 1
9+ -5-;5 6
1# / " 6 ) 74
/
, 8! 77 %# * # "
) "
%#
* " 9 " ) " !
! "
! % "
# * : " " # "! ;<! )*= <)
! * >! + <) # " " " 9 <! ( ? " # " " "! * *
%#
9
% # # " @ A % ) A % # A % #
A A A / A <) " B #
# ) / #
A
! A @ A / 7
" $ " ) ! A 7
A
! "! # ! / (
) * "
A @ A
A 7
@ A A /
#
" "
A
@ $ #
#
#
0.9
0.8
y
b
Sorted Database s=y(I)
0.7
0.6
y
a
0.5
0.4
0.3
1
0.2
2
0
3
2
4
2
3
5
6
7
3
5
K−vector Elements
$ , C/ %#
9
8
6
8
10
9
10
D
$ ( ! $ %#
" ) 9 *! ! # %#
# 7
.
.
2
3
5
?
7
& %# " #
" / $
# A
& # 1 ) ( A
%#
A
.
#
A 0 A ?
" @ / $ # ! # A
0
*
#
#
" ! "
" / # !
" (
A 7
" A .
" C* .%0
* /
#
" "! A 0 A 5
* A 0
A ? ) / #
# 27E ""! " @ #! )
/ " @ / "
/ ! A A B
/ " / ) ( ( A A # # 2
65535 = Number of data; 65535 = K−vector entries; Mean = 1.0032; h = 0
4000
3500
Frequency
3000
2500
2000
1500
1000
500
0
0
1
2
3
4
5
Number of Elements Outside Range
$ , B $ " 7
A " A " " / )
#
# ! " / "!
/
6
" "!
* * ) / %#
<)
<
= "%& 0
) #
# ! 322.2%
%#
$ " 7
777 # ) # " 77.
/ #
A 322.2
322.2
#
%
/ A 77772 %# # # # )
#! ! " " " ) "
# "! *
%# "! ( )
) )" " A # A A A. A0 A2 A3 A4 A5 A? A7 A
7
.
0
2
3
4
5
?
7
%
%
.
%
0
%
2
%
3
%
%
%
%
.
%
%
0
%
.
%
%
%
%
%
%
.
%
%
0
%
%
%
%
%
%
%
%
.
)" ,
' $ ) ! "
A @ @ A
A @ " # )
A 7
@
A @ A
A
@
3
/
C* @ %'
" " "! 4
@ @ )
# #
" >%%5% ? @ # @
A
? B # @
2
%# 7
"!
A @ @ @ A @ @ "! "
G A @ A @ ) / " / " A G A @ $ #! "
# A @ ) / " * ! ! @ A @ .
F 65535 = Number of data; 3642 = K−vector entries; Mean = 18.052; h = 17
500
450
400
350
Frequency
300
250
200
150
100
50
0
0
5
10
15
20
25
30
35
Number of Elements Outside Range
$ ., B $ . # "
%#
40
45
50
A 4
A 4 ) # " 572
A @ 57774
" $ 0
D-: "! .27>9 -D%- >)< %#
# #
! #
) %# D! %#
" H
! " # ) 9 "
%# ! ! "! $ 0 /
# 2
777 02
777 "
A 7
* 3
2
10
Consumed Time to Construct the k−vector (sec)
h=0
h=1
1
10
h=2
h=5
h=4
h=6
h=3
0
10
1
2
3
4
Database Length n (× 10,000)
$ 0, ) %#
5
6
#
%# 7 )
# 02
777 #
A %# ! " * ! %#
" "
" ! "
# " I $ 2 ( D-: 7
777
%# # # ) # # " # ! D-: !
" $ /
D-: A 7
( 33 A 3 D-:
7
777 * ..4 ) # # " 3
A 7 A 3
"! " 74
" 4E $ 3 27
777 %#
! * #! ! " & D-: * 4
3.4
h=6
3.3
h=5
CPU time for 10000 tests
3.2
h=4
3.1
3
h=3
2.9
h=2
2.8
h=1
2.7
h=0
2.6
0
1
2
3
4
Database Length n (× 10,000)
5
6
$ 2, D-: ) 7
777 #
7
"! ) %#
*
" 277>9 -D%-
$ 4
D-: ( "! ! A A ) %
# A 7 A 2 # " # "! ) "!
7
777 " " 54 A " " 434 A ) %#
*
* " 0. " 4 A 2
$ 5 " "! A7
%#
%
. D-: * "! "! A A2 A7
#! ) 0 20 32
2.2 * " ! " )
# "
5
140
h=0
Memory Required for K−vector (Kbytes)
120
100
80
60
40
20
h=10
0
0.24
0.26
0.28
0.3
0.32
Range Searching Average Time in 50000 tests (msec)
0.34
0.36
$ 3, >! " " > * " ! # $
<) ! ! " I %# * " ! / ! "
( ( ( %# ! " %# ) %# ! :!
)
) "! ;! #=
! "
# F ;! #=
%#
9 " %"
%#
" 9
9 #
1C)1J " " C* 0 C* ?
" #
A
@
% " :
@
C* 0 A
@
@ ?
A
@ @ 5
2
10
Consumed Time for 10,000 Range Searchings (sec)
Binary
1
10
k−vector with h=5
k−vector with h=0
0
10
0
1
2
3
4
Database Length n (× 10,000)
5
6
7
$ 4, D-: ) D
! " / !
#
# "
/ ) !
"! * ) KCC)1J !
# /
A
" !
@
%#
@
/
" "!
"# %#
!
(
%#
9 #
" I# # " "
! %# ) ! 9
%# ) 9 "! % "
* " # " 9
7
55
h=0
50
45
Binary/( k−vector) Speed Ratio
h=5
40
35
30
25
20
15
10
0
1
2
3
4
Database Length n (× 10,000)
5
6
7
$ 5, D-: ) D
! "
" "
# #
%#
) #
# "
%#
%# $ ?
%# ) #
%#
# / "
! # "
"
!
27
77
577
" # ) "
%#
# %#
?77
%#
%#
%#
%# 1 "( C# " 9 %#
%# " "
%#
"
%# " "
>" %#
! * " # ) " *
J" # 7 $!
H / %#
" %# # # ( "
900
800
Sorted Database s = y( I )
700
600
500
400
300
200
100
0
0
10
20
30
$ ?, 40
50
Indices
60
70
80
# * #
90
100
%#
!
%# * / # %
) %# # # # "
"! * 7 A 7772 D! " " H /
"# # #
" %#
$ 7 # 7 / %# *
" " # ! 7 / 8 /
) >" # $ # ) ( # %#
) #
%#
*
) "! ( # # 1
0.9
0.8
Trigonometric sin function
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0
0
10
20
30
$ 7, )
%#
40
50
Angle (deg)
60
70
80
90
$ $ -
"! 9 * )
" " %#
# " " / ! * %#
"! %#
%#
;"! = %
* * 7 27 " "! ;!= #
! "
$!
%#
%#
) *
" %
" * "%
# %
# ( "
" ! "
) % %
! "%#
) 6 74
1# /
%#
! "! + / 8! 77
(
" *
.
"! %#
1
0.9
0.8
Trigonometric sin function
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0
0
10
20
30
$ , :
40
50
Angle (deg)
60
70
80
90
' $ $ '
"
) ( ! D ! >
K ; $ &%< K !
" %K )* F $&' )(
= # ' ?.
- 5?.%?7. - ?3%25 /
I $ > >
)L
$" %2
??3
>
K ;% - =
' 02
1 %8 ??4
4?%?0
. >
K ;-%, 1
- = %
# ' 7
- 32%40 - ??%5 ? I $ > >
<(%
D&
$" 4%7
???
0
0 >
K
8(
8 ;-% - >%
$ '
)(
= # - ??%0.4 I ! D
J M
2%?
???
2 >
K
-(
)D
8(
8 ;) > %
K ! : )(
= # %
' ??
- 5.?%527 - ?5%2? 5 I $ > >
>!
D
$" ?%
??5
3 >
K
> ; - > "!
> KJ) = # %
' 7
- 42%50 - ??%5 ?
I $ > >
<(
D&
$"
4%7
???
4 > ; D ' >, 9 K
= )! C
:#! 8!
0
???
5 8
J
M
NB
-(
D)
8(
8
8
18
>
K
;%%, - C D 1 - = - 77%770 777 J O D D
<(
D&
$" %3
777
? <!
8
(
;$ = 7 J"
J B
# D $
; ! ) *
-"
= > 8 1 '
4
?57
55.%5?.
2