ΠΛΗ30 ΜΑΘΗΜΑ 2.3...

Click here to load reader

  • date post

    22-Feb-2017
  • Category

    Education

  • view

    75
  • download

    1

Embed Size (px)

Transcript of ΠΛΗ30 ΜΑΘΗΜΑ 2.3...

  • 30

    2:

    2.3:

    ! " #$%"

    !"#$%&

    ' ()**+*

    ,% -

    ' ./%0#"&1

    !

    ' ./%0#"&1

    2 ()3456+

    7

    (+

    . &" ' !"

    ( ' !" )*%:

    *)+

    (-)

    *)+ ,

    )(%&! ()+*" -% " "

    !

    )(%&! ()+*" -% " "

    " " % )(* %-% ..

    *)+

    " " ' Dijkstra % )$ ) ' '%) '

    %$

    " " ' Prim % )$ ) (' '%+)&$

    .%+ '

    " " ' Kruskal % )$ ) (' '%+)&$

    .%+ '

    B. )- *)(%&." ()+*" *-%

    " !

    % 2 )% ' !" ($) ) )(%&." ' .('%

    %'()*, -" )%&." )+*)" % &&)'! )%" *':

    )(%&! * ) & ,*)') ( 2.1)

    )(%&! ' '%&$ $ ( 2.2)

    ( 2.3)

    / ('% & +)&+)" )(%&." &&)'!" *-% ' )*% )&"

    $".

  • B. )- *1.

    # !

    0% .(') .% 1 ' .() " )2!" +)":

    + " " !": &'* -% )3% +)*

    % 1. $.

    + -% ,.-% . '" 3%: * % $') 1

    ) ).') -" )(%&! ()+*" &&)'!" ' '

    &)* % '*') % 1. $ ) & ' 1!,

    '%!-" ) %+ !.

    4%" " " +)% )*% % 1.":

    % +)*2') +)% )*% 1." +*%') .% % +).

    % +)*2') )*% 1." +*%') +)2 ":

    1. )- $) " " +)% ) .5) % 1. $.

    2. )&%*6') % 1. $ & % $ ' ' '.

    3. '& *%') " $)" ) 1 & ! .

    4. )*(%') $ ' ' ' )* ' +5. '%,

    )*% &$) % 1. $.

    ,. )- *1. 1. '%) % ) 5

    $ !

    ,: *%) 5" G=(V,E,W), 5) * sV, ) " t V.

    7)* '%) % % s % t.

    ))!') .%% ' '*6) '%) %:

    " ' Dijkstra: " ' Dijkstra:

    )- )* (? ) ) &) )%8 1 *&) '%)

    % % ) % 5) * ) * & '5!

    '&)& .% % & '5! ' .() ) %

    5) * .(-% 1!.

    ,. )- *1. 1. '%) % ) 5

    % !

    & 5 ' Dijkstra:

    % (&*:

    .') )" " )&.)" L[.]=+9 )&" " 5) *" ' .() L[s]=0

    ) &) 1!: ) &) 1!:

    &)* & '5! ) & ) &" "

    &.%)"

    3%% )&.)" -% )%&3% &.%-%

    & '53% () ) *- ' 1 ))* &$) % %

    & '5! ' &!&))

    ) ":

    0% &)* & '5! ) $ t.

    ,. )- *1. 1. '%) % ) 5 (Dijkstra-#)'+&3+&")

    & !

    procedure Dijkstra(G=(V,E,W), s, t)

    L[s]=0T=Vfor all xV-{s}

    L[x]=+end for

    while tT do vT L[v]T=T-{v}for all xT v:

    if (L[v]+W[v,x]

  • ,. )- *1. 1. '%) % ) 5(Dijkstra- +) &.)")

    ' !

    #(%') '%) % % v1 % v7 ,! 0:

    v2(-,+9) v4(-,+9)

    9

    7

    3 91

    (&* )&)3% & '53%

    V1(0,-)

    v3(-,+9) v6(-,+9)

    v7(-,+9)

    4

    2

    6

    1

    3

    2

    7

    5

    v5(-,+9)

    ,! 1:

    v2(v1,9)

    ,. )- *1. 1. '%) % ) 5(Dijkstra- +) &.)")

    ( !

    v4(-,+9)

    9

    7

    3 91

    &* & '5!" v12) & '53% v2,v3. - )&)3% v2,v3

    V1(0,-)

    v3(v1,4) v6(-,+9)

    v7(-,+9)

    4

    2

    6

    1

    3

    2

    7

    5

    v5(-,+9)

    ,. )- *1. 1. '%) % ) 5(Dijkstra- +) &.)")

    (( !

    ,! 2:

    v2(v3,6) v4(-,+9)

    9

    7

    3 91

    &* & '5!" v32) & '53% v2,v5,v6. - )&)3% v2,v5,v6

    V1(0,-)

    v3(v1,4) v6(v3,10)

    v7(-,+9)

    4

    2

    6

    1

    3

    2

    7

    5

    v5(v3,5)

    ,. )- *1. 1. '%) % ) 5(Dijkstra- +) &.)")

    ( !

    ,! 3:

    v2(v3,6) v4(v5,14)

    9

    7

    3 91

    &* & '5!" v52) & '53% v2,v4,v6. - )&)3% v4,v6

    V1(0,-)

    v3(v1,4) v6(v5,7)

    v7(-,+9)

    4

    2

    6

    1

    3

    2

    7

    5

    v5(v3,5)

  • ,. )- *1. 1. '%) % ) 5(Dijkstra- +) &.)")

    ( !

    ,! 4:

    v2(v3,6) v4(v2,13)

    9

    7

    3 91

    &* & '5!" v22) & '5!" v4. - )&." v4

    V1(0,-)

    v3(v1,4) v6(v5,7)

    v7(-,+9)

    4

    2

    6

    1

    3

    2

    7

    5

    v5(v3,5)

    ,. )- *1. 1. '%) % ) 5(Dijkstra- +) &.)")

    (" !

    ,! 5:

    v2(v3,6) v4(v2,13)

    9

    7

    3 91

    &* & '5!" v62) & '53% v4,v7. - )&)" v7

    V1(0,-)

    v3(v1,4) v6(v5,7)

    v7(v6,12)

    4

    2

    6

    1

    3

    2

    7

    5

    v5(v3,5)

    ,. )- *1. 1. '%) % ) 5(Dijkstra- +) &.)")

    (# !

    ,! 6:

    v2(v3,6) v4(v2,13)

    9

    7

    3 91

    &* & '5!" v7." *'. '%) % v1-v3-v5-v6-v7 ) 1 " 4+1+2+5=12

    V1(0,-)

    v3(v1,4) v6(v5,7)

    v7(v6,12)

    4

    2

    6

    1

    3

    2

    7

    5

    v5(v3,5)

    ,. )- *1. 1. '%) % ) 5 (Dijkstra +)2 ")

    ($ !

    +)2 " *' Dijkstra:

    )- $) $ ' '*6) " " +)% )*%

    1. &

    '1*6') ): '1*6') ):

    OPT 1. $ (&'* & '53% % s % t)

    C $ ' ) .5) " ' Dijkstra.

    :) % ' '*6) Dijkstra )*% 1."

    , )! ' Dijkstra )*% ! %

    &* " & '5!" vi % +)% !% '! () .% % % 5- % vi )

    & ) &".

    , * % &)* vi .() & ) &" )"

    " ')" & '5.".

  • ,. )- *1. 2. ( '%+)& .%+

    (% !

    ,: *%) 5" G=(V,E,W), 7)* .% )( '%+)&

    +.%+ (+.%+ ' ) 1%) )" " & '5." & .() )( 1 "

    ))!') +$ '" ' '*6'% )( '%+)&

    +.%+ :

    " ' Prim:

    )- )* (? ) )! &!" ' .() .% " &

    '%+)& +.%+ & & " )&" ' '%+)&$

    +.%+ ' +!) % 1. $

    " ' Kruskal:

    )- )* (? ) &! )(*' 1 '" ' +)% 1 *&)

    +.%+ & +)% +' )* &$& $) % )%--)*

    % $ 3) % &&)')* )( '%+)& +.%+ .

    ,. )- *1. 2. ( '%+)& .%+ (1.Prim-& 5)

    (& !

    & 5 ' Prim:

    % (&*:

    )$) '* ) & '5! '%+)& +.%+

    ) &) 1!: ) &) 1!:

    /8!5)" &." % '% '%+)& +.%+ )*% )&)*%)"

    &." ' .('% .% '" & ' &&)'! '%+)&

    +.%+ & '" & )&" ' '%+)&$ +.%+ '.

    .) &! ) )( 1 " " '8!5)"

    &! )) +.%+ &3" & & " ' +)% %!&)

    +.%+ .

    ) ":

    0% )" & '5." )($% +.%+ .

    ,. )- *1. 2. ( '%+)& .%+ (1.Prim-#)'+&3+&")

    (' !

    procedure Prim(G=(V,E,W))

    V={v1}

    while |V|

  • ,. )- *1. 2. ( '%+)& .%+ (1.Prim- +) &.)")

    ( !

    ,! 1:

    v2 v4

    9

    7

    3 91

    V3 *%) +.%+

    V1

    v3 v6

    v7

    4

    2

    6

    1

    3

    2

    7

    5

    v5

    ,. )- *1. 2. ( '%+)& .%+ (1.Prim- +) &.)")

    !

    ,! 2:

    v2 v4

    9

    7

    3 91

    V5 *%) +.%+

    V1

    v3 v6

    v7

    4

    2

    6

    1

    3

    2

    7

    5

    v5

    ,. )- *1. 2. ( '%+)& .%+ (1.Prim- +) &.)")

    !

    ,! 3:

    v2 v4

    9

    7

    3 91

    V6 *%) +.%+

    V1

    v3 v6

    v7

    4

    2

    6

    1

    3

    2

    7

    5

    v5

    ,. )- *1. 2. ( '%+)& .%+ (1.Prim- +) &.)")

    " !

    ,! 4:

    v2 v4

    9

    7

    3 91

    V2 *%) +.%+

    V1

    v3 v6

    v7

    4

    2

    6

    1

    3

    2

    7

    5

    v5

  • ,. )- *1. 2. ( '%+)& .%+ (1.Prim- +) &.)")

    # !

    ,! 5:

    v2 v4

    9

    7

    3 91

    V7 *%) +.%+

    V1

    v3 v6

    v7

    4

    2

    6

    1

    3

    2

    7

    5

    v5

    ,! 5:

    ,. )- *1. 2. ( '%+)& .%+ (1.Prim- +) &.)")

    $ !

    v2 v4

    9

    7

    3 91

    V4 *%) +.%+

    ." *'. , " (' '%+)&$ .%+ ': 4+2+1+2+5+1=15

    V1

    v3 v6

    v7

    4

    2

    6

    1

    3

    2

    7

    5

    v5

    ,. )- *1. 2. ( '%+)& .%+ (2.Kruskal-& 5)

    % !

    & 5 ' Kruskal:

    % (&*:

    )- $) 2% -% 1 3% -% &3% ) $2' ) .

    ) &) 1!: ) &) 1!:

    2)6) ))% &! ) 1 % 2%.

    % +)% +' )* &$&" )) )( '%+)& +.%+

    ) ":

    0% )" & '5." )($% +.%+ .

    ,. )- *1. 2. ( '%+)& .%+ (2.Kruskal - #)'+&3+&")

    & !

    procedure Kruskal(G=(V,E,W))

    V=

    MergeSort(E)

    while |V|

  • ,! 1:

    ,. )- *1. 2. ( '%+)& .%+ (1.Kruskal- +) &.)")

    ' !

    v2 v4

    9

    7

    3 91

    (v3,v5) *%) +.%+

    V1

    v3 v6

    v7

    4

    2

    6

    1

    3

    2

    7

    5

    v5

    ,! 2:

    ,. )- *1. 2. ( '%+)& .%+ (1.Kruskal- +) &.)")

    !

    v2 v4

    9

    7

    3 91

    (v4,v7) *%) +.%+

    V1

    v3 v6

    v7

    4

    2

    6

    1

    3

    2

    7

    5

    v5

    ,! 3:

    ,. )- *1. 2. ( '%+)& .%+ (1.Kruskal- +) &.)")

    ( !

    v2 v4

    9

    7

    3 91

    (v2,v3) *%) +.%+

    V1

    v3 v6

    v7

    4

    2

    6

    1

    3

    2

    7

    5

    v5

    ,! 4:

    ,. )- *1. 2. ( '%+)& .%+ (1.Kruskal- +) &.)")

    !

    v2 v4

    9

    7

    3 91

    (v5,v6) *%) +.%+

    V1

    v3 v6

    v7

    4

    2

    6

    1

    3

    2

    7

    5

    v5

  • ,! 5:

    ,. )- *1. 2. ( '%+)& .%+ (1.Kruskal- +) &.)")

    !

    v2 v4

    9

    7

    3 91

    (v2,v5) +)% *%) +.%+ * +' )* &$&

    V1

    v3 v6

    v7

    4

    2

    6

    1

    3

    2

    7

    5

    v5

    ,! 6:

    ,. )- *1. 2. ( '%+)& .%+ (1.Kruskal- +) &.)")

    " !

    v2 v4

    9

    7

    3 91

    (v1,v3) *%) +