Traversal Connected Compnents

download Traversal Connected Compnents

of 14

Transcript of Traversal Connected Compnents

  • 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