ΠΛΗ30 ΜΑΘΗΜΑ 2.3 (ΕΚΤΥΠΩΣΗ)
-
Upload
dimitris-psounis -
Category
Education
-
view
80 -
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) *%) +.%+
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
() % +)).
" !
() % +)).