8/11/2019 Traversal Connected Compnents
1/14
O n F i n d i n g t h e S t r o n g l y C o n n e c t e d
C o m p o n e n t s i n a D i r e c t e d G r a p h
E s k o N u u t i l a
E l j a s S o i s a l o n - S o i n i n e n
L a b o r a t o r y o f I n f o r m a t i o n P r o c e s s i n g S c i e n c e
H e l s i n k i U n i v e r s i t y o f T e c h n o l o g y
O t a k a a r i 1 , S F - 0 2 1 5 0 E s p o o , F i n l a n d
e n u @ c s . h u t . f i , e s s @ c s . h u t . f i
A b s t r a c t
W e p r e s e n t t w o i m p r o v e d v e r s i o n s o f T a r j a n ' s a l g o r i t h m f o r t h e d e t e c t i o n o f s t r o n g l y
c o n n e c t e d c o m p o n e n t s i n a d i r e c t e d g r a p h . O u r n e w a l g o r i t h m s h a n d l e s p a r s e g r a p h s a n d
g r a p h s w i t h m a n y t r i v i a l c o m p o n e n t s ( c o n t a i n i n g o n l y o n e n o d e ) m o r e e c o n o m i c a l l y t h a n
T a r j a n ' s o r i g i n a l a l g o r i t h m . A s a n a p p l i c a t i o n w e p r e s e n t a n e c i e n t t r a n s i t i v e c l o s u r e
a l g o r i t h m .
K e y w o r d s : D e s i g n o f a l g o r i t h m s ; s t r o n g l y c o n n e c t e d c o m p o n e n t s ; T a r j a n ' s a l g o r i t h m ; t r a n -
s i t i v e c l o s u r e
1
8/11/2019 Traversal Connected Compnents
2/14
1 I n t r o d u c t i o n
C o n s i d e r a d i r e c t e d g r a p h G = ( V ; E ) , w h e r e V i s t h e s e t o f n o d e s a n d E V V
i s t h e s e t o f e d g e s . A p a t h f r o m n o d e v
0
t o n o d e v
k
i n G i s a n a l t e r n a t i n g s e q u e n c e
( v
0
; ( v
0
; v
1
) ; v
1
; ( v
1
; v
2
) ; : : : ; v
k ? 1
; ( v
k ? 1
; v
k
) ; v
k
) o f n o d e s a n d e d g e s t h a t b e l o n g t o V
a n d E , r e s p e c t i v e l y . T w o n o d e s v a n d w i n G a r e p a t h e q u i v a l e n t i f t h e r e i s a p a t h
f r o m v t o w a n d a p a t h f r o m w t o v . P a t h e q u i v a l e n c e p a r t i t i o n s V i n t o m a x i m a l
d i s j o i n t s e t s o f p a t h e q u i v a l e n t n o d e s . T h e s e s e t s a r e c a l l e d t h e s t r o n g l y c o n n e c t e d
c o m p o n e n t s o f t h e g r a p h .
T a r j a n 6 ] h a s p r e s e n t e d a n e l e g a n t a l g o r i t h m t h a t n d s t h e s t r o n g l y c o n n e c t e d
c o m p o n e n t s i n O ( n + e ) t i m e , w h e r e n i s t h e n u m b e r o f n o d e s a n d e i s t h e n u m b e r
o f e d g e s i n t h e i n p u t g r a p h . A l t h o u g h T a r j a n ' s a l g o r i t h m i s a s y m p t o t i c a l l y o p t i m a l
i t d o e s s o m e u n n e c e s s a r y w o r k . I n t h i s p a p e r w e s h o w h o w t h i s c a n b e a v o i d e d .
T a r j a n ' s a l g o r i t h m c a n b e c o n s i d e r e d t o c o n t a i n t w o i n t e r l e a v e d t r a v e r s a l s o f t h e
g r a p h . F i r s t , a d e p t h - r s t s e a r c h t r a v e r s e s a l l e d g e s a n d c o n s t r u c t s a d e p t h - r s t
s p a n n i n g f o r e s t . S e c o n d , o n c e a s o c a l l e d r o o t o f a s t r o n g l y c o n n e c t e d c o m p o n e n t
i s f o u n d , a l l i t s d e s c e n d a n t s t h a t a r e n o t e l e m e n t s o f p r e v i o u s l y f o u n d c o m p o n e n t s
a r e m a r k e d a s e l e m e n t s o f t h i s c o m p o n e n t . T h i s s e c o n d t r a v e r s a l i s i m p l e m e n t e d
b y u s i n g a s t a c k , w h e r e e a c h n o d e i s s t o r e d w h e n e n t e r e d b y t h e d e p t h - r s t s e a r c h .
W h e n a r o o t o f a c o m p o n e n t i s e x i t e d , a l l n o d e s d o w n t o t h e r o o t a r e r e m o v e d f r o m
t h e s t a c k a n d t h e y f o r m t h e c o m p o n e n t i n q u e s t i o n .
W e p r e s e n t t w o i m p r o v e d v e r s i o n s o f T a r j a n ' s a l g o r i t h m . T h e n e w a l g o r i t h m s r e -
d u c e t h e s e c o n d t r a v e r s a l w i t h o u t s l o w i n g d o w n t h e r s t t r a v e r s a l . T h i s i s a c h i e v e d
b y n o t s t o r i n g a l l n o d e s o n t h e s t a c k . T h e r s t a l g o r i t h m d o e s n o t s t o r e t h e c o m -
2
8/11/2019 Traversal Connected Compnents
3/14
p o n e n t r o o t n o d e s o n t h e s t a c k . T h e s e c o n d a l g o r i t h m s t o r e s o n l y p o s s i b l e r o o t
n o d e s o f n o n t r i v i a l ( c o n t a i n i n g a t l e a s t o n e c y c l e ) c o m p o n e n t s o n t h e s t a c k . A s a n
a p p l i c a t i o n o f t h e s e c o n d n e w a l g o r i t h m w e p r e s e n t a s i m p l e a n d e c i e n t t r a n s i t i v e
c l o s u r e a l g o r i t h m .
F o r a c y c l i c g r a p h s , o u r n e w a l g o r i t h m s c o m p l e t e l y e l i m i n a t e t h e s e c o n d t r a v e r s a l ,
a n d f o r c y c l i c g r a p h s t h e n u m b e r o f n o d e s t o b e t r a v e r s e d i s r e d u c e d . T h e n e w
a l g o r i t h m s h a n d l e s p a r s e g r a p h s a n d g r a p h s w i t h m a n y s i n g l e n o d e c o m p o n e n t s
m o r e e c o n o m i c a l l y t h a n T a r j a n ' s o r i g i n a l a l g o r i t h m .
B e s i d e s T a r j a n ' s a l g o r i t h m , a n o t h e r l i n e a r t i m e a l g o r i t h m i s p r e s e n t e d i n m a n y
t e x t b o o k s . T h i s a l g o r i t h m i s a t t r i b u t e d i n 1 ] t o R . K o s a r a j u a n d p u b l i s h e d i n 5 ] .
I t r e q u i r e s o n e d e p t h - r s t t r a v e r s a l o f t h e i n p u t g r a p h a n d a n o t h e r t r a v e r s a l o f t h e
g r a p h o b t a i n e d b y r e v e r s i n g t h e e d g e s o f t h e i n p u t g r a p h . R e v e r s i n g a g r a p h c a n b e
d o n e i n l i n e a r t i m e , b u t i s q u i t e t i m e c o n s u m i n g f o r l a r g e g r a p h s .
R e c e n t l y , J i a n g 3 ] h a s p r e s e n t e d a n e w l i n e a r t i m e s t r o n g l y c o n n e c t e d c o m p o n e n t
a l g o r i t h m . T h e a l g o r i t h m i s b a s e d o n a t r a v e r s a l s t r a t e g y t h a t i s a c o m b i n a t i o n o f
d e p t h - r s t a n d b r e a d t h - r s t t r a v e r s a l . J i a n g ' s a l g o r i t h m i s a i m e d a t r e d u c i n g d i s k
o p e r a t i o n s i n a s i t u a t i o n w h e r e t h e w h o l e g r a p h d o e s n o t t i n t o t h e m a i n m e m o r y .
2 T a r j a n ' s a l g o r i t h m
W e r e v i e w h e r e t h e b a s i c i d e a s o f T a r j a n ' s a l g o r i t h m . W e u s e a n o t a t i o n t h a t d i e r s
f r o m t h e o r i g i n a l p r e s e n t a t i o n 6 ] , b u t t h a t s i m p l i e s t h e d e s c r i p t i o n .
T a r j a n ' s a l g o r i t h m i s p r e s e n t e d i n F i g u r e 1 . I t c o n s i s t s o f a r e c u r s i v e p r o c e d u r e
V I S I T a n d a m a i n p r o g r a m t h a t a p p l i e s p r o c e d u r e V I S I T t o e a c h n o d e t h a t h a s n o t
3
8/11/2019 Traversal Connected Compnents
4/14
a l r e a d y b e e n v i s i t e d . P r o c e d u r e V I S I T e n t e r s t h e n o d e s o f t h e g r a p h i n d e p t h - r s t
o r d e r . F o r e a c h s t r o n g l y c o n n e c t e d c o m p o n e n t C , t h e r s t n o d e o f C t h a t p r o c e d u r e
V I S I T e n t e r s i s c a l l e d t h e r o o t o f c o m p o n e n t C . T h e m a i n g o a l o f t h e a l g o r i t h m i s
t o n d t h e c o m p o n e n t r o o t s . F o r t h i s p u r p o s e , w e d e n e a v a r i a b l e r o o t v ] f o r e a c h
n o d e v . W h e n p r o c e d u r e V I S I T i s p r o c e s s i n g n o d e v , r o o t v ] c o n t a i n s a c a n d i d a t e
n o d e f o r t h e r o o t o f t h e c o m p o n e n t c o n t a i n i n g v .
I n i t i a l l y ( a t l i n e 3 ) , n o d e v i t s e l f i s t h e r o o t c a n d i d a t e . W h e n p r o c e d u r e V I S I T
p r o c e s s e s t h e e d g e s l e a v i n g n o d e v ( a t l i n e s 5 - 8 ) , n e w r o o t c a n d i d a t e s a r e o b t a i n e d
f r o m c h i l d r e n n o d e s t h a t b e l o n g t o t h e s a m e c o m p o n e n t a s v . T h e M I N o p e r a t i o n
( a t l i n e 7 ) c o m p a r e s t h e n o d e s w i t h r e s p e c t t o t h e o r d e r i n w h i c h p r o c e d u r e V I S I T
h a s e n t e r e d t h e m , i . e . , M I N ( x ; y ) = x i f p r o c e d u r e V I S I T e n t e r e d n o d e x b e f o r e
i t e n t e r e d n o d e y , o t h e r w i s e M I N ( x ; y ) = y . A s i m p l e w a y t o i m p l e m e n t t h i s i s
t o u s e a n a r r a y a n d a c o u n t e r t o a s s i g n a u n i q u e d e p t h - r s t n u m b e r t o e a c h n o d e .
W h e n p r o c e d u r e V I S I T h a s p r o c e s s e d a l l e d g e s l e a v i n g v , r o o t v ] = v i f a n d o n l y
i f v i s t h e r o o t o f t h e c o m p o n e n t c o n t a i n i n g v ( l i n e 9 ) . N o t e h o w e v e r , t h a t i f v i s
n o t a c o m p o n e n t r o o t w e d o n o t k n o w i f r o o t v ] i s t h e r i g h t r o o t o f t h e c o m p o n e n t
c o n t a i n i n g v .
T o d i s t i n g u i s h b e t w e e n n o d e s b e l o n g i n g t o t h e s a m e c o m p o n e n t a s n o d e v a n d
n o d e s b e l o n g i n g t o o t h e r c o m p o n e n t s , a B o o l e a n v a r i a b l e I n C o m p o n e n t w ] i s d e n e d
f o r e a c h n o d e w . I t s i n i t i a l v a l u e i s F a l s e . W h e n a c o m p o n e n t C i s f u l l y d e t e c t e d
p r o c e d u r e V I S I T s e t s I n C o m p o n e n t w ] = T r u e f o r e a c h n o d e w t h a t b e l o n g s t o C
( l i n e s 1 0 - 1 3 ) . A s t a c k i s u s e d f o r t h i s p u r p o s e . E a c h n o d e i s s t o r e d o n t h e s t a c k i n
t h e b e g i n n i n g o f p r o c e d u r e V I S I T . W h e n t h e c o m p o n e n t i s f u l l y d e t e c t e d t h e n o d e s
b e l o n g i n g t o i t a r e o n t o p o f t h e s t a c k . P r o c e d u r e V I S I T r e m o v e s t h e m f r o m t h e
4
8/11/2019 Traversal Connected Compnents
5/14
s t a c k a n d s e t s t h e I n C o m p o n e n t v a l u e s t o T r u e . T h e n o d e s b e l o n g i n g t o t h e n e w l y
f o u n d c o m p o n e n t c o u l d b e o u t p u t , b u t t h i s i s o m i t t e d i n F i g u r e 1 .
N o t e t h a t a c l e v e r i m p l e m e n t a t i o n o f t h e a l g o r i t h m c a n u s e a s i n g l e c o m p u t e r
w o r d f o r e a c h n o d e t o r e p r e s e n t t h e d e p t h - r s t n u m b e r o f t h e n o d e a n d i t s I n C o m p o n e n t
s t a t u s a n d t o r e c o r d w h e t h e r t h e n o d e i s a l r e a d y e n t e r e d . N o e x p l i c i t B o o l e a n v e c t o r
i s n e e d e d t o r e p r e s e n t t h e I n C o m p o n e n t v a r i a b l e s .
3 I m p r o v e d a l g o r i t h m 1
I f t h e i n p u t g r a p h G = ( V ; E ) i s a c y c l i c t h e n e a c h s t r o n g l y c o n n e c t e d c o m p o n e n t
c o n s i s t s o f a s i n g l e n o d e . T h u s , t h e r e i s n o n e e d f o r t h e s e c o n d t r a v e r s a l t h a t
i d e n t i e s t h e n e w l y f o u n d c o m p o n e n t a n d t h e u s e o f a s t a c k i s u n n e c e s s a r y . C y c l i c
g r a p h s a l s o m a y c o n t a i n s u c h t r i v i a l c o m p o n e n t s .
O u r r s t n e w a l g o r i t h m , p r e s e n t e d i n F i g u r e 2 , d o e s n o t u s e t h e s t a c k w h e n
p r o c e s s i n g t r i v i a l c o m p o n e n t s . T h e a l g o r i t h m i s b a s e d o n t h e f o l l o w i n g p r o p e r t y
o f T a r j a n ' s a l g o r i t h m : a n e w s t r o n g l y c o n n e c t e d c o m p o n e n t i s d e t e c t e d w h e n p r o -
c e s s i n g i t s r o o t n o d e . D u r i n g t h e s e c o n d t r a v e r s a l t h a t m a r k s t h e n o d e s o f t h e
c o m p o n e n t , w e w o u l d h a v e a c c e s s t o t h e r o o t n o d e e v e n i f i t w e r e n o t s t o r e d o n t h e
s t a c k . T h e r e f o r e , p r o c e d u r e V I S I T 1 s t o r e s a n o d e v o n t h e s t a c k o n l y a f t e r i t h a s
p r o c e s s e d a l l e d g e s l e a v i n g v a n d k n o w s t h a t v i s n o t a c o m p o n e n t r o o t ( a t l i n e 1 4 ) .
F u r t h e r , t h e p r o c e s s i n g o f a n e w l y f o u n d c o m p o n e n t i s s l i g h t l y d i e r e n t , b e c a u s e t h e
r o o t n o d e i s n o t o n t h e s t a c k . E a c h n o n r o o t n o d e o f a c o m p o n e n t w a s e n t e r e d a f t e r
t h e c o m p o n e n t r o o t . T h e r e f o r e ( a t l i n e s 1 0 - 1 3 ) , w e r e m o v e n o d e s f r o m t h e s t a c k a s
l o n g a s t h e t o p m o s t n o d e i s g r e a t e r t h a n t h e r o o t n o d e ( w i t h r e s p e c t t o t h e o r d e r
5
8/11/2019 Traversal Connected Compnents
6/14
i n w h i c h p r o c e d u r e V I S I T 1 e n t e r e d t h e n o d e s ) a n d s e t t h e I n C o m p o n e n t v a r i a b l e s
T r u e . T h e I n C o m p o n e n t v a r i a b l e o f t h e r o o t n o d e i s s e t T r u e a t l i n e 9 .
4 I m p r o v e d a l g o r i t h m 2
W e e x a m i n e n o w t h e p o s s i b i l i t y t o f u r t h e r r e d u c e t h e s e c o n d t r a v e r s a l i n T a r j a n ' s
a l g o r i t h m . O b v i o u s l y , i f w e h a v e t o o u t p u t t h e c o m p o n e n t s w e n e e d a n a c c e s s t o
e a c h n o d e o f t h e c o m p o n e n t . B u t i f w e o n l y w a n t t o d e t e c t t h e c o m p o n e n t r o o t s ,
f o r i n s t a n c e , t o c o m p u t e t h e n u m b e r o f s t r o n g c o m p o n e n t s , w e c a n d o b e t t e r t h a n
i n A l g o r i t h m 1 .
E x a m i n e l i n e 7 i n F i g u r e 1 . T h i s i s t h e o n l y p l a c e w h e r e w e t e s t i f t h e c h i l d
n o d e w b e l o n g s t o t h e s a m e c o m p o n e n t a s n o d e v . N o t e t h a t w b e l o n g s t o t h e s a m e
c o m p o n e n t a s v i f a n d o n l y i f r o o t w ] b e l o n g s t o t h e s a m e c o m p o n e n t a s v . T h u s ,
t e s t s \ I n C o m p o n e n t w ] " a n d \ I n C o m p o n e n t r o o t w ] ] " a l w a y s y i e l d t h e s a m e r e s u l t .
O u r s e c o n d a l g o r i t h m , p r e s e n t e d i n F i g u r e 3 , i s b a s e d o n t h i s i d e a . N o d e x i s
a n a l c a n d i d a t e r o o t i f x = r o o t y ] f o r s o m e n o d e y w h e n a l l e d g e s l e a v i n g y h a v e
b e e n p r o c e s s e d . P r o c e d u r e V I S I T 2 s t o r e s e a c h n a l c a n d i d a t e r o o t o f a n o n t r i v i a l
c o m p o n e n t o n t h e s t a c k . T h i s i s d o n e a t l i n e 1 5 i n F i g u r e 3 . N o t e t h a t a c l e v e r
i m p l e m e n t a t i o n c a n u s e t h e s a m e c o m p u t e r w o r d t h a t h o l d s t h e d e p t h - r s t n u m b e r
a n d o t h e r s t a t u s i n f o r m a t i o n t o r e c o r d i f t h e n o d e i s o n t h e s t a c k . W h e n a n o n t r i v i a l
c o m p o n e n t i s d e t e c t e d i t s n a l c a n d i d a t e r o o t n o d e s a r e o n t o p o f t h e s t a c k . T h e
a l g o r i t h m r e m o v e s n o d e s f r o m t h e s t a c k u n t i l t h e t o p m o s t n o d e i s s m a l l e r t h a n t h e
a c t u a l r o o t n o d e ( i n t h e d e p t h - r s t o r d e r i n g ) a n d s e t s t h e I n C o m p o n e n t v a r i a b l e s
T r u e . I f t h e c o m p o n e n t i s t r i v i a l t h e a l g o r i t h m o n l y s e t s I n C o m p o n e n t v ] = T r u e
6
8/11/2019 Traversal Connected Compnents
7/14
( a t l i n e 1 4 ) . T o p r e v e n t s t a c k u n d e r o w , t h e s t a c k i s i n i t i a l i z e d t o c o n t a i n a s e n t i n e l
v a l u e s m a l l e r t h a n a n y n o d e o f t h e i n p u t g r a p h .
W e c o n j e c t u r e t h a t t h e s e c o n d t r a v e r s a l c a n n o t b e c o m p l e t e l y r e m o v e d , a t l e a s t
w i t h o u t c h a n g i n g t h e r s t t r a v e r s a l . I f w e r e m o v e t h e s e c o n d t r a v e r s a l w e c a n a c c e s s
o n l y t h e c o m p o n e n t r o o t n o d e w h e n w e d e t e c t a n e w c o m p o n e n t . T h u s , o n l y t h e
I n C o m p o n e n t v a r i a b l e o f t h e r o o t n o d e c a n b e s e t T r u e . A f t e r a n o n r o o t n o d e w
h a s b e e n p r o c e s s e d w e d o n o t n e c e s s a r i l y h a v e a x e d l e n g t h a c c e s s p a t h f r o m w t o
t h e r o o t o f t h e c o m p o n e n t c o n t a i n i n g w . T h u s , t e s t i n g i f w b e l o n g s t o a n a l r e a d y
d e t e c t e d c o m p o n e n t c a n n o t b e d o n e i n c o n s t a n t t i m e , w h i c h s l o w s t h e r s t t r a v e r s a l .
5 A n a l y s i s
T h e t i m e c o m p l e x i t y o f T a r j a n ' s a l g o r i t h m a n d o u r n e w a l g o r i t h m s i s O ( n + e ) , w h e r e
n i s t h e n u m b e r o f n o d e s a n d e i s t h e n u m b e r o f e d g e s i n t h e i n p u t g r a p h . T h e r s t
t r a v e r s a l i n a l l a l g o r i t h m s t a k e s O ( n + e ) t i m e a n d t h e s e c o n d t r a v e r s a l t a k e s O ( n )
t i m e . S i n c e o u r n e w a l g o r i t h m s c h a n g e o n l y t h e s e c o n d t r a v e r s a l , n o i m p r o v e m e n t s
s h o u l d b e e x p e c t e d w h e n t h e i n p u t g r a p h i s d e n s e , i . e . , w h e n t h e n u m b e r o f e d g e s
e o f t h e g r a p h i s o f o r d e r n
2
. W h e n t h e g r a p h i s s p a r s e , i . e . , t h e n u m b e r o f e d g e s
i s o f o r d e r n , o u r a l g o r i t h m s r u n f a s t e r t h a n t h e o r i g i n a l a l g o r i t h m . T h e d i e r e n c e
b e t w e e n t h e a c t u a l r u n t i m e s d e p e n d s o n t h e i m p l e m e n t a t i o n .
T h e m a i n d i e r e n c e b e t w e e n t h e t h r e e a l g o r i t h m s i s t h e n u m b e r o f n o d e s s t o r e d
o n t h e s t a c k . L e t P
T
, P
1
, a n d P
2
b e t h e n u m b e r o f n o d e s s t o r e d o n t h e s t a c k i n
T a r j a n ' s a l g o r i t h m a n d i n o u r a l g o r i t h m s 1 a n d 2 , r e s p e c t i v e l y . T a r j a n ' s a l g o r i t h m
s t o r e s a l l n n o d e s o n t h e s t a c k . T h u s , P
T
= n . A l g o r i t h m 1 s t o r e s a n o d e o n t h e
7
8/11/2019 Traversal Connected Compnents
8/14
s t a c k u n l e s s i t i s a c o m p o n e n t r o o t . T h u s , P
1
= n ? s , w h e r e s i s t h e n u m b e r
o f s t r o n g l y c o n n e c t e d c o m p o n e n t s i n t h e i n p u t g r a p h . L e t p
C
b e t h e n u m b e r o f
n o d e s s t o r e d o n t h e s t a c k b y A l g o r i t h m 2 w h e n p r o c e s s i n g a c o m p o n e n t C . I f C
i s t r i v i a l t h e n n o n o d e s a r e s t o r e d o n t h e s t a c k . I f C i s n o n t r i v i a l t h e n a t l e a s t
o n e n o d e i s n o t a n a l c a n d i d a t e r o o t n o d e a n d t h u s n o t s t o r e d o n t h e s t a c k . T h u s ,
0 p
C
j C j ? 1 , w h e r e j C j i s t h e n u m b e r o f n o d e s i n c o m p o n e n t C . P
2
=
X
C 2 S C C
p
C
,
w h e r e S C C i s t h e s e t o f a l l s t r o n g l y c o n n e c t e d c o m p o n e n t s i n t h e i n p u t g r a p h . U s i n g
t h e i n e q u a l i t y f o r p
C
w e g e t 0 P
2
n ? s = P
1
< P
T
. T h u s , T a r j a n ' s a l g o r i t h m
a l w a y s s t o r e s m o r e n o d e s o n t h e s t a c k t h a n A l g o r i t h m 1 , a n d A l g o r i t h m 2 s t o r e s a t
m o s t a s m a n y n o d e s o n t h e s t a c k a s A l g o r i t h m 1 . A c c o r d i n g t o o u r e x p e r i e n c e s , P
2
i s a l m o s t a l w a y s m u c h s m a l l e r t h a n P
T
a n d P
1
.
N o t e t h a t i f t h e g r a p h d o e s n o t c o m p l e t e l y t i n t o t h e m a i n m e m o r y , t h e s p a c e
s a v i n g s i n A l g o r i t h m s 1 a n d 2 m a y r e d u c e t h e n u m b e r o f d i s k o p e r a t i o n s s i g n i c a n t l y .
6 T r a n s i t i v e c l o s u r e c o m p u t a t i o n
A l g o r i t h m 2 c a n b e u s e d a s a b a s i s f o r a s i m p l e a n d e c i e n t t r a n s i t i v e c l o s u r e
a l g o r i t h m . T h e m a i n i d e a o f t h e a l g o r i t h m i s t o c o m p u t e t h e s u c c e s s o r s e t s ( t h e
n o d e s r e a c h a b l e v i a a n o n - n u l l p a t h ) o n l y f o r t h e n a l c a n d i d a t e r o o t s .
T h e a l g o r i t h m i s p r e s e n t e d i n F i g u r e 4 . C o n s i d e r a s t r o n g l y c o n n e c t e d c o m p o -
n e n t C . E a c h n o d e o f C h a s t h e s a m e s u c c e s s o r s e t S u c c C ] . S u c c C ] c o n s i s t s o f t w o
p a r t s : F i r s t , i f C i s a n o n t r i v i a l c o m p o n e n t S u c c C ] c o n t a i n s e a c h n o d e o f C . T h e
n o d e s o f C a r e i n c l u d e d i n t o S u c c C ] b y i n s e r t i n g e a c h n o d e i n t o t h e s u c c e s s o r s e t o f
i t s n a l c a n d i d a t e r o o t ( l i n e s 1 2 a n d 2 4 ) . S e c o n d , S u c c C ] c o n t a i n s t h e n o d e s i n t h e
8
8/11/2019 Traversal Connected Compnents
9/14
c o m p o n e n t s a d j a c e n t f r o m C a n d t h e i r s u c c e s s o r s e t s . T h e s e a r e c o l l e c t e d d u r i n g
t h e p r o c e s s i n g o f e a c h n o d e v o f c o m p o n e n t C . W h e n t h e e d g e s l e a v i n g n o d e v a r e
s c a n n e d w e i n s e r t a n a l c a n d i d a t e r o o t o f e a c h c o m p o n e n t a d j a c e n t f r o m v i n t o a
l o c a l s e t R o o t s v ] ( l i n e 7 ) . A f t e r t h i s , t h e n o d e s i n R o o t s v ] a n d t h e i r s u c c e s s o r s e t s
a r e a d d e d i n t o t h e s u c c e s s o r s e t o f t h e n a l c a n d i d a t e r o o t o f n o d e v ( l i n e 9 ) .
W h e n c o m p o n e n t C i s f u l l y d e t e c t e d w e c o m b i n e t h e s u c c e s s o r s e t s o f i t s n a l
c a n d i d a t e r o o t s t o g e t S u c c C ] ( l i n e 1 7 ) . S u c c C ] i s p r o p a g a t e d t o e a c h n a l c a n d i -
d a t e r o o t a t l i n e 1 8 . T h u s , a f t e r t h e p r o c e s s i n g o f c o m p o n e n t C t h e s u c c e s s o r s e t o f
e a c h n o d e v o f c o m p o n e n t C c a n b e f o u n d i n S u c c r o o t v ] ] .
T h i s a l g o r i t h m h a s s e v e r a l b e n e t s c o m p a r e d t o p r e v i o u s t r a n s i t i v e c l o s u r e a l -
g o r i t h m s t h a t u s e s t r o n g l y c o n n e c t e d c o m p o n e n t s . F i r s t , t h e e d g e s l e a v i n g a n o d e
a r e s c a n n e d o n l y d u r i n g t h e d e p t h - r s t s e a r c h . T h e y a r e n o t n e e d e d l a t e r , s i n c e t h e
R o o t s s e t c o n t a i n s s u c i e n t i n f o r m a t i o n f o r t h e s u c c e s s o r s e t c o m p u t a t i o n . C o m -
p a r e d t o t h e a l g o r i t h m b y S c h m i t z 4 ] t h i s s a v e s m u c h C P U - t i m e , a n d , i f t h e g r a p h
d o e s n o t f u l l y t i n t o t h e m a i n m e m o r y , a l s o m u c h d i s k I / O . N o t e t h a t t h e R o o t s s e t
o f a n o d e i s l o c a l : i t i s n o t n e e d e d a f t e r t h e a l g o r i t h m e x i t s a n o d e . S e c o n d , a ( p a r -
t i a l ) s u c c e s s o r s e t i s c o m p u t e d o n l y f o r e a c h n a l c a n d i d a t e r o o t , n o t f o r a l l n o d e s
a s i n 2 ] . A c c o r d i n g t o o u r e x p e r i e n c e s , t h e s e t o f n a l c a n d i d a t e r o o t n o d e s u s u a l l y
c o n t a i n s o n l y a s m a l l n u m b e r o f n o d e s t h a t a r e n o t a c t u a l c o m p o n e n t r o o t s . T h u s ,
t h e u n i o n o p e r a t i o n a t l i n e 9 o f p r o c e d u r e T C u s u a l l y i n s e r t s t h e n o d e s d i r e c t l y t o
t h e s u c c e s s o r s e t o f t h e c o m p o n e n t r o o t .
9
8/11/2019 Traversal Connected Compnents
10/14
A c k n o w l e d g e m e n t s
W e t h a n k O t t o N u r m i a n d t h e a n o n y m o u s r e f e r e e s f o r m a n y u s e f u l c o m m e n t s o n
t h e m a n u s c r i p t .
R e f e r e n c e s
1 ] A . V . A h o , J . E . H o p c r o f t , a n d J . D . U l l m a n . D a t a S t r u c t u r e s a n d A l g o r i t h m s .
A d d i s o n - W e s l e y , R e a d i n g , M a s s . , 1 9 8 3 .
2 ] J . E v e a n d R . K u r k i - S u o n i o . O n c o m p u t i n g t h e t r a n s i t i v e c l o s u r e o f a r e l a t i o n .
A c t a I n f o r m a t i c a , 8 : 3 0 3 { 3 1 4 , 1 9 7 7 .
3 ] B . J i a n g . I / O - a n d C P U - o p t i m a l r e c o g n i t i o n o f s t r o n g l y c o n n e c t e d c o m p o n e n t s .
I n f o r m a t i o n P r o c e s s i n g L e t t e r s , 4 5 ( 3 ) : 1 1 1 { 1 1 5 , M a r c h 1 9 9 3 .
4 ] L . S c h m i t z . A n i m p r o v e d t r a n s i t i v e c l o s u r e a l g o r i t h m . C o m p u t i n g , 3 0 : 3 5 9 { 3 7 1 ,
1 9 8 3 .
5 ] M . S h a r i r . A s t r o n g - c o n n e c t i v i t y a l g o r i t h m a n d i t s a p p l i c a t i o n i n d a t a o w
a n a l y s i s . C o m p u t e r s a n d M a t h e m a t i c s w i t h A p p l i c a t i o n s , 7 : 6 7 { 7 2 , 1 9 8 1 .
6 ] R . T a r j a n . D e p t h r s t s e a r c h a n d l i n e a r g r a p h a l g o r i t h m s . S I A M J o u r n a l o f
C o m p u t i n g , 1 ( 2 ) : 1 4 6 { 1 6 0 , J u n e 1 9 7 2 .
1 0
8/11/2019 Traversal Connected Compnents
11/14
( 1 ) p r o c e d u r e V I S I T ( v ) ;
( 2 ) b e g i n
( 3 ) r o o t v ] : = v ; I n C o m p o n e n t v ] : = F a l s e ;
( 4 ) P U S H ( v ; s t a c k ) ;
( 5 ) f o r e a c h n o d e w s u c h t h a t ( v ; w ) 2 E d o b e g i n
( 6 ) i f w i s n o t a l r e a d y v i s i t e d t h e n V I S I T ( w ) ;
( 7 ) i f n o t I n C o m p o n e n t w ] t h e n r o o t v ] : = M I N ( r o o t v ] ; r o o t w ] )
( 8 ) e n d ;
( 9 ) i f r o o t v ] = v t h e n
( 1 0 ) r e p e a t
( 1 1 ) w : = P O P ( s t a c k ) ;
( 1 2 ) I n C o m p o n e n t w ] : = T r u e ;
( 1 3 ) u n t i l w = v
( 1 4 ) e n d ;
( 1 5 ) b e g i n / * M a i n p r o g r a m * /
( 1 6 ) s t a c k : = ; ;
( 1 7 ) f o r e a c h n o d e v 2 V d o
( 1 8 ) i f v i s n o t a l r e a d y v i s i t e d t h e n V I S I T ( v )
( 1 9 ) e n d .
F i g u r e 1 : T a r j a n ' s a l g o r i t h m d e t e c t s t h e s t r o n g l y c o n n e c t e d c o m p o n e n t s o f g r a p h
G = ( V ; E ) .
1 1
8/11/2019 Traversal Connected Compnents
12/14
( 1 ) p r o c e d u r e V I S I T 1 ( v ) ;
( 2 ) b e g i n
( 3 ) r o o t v ] : = v ; I n C o m p o n e n t v ] : = F a l s e ;
( 4 ) f o r e a c h n o d e w s u c h t h a t ( v ; w ) 2 E d o b e g i n
( 5 ) i f w i s n o t a l r e a d y v i s i t e d t h e n V I S I T 1 ( w ) ;
( 6 ) i f n o t I n C o m p o n e n t w ] t h e n r o o t v ] : = M I N ( r o o t v ] ; r o o t w ] )
( 7 ) e n d ;
( 8 ) i f r o o t v ] = v t h e n b e g i n
( 9 ) I n C o m p o n e n t v ] : = T r u e ;
( 1 0 ) w h i l e T O P ( s t a c k ) > v d o b e g i n
( 1 1 ) w : = P O P ( s t a c k ) ;
( 1 2 ) I n C o m p o n e n t w ] : = T r u e ;
( 1 3 ) e n d
( 1 4 ) e n d e l s e P U S H ( v ; s t a c k ) ;
( 1 5 ) e n d ;
( 1 6 ) b e g i n / * M a i n p r o g r a m * /
( 1 7 ) s t a c k : = ; ;
( 1 8 ) f o r e a c h n o d e v 2 V d o
( 1 9 ) i f v i s n o t a l r e a d y v i s i t e d t h e n V I S I T 1 ( v )
( 2 0 ) e n d .
F i g u r e 2 : A l g o r i t h m 1 s t o r e s o n l y n o n r o o t n o d e s o n t h e s t a c k .
1 2
8/11/2019 Traversal Connected Compnents
13/14
( 1 ) p r o c e d u r e V I S I T 2 ( v ) ;
( 2 ) b e g i n
( 3 ) r o o t v ] : = v ; I n C o m p o n e n t v ] : = F a l s e ;
( 4 ) f o r e a c h n o d e w s u c h t h a t ( v ; w ) 2 E d o b e g i n
( 5 ) i f w i s n o t a l r e a d y v i s i t e d t h e n V I S I T 2 ( w ) ;
( 6 ) i f n o t I n C o m p o n e n t r o o t w ] ] t h e n r o o t v ] : = M I N ( r o o t v ] ; r o o t w ] )
( 7 ) e n d ;
( 8 ) i f r o o t v ] = v t h e n
( 9 ) i f T O P ( s t a c k ) v t h e n
( 1 0 ) r e p e a t
( 1 1 ) w : = P O P ( s t a c k ) ;
( 1 2 ) I n C o m p o n e n t w ] : = T r u e ;
( 1 3 ) u n t i l T O P ( s t a c k ) < v ;
( 1 4 ) e l s e I n C o m p o n e n t v ] : = T r u e ;
( 1 5 ) e l s e i f r o o t v ] i s n o t o n s t a c k t h e n P U S H ( r o o t v ] ; s t a c k ) ;
( 1 6 ) e n d ;
( 1 7 ) b e g i n / * M a i n p r o g r a m * /
( 1 8 ) I n i t i a l i z e s t a c k t o c o n t a i n a v a l u e
8/11/2019 Traversal Connected Compnents
14/14
( 1 ) p r o c e d u r e T C ( v ) ;
( 2 ) b e g i n
( 3 ) r o o t v ] : = v ; I n C o m p o n e n t v ] : = F a l s e ;
( 4 ) f o r e a c h n o d e w s u c h t h a t ( v ; w ) 2 E d o b e g i n
( 5 ) i f w i s n o t a l r e a d y v i s i t e d t h e n T C ( w ) ;
( 6 ) i f n o t I n C o m p o n e n t r o o t w ] ] t h e n r o o t v ] : = M I N ( r o o t v ] ; r o o t w ] )
( 7 ) e l s e R o o t s v ] : = R o o t s v ] f r o o t w ] g
( 8 ) e n d ;
( 9 ) S u c c r o o t v ] ] : = S u c c r o o t v ] ]
r 2 R o o t s v ]
( f r g S u c c r ] ) ;
( 1 0 ) i f r o o t v ] = v t h e n
( 1 1 ) i f T O P ( s t a c k ) v t h e n b e g i n
( 1 2 ) S u c c v ] : = S u c c v ] f v g ;
( 1 3 ) r e p e a t
( 1 4 ) w : = P O P ( s t a c k ) ;
( 1 5 ) I n C o m p o n e n t w ] : = T r u e ;
( 1 6 ) i f v 6= w t h e n b e g i n
( 1 7 ) S u c c v ] : = S u c c v ] S u c c w ] ;
( 1 8 ) S u c c w ] : = S u c c v ] / * P o i n t e r a s s i g n m e n t , n o t a c o p y * /
( 1 9 ) e n d
( 2 0 ) u n t i l T O P ( s t a c k ) < v ;
( 2 1 ) e n d e l s e I n C o m p o n e n t v ] : = T r u e ;
( 2 2 ) e l s e b e g i n
( 2 3 ) i f r o o t v ] i s n o t o n s t a c k t h e n P U S H ( r o o t v ] ; s t a c k ) ;
( 2 4 ) S u c c r o o t v ] ] : = S u c c r o o t v ] ] f v g
( 2 5 ) e n d
( 2 6 ) e n d ;
( 2 7 ) b e g i n / * M a i n p r o g r a m * /
( 2 8 ) I n i t i a l i z e s t a c k t o c o n t a i n a v a l u e