Upload
dimitris-psounis
View
24
Download
2
Embed Size (px)
DESCRIPTION
1) Απληστοι Αλγόριθμοι 1.1) Συντομότερο Μονοπάτι σε Γράφο1.1.1) Ο αλγόριθμος του Dijkstra1.2) Ελάχιστο Συνδετικό Δένδρο1.2.1) Ο αλγόριθμος του Prim1.2.2) Ο αλγόριθμος του Kruskal1.3) Ελαχιστοποίηση Νομισμάτων με ΡέσταΕφαρμογές1) Επιστροφή χρηματικού ποσού για ρέστα2) Άπληστος Αλγόριθμος για Χρωματισμό Γραφήματος
Citation preview
30 2:
2.3:
.
1.
1.
1. Dijkstra
2.
1. Prim
2. O Kruskal
2 , 30, 2.3:
2. O Kruskal
3.
.
1.
.
:
(-)
3 , 30, 2.3:
.
Dijkstra
Prim
Kruskal
B.
4 , 30, 2.3:
2 , :
( 2.1)
( 2.2)
( 2.3)
.
B. 1.
5 , 30, 2.3:
:
: .
:
,
.
: .
:1. .2. .3. .4. ,
.
. 1. 1.
6 , 30, 2.3:
: G=(V,E,W), sV, t V. s t.
:
Dijkstra: Dijkstra: (? )
.
. 1. 1.
7 , 30, 2.3:
Dijkstra:
:
L[.]=+ L[s]=0 : :
( )
:
t.
. 1. 1. (Dijkstra-)
8 , 30, 2.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. (Dijkstra- )
9 , 30, 2.3:
v1 v7 0:
v2(-,+) v4(-,+)
9
7
3 9 1
V1(0,-)
v3(-,+) v6(-,+)
v7(-,+)
4
2
6
1
3
2
7
5
v5(-,+)
1:
v2(v1,9)
. 1. 1. (Dijkstra- )
10 , 30, 2.3:
v4(-,+)
9
7
3 9 1
v1 v2,v3. v2,v3
V1(0,-)
v3(v1,4) v6(-,+)
v7(-,+)
4
2
6
1
3
2
7
5
v5(-,+)
. 1. 1. (Dijkstra- )
11 , 30, 2.3:
2:
v2(v3,6) v4(-,+)
9
7
3 9 1
v3 v2,v5,v6. v2,v5,v6
V1(0,-)
v3(v1,4) v6(v3,10)
v7(-,+)
4
2
6
1
3
2
7
5
v5(v3,5)
. 1. 1. (Dijkstra- )
12 , 30, 2.3:
3:
v2(v3,6) v4(v5,14)
9
7
3 9 1
v5 v2,v4,v6. v4,v6
V1(0,-)
v3(v1,4) v6(v5,7)
v7(-,+)
4
2
6
1
3
2
7
5
v5(v3,5)
. 1. 1. (Dijkstra- )
13 , 30, 2.3:
4:
v2(v3,6) v4(v2,13)
9
7
3 9 1
v2 v4. v4
V1(0,-)
v3(v1,4) v6(v5,7)
v7(-,+)
4
2
6
1
3
2
7
5
v5(v3,5)
. 1. 1. (Dijkstra- )
14 , 30, 2.3:
5:
v2(v3,6) v4(v2,13)
9
7
3 9 1
v6 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. (Dijkstra- )
15 , 30, 2.3:
6:
v2(v3,6) v4(v2,13)
9
7
3 9 1
v7 . v1-v3-v5-v6-v7 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. (Dijkstra )
16 , 30, 2.3:
Dijkstra:
: :
OPT ( s t) C Dijkstra.
Dijkstra , Dijkstra vi
vi .
, vi .
. 1. 2.
17 , 30, 2.3:
: G=(V,E,W), (
:
Prim: (? )
Kruskal: (? )
.
. 1. 2. (1.Prim-)
18 , 30, 2.3:
Prim:
:
: :
.
.
:
.
. 1. 2. (1.Prim-)
19 , 30, 2.3:
procedure Prim(G=(V,E,W))
V={v1}
while |V|
. 1. 2. (1.Prim- )
20 , 30, 2.3:
v1 0:
v2 v4
9
7
3 9 1
V1
V1
v3 v6
v7
4
2
6
1
3
2
7
5
v5
. 1. 2. (1.Prim- )
21 , 30, 2.3:
1:
v2 v4
9
7
3 9 1
V3
V1
v3 v6
v7
4
2
6
1
3
2
7
5
v5
. 1. 2. (1.Prim- )
22 , 30, 2.3:
2:
v2 v4
9
7
3 9 1
V5
V1
v3 v6
v7
4
2
6
1
3
2
7
5
v5
. 1. 2. (1.Prim- )
23 , 30, 2.3:
3:
v2 v4
9
7
3 9 1
V6
V1
v3 v6
v7
4
2
6
1
3
2
7
5
v5
. 1. 2. (1.Prim- )
24 , 30, 2.3:
4:
v2 v4
9
7
3 9 1
V2
V1
v3 v6
v7
4
2
6
1
3
2
7
5
v5
. 1. 2. (1.Prim- )
25 , 30, 2.3:
5:
v2 v4
9
7
3 9 1
V7
V1
v3 v6
v7
4
2
6
1
3
2
7
5
v5
5:
. 1. 2. (1.Prim- )
26 , 30, 2.3:
v2 v4
9
7
3 9 1
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-)
27 , 30, 2.3:
Kruskal:
:
.
: :
.
:
.
. 1. 2. (2.Kruskal - )
28 , 30, 2.3:
procedure Kruskal(G=(V,E,W))
V=
MergeSort(E)
while |V|
1:
. 1. 2. (1.Kruskal- )
29 , 30, 2.3:
v2 v4
9
7
3 9 1
(v3,v5)
V1
v3 v6
v7
4
2
6
1
3
2
7
5
v5
2:
. 1. 2. (1.Kruskal- )
30 , 30, 2.3:
v2 v4
9
7
3 9 1
(v4,v7)
V1
v3 v6
v7
4
2
6
1
3
2
7
5
v5
3:
. 1. 2. (1.Kruskal- )
31 , 30, 2.3:
v2 v4
9
7
3 9 1
(v2,v3)
V1
v3 v6
v7
4
2
6
1
3
2
7
5
v5
4:
. 1. 2. (1.Kruskal- )
32 , 30, 2.3:
v2 v4
9
7
3 9 1
(v5,v6)
V1
v3 v6
v7
4
2
6
1
3
2
7
5
v5
5:
. 1. 2. (1.Kruskal- )
33 , 30, 2.3:
v2 v4
9
7
3 9 1
(v2,v5)
V1
v3 v6
v7
4
2
6
1
3
2
7
5
v5
6:
. 1. 2. (1.Kruskal- )
34 , 30, 2.3:
v2 v4
9
7
3 9 1
(v1,v3)
V1
v3 v6
v7
4
2
6
1
3
2
7
5
v5
7:
. 1. 2. (1.Kruskal- )
35 , 30, 2.3:
v2 v4
9
7
3 9 1
(v6,v7) . : 4+2+1+2+5+1=15
V1
v3 v6
v7
4
2
6
1
3
2
7
5
v5
. 1. 3.
36 , 30, 2.3:
:
20, 5 1 . ,
:
1,45 : 7 1 . 0,77 : 3 , 3 2 .
:
20, 5 1.
. 1. 3. ()
37 , 30, 2.3:
procedure coins(X, V) //X , V:
C=[]sum=0i=1while sum
. 1. 3. ( )
38 , 30, 2.3:
.
OPT=(o1,o2,o3) ( 1,2,3 (20-5-1)
C=(c1,c2,c3) ( c1,c2,c3 (20-5-1) (20-5-1)
1>c1 20 20. o1=c1
2>c2 5 5. o2=c2
c3>o3, . o3=c3
.
. 1. 4. ( )
39 , 30, 2.3:
!!
.
1, 13 29 1, 13 29 39 : 1 29 10 1 ( 11 )
3 13 .
. 1
: 1 , 5 , 9 , 10 , 25 48 S, S.
1. .
40 , 30, 2.3:
2. .
3. .
. 2 G = (V, E) () G (vi,vj) G (vi) (vj).
.
= [v1, , vn], n = | V |.
41 , 30, 2.3:
= [v1, , vn], n = | V |. : i =1 n, vi vi v1, , vi-1. :
a
f
c e
d
b
= [ a, b, c, d, e, f]
: a b c d e f: 1 1 2 2 3 3
. 2() ; . () .() .
() ( ).
42 , 30, 2.3:
( ).