Parallel Algorithm for Map Labeling Problem

"#$% $&' (
!
) *+ , "#$-. $/
(0
" 1-2
[email protected]
[email protected]
$*/
&'
!" # $ %
.
'
123 4
+56 7 .
(/ )
( )*
( & !" # + ( ,
$- (
=' "*
. 8
= 9 %
( ,
$ 18 58 9: * ;
"<1
'1 . '8 ,( (
' '
' '2 '
;(9 8
7 , (" ,( " =
) " )
9 ! ($
'
.
123
*$ ? A
( -5 "; +
.
( ("?$
" -5 "; = $ 4( 4( D5
C -5 "; A "1) -5 "; +
'
"' -5 "'; +2' $ ("8
E
" -5 "; .-21
" 2H -5 ";
@ *
@
log
p
2
-5 "; , * @ <
!
1 ,
F G6
+
@ * -5 ";
+ (. 1
B": -
E
( -5 "; + .
" I ( CJ
: $*4,
3
$ 76
+ '.
&
2
$
/ * $ "3 S!
A '2 *V2 ( O "U
"
T "*
, 1 ( K#
O !MN . 1 "
23* K ;13
A 11 23*
, AL /? * !MN ,
1 (
1)
(": K # . 2;
- $ PQ5R & O !MN
- ( 2 @ < + A(
.("8
1 K# (
.-21
G6 K X *"2W
8
P 8 5)1Y 4 ; ( J *"2W
3
4
. Map Labeling
. Cartography
18
13 4
"# ( 1
((5 2
:
'* n '!" # = -2 ":
; '
/
2Q $ ( 2
' 2 % ( '! '2Q
(5 2
$)/
", -28
=
-21
123 4
5 (G
58 ( Z"N
/
.(\ 9 8) 18 58 9: *
.: 0 1)
2C "<1
NP-hard 123
3 L .[\]
'
,
.6 0 1)
? , n <DY = ( : -*.
58 ( @5)
' ( ( A ' '3 L +21a . 6
123 4
'2a2C . '1 +2 b*
53 c C (
P' $ $ '1 $ ^e Z ' ( . ' 4 '8 I G'
+' O"' ', .[f]( ' ' +2 'b*
Q@
()
= [1
' . 4 8 4( ( -
.(] 9 8)-28
-5 "; +21a
? , n <DY = ( : 9 1
. 4 8 4( ( -
opt
(( A
-
C" -2 ":
1 $ $ + "6 J^] Z
PU 9 %4
@5)
(( E @ *
("?$ Q ? 1 B "?
@ * -5 "; 4 ; L P NP
[d] $ []] ( G2 3
#25 .
O(n log n) 3 L -5 ";
-5 "; c C 2D2 $ ? A
(( E
? -5 ";
c C [f] -5 ";
+
Q@ -5 ";
@
-5 ";
. (
'E J
'
'
'?
$ -2'1 ' '6 )
' '
! F G6
! ' F G'6
' J[f] -5 "';
15@
" -5 "; =
(9 !
+ (
"' -5 "'; d F'R ( .-21
A 2 [f] " 2H -5 "; ] FR ( .-2 (
( -5 "; + .
4 L 2 #25 - f FR ( $ -21
B % L
2a2C
.
" 2H -5 ";
@
log 2p
*;
4 '8 '6 ) \^^e Z '
( P' $ $ '1 $ T' "*
5 "; J L
( ( AL g 8
.-21
A 2 (" -2 ": 4( D5 3 L
( ( JP )* 1
J ' H B"1? ( p ,
. '
'2%
' ='
Z"N
)
;2
0 $ i {1,2,3,4} .( (
pi J
(/ $ p 1
' AL
.-2
Z"'N
(
'
(
AL (
@5)
* @!
'8 Z '8 '
,
HZ 8J
p , Ki
7:
5 ";
5 .[f]
:< 0 1)
8 B"1?
pi +21a
:= 0 1)
4
. 18
$A
:
*;
> # 767:
.I
9: * 4
.-2 ( K #
K
9: *
4 L
9: *
4
$
1 . 2: ( ( ("?$
4
.9@ Q%
Z !
.4
!" #
$ 2-SAT F
2-SAT T' "* iW' $ 4( ' B 'R5
'
4
2Q A(
2C :\ Q%
$($( "#5 ? K # :] Q%
+
R C L -21
.I ( C F2C :P K
L K # iW $ +
2H
7 % :B K
$( J (
$( 5 2
N
:j K
. 2: ( ( ("?$ R C L -21
@
'
'
2'b $( '
15@
A> $)
4 8 6 ) 1 $ $ P $ T "* 9: *
$ ? , $*! 7:7:
4
A(
2C
8$
.[f] 4(" O @k
' 4 ' '; ( O '@) . 15
(
opt
) 123
4
5 " I
. 15
p ',
'
3
=
(I
,
123
9: *
4
+ 5 (G $ p , +2 9: *
2Q :6 *B%
4
5 G I
4
3L
9: *
31* :: *B%
. ( A
I
9: * 4
" d 9 8 . 15 I
+ 5 (G
5 k ( )*
31* Jp 1
, 9: *
4 A( $L
J] 2b V@N
' 4 '8 E , n
k + 5 (G A(
2C
5 "; [e] ( . 2
( " , AL
+ '1 .( ( 2 A n log n G2 9: *
4
* .
O(kn log n)
2a2C
(
.(" ": O(n log n)
2a2C
(
* $ 9: *
4 A( $L
P
S
! p3 # s1
(
!" #$ %
& ':
-*.
' $($( "#5' ? ' 9: '*
'L ' ' ( ( '
$ ?
' 4 ' ' 36 ( , 123
4
( 1
lR
L $($( "#5 ?
A( $L
)9: * 4
@
pi
'
4 '; L J '8
' 36 +' .- '
$ % pi
;( , =
' pi
'
?
("'?$ R' C J
("
K '#
' $($( "#5' ? '
$ 4( ' B 'R5 4 "R
' 36
'N"
7 '%
'
+
pi 4 '; L J '8
3L
'
4
J 8 58 (
7 '% 9' ! K '#
5'8 ( 9: '* q ', 4
. 8 ( 1 "R 18 @ 2
2
'
dead $ ' ( 9: '* "'1
9: '* A$ '
'
2Q
.("
2Q
7 %
9 8
Q% + (
•
p ,
$(
$ % pi
dead
6 J 6
":
-2
9: *
=
•
31*
.-21
(p
.-21
7 %
8 pi
dead
$( F2 &
•
p ,
9: * A$
9'@ .-21
7 % p ,
.-21
7 % G2
4 ;L J 8 4
;( ,
2Q
4 ; L , (" 4 8 7 % p ,
2Q
$ 4 8 P "5 #1 (
+
# / * .(
.((
(
R
. 8
*! :0 E 767<7:
$ $ , G H :F E 7:7<7:
% 3 p 1 &
4
(9: *
!
36 O "U1 2H ( -21
(" ": Q: *
4
/& *;
:-21
Q% + (
.- ( C
.-2 ( K #
pi 1
J-21
' 9: * O !MN
. 15
5 "
C D#$ 7<7:
pi
2Q JB K
•
:I 0 1)
?
iC :6
!" # $
2-SAT -2 "* J\ - V@N + 1
!" # +
"? 2-SAT .-21 ? J 15 2
("
4
"? + $ -21 6 m B "?
K /
L &M :J E 7:7<7:
-5 "'; .-2'1 ' Z ' !
D'8 -5 "'; 4 '; L '1 2C
"? Q@ Q% 2-SAT A" L
n
5 . (
53 c C 9 ! (
I D8 -5 "; J("8
6 ) #1 (
D8
iW' .-2'1
7 % ( ( 9: * + 5 2
3 L A 2 .- $
(
3
N
4 '
' & ' + 1 .-21
* G2 3 L
9 ! +2 $ - $
(
N n
. 2: ( ( ("?$ R C -21
2-SAT F L K # . 8 ( 1 "R 5 2
$(
*;
" $*N*! A*4') 7=7:
$ B JP
K .
O(n log n)
2a2C
( ,I
9: *
4 A(
2C J-5 "; \ Q%
' $($( "#5 ? 9: *
4
$
# L . 15 K # 9
,: A ( J] Q%
j
"'' 2H -5 "''; 9''
'2a2C + '1 .("''8 ' K '# O(n log n) A ' ( ] 'Q% J-2'' ( K '#
.(" ": O(n log n)
P1
P2
P3
P1
P4
P3
P1
/
$ 0 ) +, ' -!.
!, '
*
:)
7<
4 '8 '5D
"' '2H -5 "'; ' C -21
o '6 +' V'@N ("': -5 "'; $ 15' ]
O "''U
' 4 ' ( C 4 '; L -2''8
.("
": U@ 4
6)
"* 4
( C ( )*
" -5 ";
o 6.
4 8 % N
+
5''8 ( 4 ' ( C p ' .-2 ' ' K i 4 ' ( C
( C P1 4
(C 4
( C+ A2
.-2
Pi .-2''1 '
'% N
P1 , P2 ,..., Pi ,..., Pp 1 , Pp
> # 767<
" O "U I
123
9: *
4
" O "U &
4 ( C T "* 9: *
4
" O "U 9: *
4
4 A(
2C
"
2Q A( 2C :\ Q%
* :\ K
@ < :] K
* :d K
"#5 ? K # :] Q%
O P@
A> $)
$ ? , $*! 7:7<
# L .-21 -2 * 4 ( C p +2 &
J " O "U , n 9: *
4
A(
2C
@' < A "*
2* * + .-21
*
" O "U
3 L 5 J 15
* &
+ o6
"* &
* .(" Z"< q ( " 4 ( C
p : 4($ < = ( / $ & 9: *
4
'2 -2 'U*
* 4"< /? A "* &
1 C ?"* .( 2 O "Y m !
"N O "Y $(
4($ '< ( 'U@ 4 ' ( C T' "*)& ' F ' 2C @
A "* -28 58 ( " + ( m 6F2C .("
'3 "N "<
.("
2 -2 U*
* 4"<
@ AL ?"* $ ( $L
& 12 2 $ 12
.i ) $ -21
*
"N O U5R
%
& J 8
o ! "<
O PQ
'* ("': ' ( ' '
4 '8 ',
4 2'
1
$ ...J P2 4
& ' 9 5'
36 ( n/p 4 8 , * = 4 8 ,
&
(C
O "'U 4
( . '1 ' Z ' p-1 4 8
4 ' (C
*)("8 Z )6
' '* -5 "'; 4( D5'
4 '8 '* & (Z )6
4
log ' 1 .("8
*( #
(C
# ) 767:7<
( P1 ) U@ 4
36 ( 2n/p 4 8 , * n/p+1 4 8 ,
&
. 1
Pp 4
Z
( 64 ( C
4 8 * &
2H $ ("8 j : @ < $(
' ' 4(
6 ( 4( (
( C A 2 ( j$ )j$
4 (C
Q@ 9% $ 1
Z (Z )6
(C
5 G
(C
iW . 1
n 4 8 , * (p-1)n/p+1
Jp j$
4 ( C iW . 1
*
1
Z 4( (
4 ( C Q%
4 ( C .( 1 Z AL
4( ( U@
( # iW . 1
*
& , H(
4 ( C A 2 ( ( 6)( 6
4 (C
( P1 ) 'U@ 4 ' ( C 'Q% log p i'C . ' ( A
1 K # 9% f 9 8 .("8
* Q% p
Z' ' 4 ( C
& 4 8 *
36 4 ( C + . 8 ( ": & 4 8 * 9
36
4( ' L $ 4 '8 Z ')6 'U@ 4 ' ( C
' 36 + 6 (
(" 4 8 Z )6 2H
4 ( C 2Q . 1
. "8 9: *
4
@ <
( ' . ' n / p * (log n / p + 2 (log p +1) 2)
, n $ 4 ( C p -5 "; +
2a2C
5
'4 ' (C
2 ) Q% ( . 1
* n/p log n/p A ( , n/p ( )* 4 ( C
4 ( C K i Q% ( 2* * + . 1 ( K # & K H(
2n/p 4 ( C ; ( -2 $ 4 8 2
9'
'2a2C +
'1 . ' # ' Z"'N ' Q% log p
1 . 1(
: ("8
K#
2i * n / p K
Z )6
" O "U
* -'5 ";
n / p * log n / p + 2 * n / p + 4 * n / p + ... + p * n / p
= n / p * log n / p +
log p
i =0
= n / p(log n / p + 2 log p
(2 i * n / p) n / p
2)
$
! R# ) A> $)
$
9# ' 7:7:7<
Pi 4 ' ( C ' iW' . '1 ' -2 * 2% p+1
& 4 8 *
36 4 ( C
Q%
& ' 4 '8 '*
36 ( (i + 1) * n /( p + 1) $ (i 1) * n /( p + 1) 4 8 & +2 9:
'2% $( 9: '*
4 4 ( C A" . 1
@ <
" 2H O "U ]X] ( 4 8 5D
+2 $ 2%
9: ( 9: *
4 + 1 J (r 5
2% =
4 ( C $( $ 1
' 9: '* 4
2H 2% $( +2 -2 ( A
6 Z % .- $L
.(
+ (
*
4
I$ V@N
@ <
2% $(
("?$ I
P
q
S
7, ( 6 p3 # q1 & ' /
A'
() '
I
' AL
'
'
(":
'
3
(
5s 2. $ 3#
4 :1
, J 2% p+1 +
8
2% = ( 31*
2H % "' ( /' $ & ' $ '2% = & +2 9: *
4
::
4 ;L J 8
58 ( ( 2%
.(" 1 ":
' (I '
', ' + 5 (G $ q , +2 9: *
4
31* -2 ( ] 2b V@N :O @k
( ' '8 q ', J 2% p+1 +
2% = ( 31* + 1 . 15 I
q ,
3 =
$ '2% =' & ' +2' 9: '*
4 4 ; L J 8 58 ( ( 2% A
()
(":
3
'#25 ( $ ("' ": F ;
$ q , 9: * 4 + 5 G 5 G AL
2H % " ( / $ &
. ( A
t"m" + e 9 8 .(" 1 ": I
9: *
4 sG?
" I (C 1
?"* .( ( ("?$ , +21
-21
o6
+ 9% ( + 1
.
- 2
, +21 ("?$ K ! Z 5% , 8 ( & ( )* ("8
56
O( (2n /( p + 1)) * log(2n /( p + 1)) )
4 ( C T "* 9: *
4
@ <
2a2C
O P A> $)
$
# ) 7<7:7<
( '# .("8
HL 9: *
4
* Q% 4 ( C T "* 9: *
4
@ < iC
' Q: '*
4
5 4 ( C .("8 4( D5 8 4( ( g 8 \X]Xd (
H(
* -5 ";
(6
4 (C
4 8 * 9: *
4
36 j$
4 ( C iW $ 4("
*
4(" @ <
'Q% log p i'C . '8 ' '8 4( ( g 8 \X]Xd ( &
* 1
(J
($ 1(
'4 '
'
'* -5 ";
2a2C #25 ( . 8 (
": 9: *
2n /( p + 1) * (log 2 n /( p + 1) + 2
-*.
$ ? , $*!
4
(log p + 1)
36 P1 4
2Q
2) : ("8
S
(C
9: *
T E S 7<7<
$ '123 '
4 ' A( $L '
' - ( ( u2m"*
" 2H -5 "; (
' L -2'1 ' '
9: '* 4 ' '
' $ - ( 'C ' ' $($( "#5' ? ' 9: '*
4
36
A "'* ' 4 ' ( C p ("'?$ ?"* . 2: ( ( ("?$
("
4
@5)
$($( "#5 ? #
' 36 U@ 4 ( C Q%
( I$ + .4(" 4( D5
*p "#5 ?
' G'2 'U@ 4 ( C) 1 Z
4
4 (C =
$ 4( B R5 4 p "#5 ? ( "
c C ("?$
c' C ("'?$ '
iC 4 ( C
J( ( C 4 8 B R5 4 p +
9: '* ' 4
' 9: '*
' . 1
Z
.(" 1 ":
m 2m
,
,
p +1 p +1
'11
N"
c C ("?$
G2 (": U@ 4 ( C) 11 KM! U@ 4 ( C
#25
'4 '
36
? 4($ < 4 8 KM! [ 5
?"* U@ 4 ( C iW .(( ( C
4 (C
$ B R5 4 p ( # $ 56 q ( 8 AL (
+ B "?
4 8
( 4 8 B R5 Y 1! 4 ; L 8 * m
("
36 ( ("?" 4 ( )*
i*m
( p 1) * m p * m
3m
,
,...,
, ...,
p +1
p +1
p +1
p +1
4
c C ("?$ @ < 7 Y 4 ( C
4 3 I$ + "#5 ? K # A
": nlog np
. 8
" $*N*! A*4') 7<7<
O "'U 9: '*
'2a2C
'4
* +21a
( G'2 '123 9: *4
' $ ! ' F G'6 +21a
$ 9: *
"#5 ? .
4
@ < $
O(n / p(log n / p + 2 log p )
": O(n log np ) ? ( -5 "; 9
.
" O "U &
.
2* 5
2a2C +
" 2H -5 ";
*
2a2C
(
1 .
nlog np
@
"
" -5' ";
n
2
n
p
Speed up ( P) =
T (1) log
=
= log 2p
T ( p ) log
Efficiency ( P) =
log n2
log 2p
T (1)
=
=
pT ( p ) p log np
p
* S* 7=
'
=' ' "* '
.- ("
' '?"* ' . '8 ,( (
'
.("8
6)
'
" -5 "; =
' '2
5)
;(9 8
9% ?" J
' +' ( ') K ' .("' '53 L A "5
-2' * V N -5 ";
" $ A "*
8$
+21a
7
" -5 "; +
+
. 8 9: *
.("
, (" ,( "
4( D5 J
+ (
=
) " )
A(" NP-hard
" -5 "; +2 $ J-5 "; +
4
@ < A(" 53 "*
123
4 ("?$ @ <
UT
[1] M. Formann, F. Wagner, “A Packing Problem with Applications to Lettering of Maps”.
Proceedings of the 7th Annual ACM Symposium on Computational Geometry. pp. 281-288, 1991.
[2] H. Aonuma, H. Imai, Y.Kambayashi, “A visual system of placing characters appropriatly in
multimedia map databases”. Proceedings of the IFIP TC 2/WG 2.6 Working Conference on Visual
Database Systems, North Holland. pp. 525-546, 1989.
[3] K. Imai, T. Asano, “Efficient Algorithms for Geometric Graph Search Problems”. SIAM J. Comput.
15. pp. 478-494, 1986.
[4] F. Wagner, A. Wolff, “Map Labeling Heuristics: Provably Good and Practically Useful”.
Proceedings of the 11th Annual ACM Symposium on Computational Geometry. pp. 109-118, 1995.
[5] M. Formann, “Algorithms for Geometric Packing and Scaling Problems”. Dissertation, Fachbereich
Mathematik und Informatik, Freie Universität, Berlin, 1992.