Download - ΠΛΗ30 ΜΑΘΗΜΑ 2.3 (ΕΚΤΥΠΩΣΗ)

Transcript
  • 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) *%) +.%+

    V1

    v3 v6

    v7

    4

    2

    6

    1

    3

    2

    7

    5

    v5

    ,! 7:

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

    # !

    v2 v4

    9

    7

    3 91

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

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

    V1

    v3 v6

    v7

    4

    2

    6

    1

    3

    2

    7

    5

    v5

    ,. )- *1. 3. 5! -% .

    $ !

    ,:

    *+) .(') ) %* 20)3%, 5)3% & 1

    )$. .') % ) .8') . )' 3, )(3%"

    !" -% %-% ' ) .5%

    ':

    1,45 )' 3: 1. $ )*% 7 )&) & 1 )%).

    0,77 )' 3: 1. $ )*% 3 )&), 3 )%) & 2

    %).

    " ":

    .)2) 3 ) ) 20), .) ) )

    5) & .) '! -%)" ) 1).

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

    % !

    procedure coins(X, V) //X ! , V:

    C=[]sum=0i=1while sumc1 + !%) .('% ) .8) 20

    ) & " .() ).2) ) ) 20). o1=c1 )% )* % ($) 2>c2 + !%) .('% ) .8) 5

    ) & " .() ).2) ) ) 5). o2=c2 )% )* % .(') c3>o3, + ) 1 " $)%)" +$

    )" .%) *+ % ' -)*. o3=c3 .%-" $ ' ) .5) " )*% 1..

    ,. )- *1. 4. 5! -% . (+)2 ")

    ' !

    " +)% )*% % 1."!!

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

    +) % .(') % +)! " %* 2*" 1, 13 & 29 +) % .(') % +)! " %* 2*" 1, 13 & 29

    )' 3 & .') % ) .8') . 2*" 39 )' 3:

    " ).2) 1 &. -% 29 )' 3 & 10 &. ' 1

    )' 3 ($% 11 &. )

    1. $ )*% 3 &. -% 13 )' 3.

    . &!)"5 ! 1

  • . &!)"5 ! 2

    4%" )%" 5!" G = (V, E) )*% %) )&3%

    &) *-% (( 3) " & '5." ' 5!" G . 3) &) &! (vi,vj)

    ' 5!" G % ($) ( 3(vi) = ( 3(vj). 4%" )%"

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

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

    '&)& .% +2 = [v1, , vn], ' n = | V |. ) 1 % +2 '! .(')

    "( !

    '&)& .% +2 = [v1, , vn], ' n = | V |. ) 1 % +2 '! .(')

    % &' ( -$: i =1 .-" n, %)) % & '5! vi

    & ) +'% ( 3 ' +)% ( )* '" )*%)" " vi )2$ -%

    v1, , vi-1. 4% +) )&.)" ' ' ( -$ 5*%)

    &' 5:

    a

    f

    c e

    d

    b

    = [ a, b, c, d, e, f]

    & '5!: a b c d e f

    ( 3: 1 1 2 2 3 3

    . &!)"5 ! 2

    () *% " ( -$ "; &!) % %! ".

    (,) /*) % '& ( %' ' *'.

    () +)*2) " % )5 6) ) +!) 5 )

    .%% ( -.

    () +)*2) " % )5 6) ) +!) 5

    () % +)).

    " !

    () % +)).