第六章 圖形( graph )結構
Post on 06-Jan-2016
121 Views
Preview:
DESCRIPTION
TRANSCRIPT
-
Graph6-1 6-2 6-3 6-4 6-5 6-6 AOV
-
6-1 ( ) (Performance Evaluation and Review Technique, PERT)
-
6-1-11736EulerKoenigsbergKoenigsbergKoenigsbergprgalKneiphof4agADEulerVertexEulerian Walk or Eulerian CycleEulerian Chain
A
B
D
C
E
1
2
3
4
5
6
7
8
-
6-1-2Terminology(graph)(vertice)(edge)G=(V,E)V E Undirected GraphV={A,B,C,D,E}E={(A,B) ,(A,E) ,(B,C),(B,D),(C,D),(C,E),(D,E)}( ) (A,B)=(B,A)Directed GraphV={A,B,C,D,E}E={,,,,,}< >
B
C
E
D
A
B
C
E
D
A
-
Complete GraphGNN(N-1)/2N(N-1)
B
C
E
D
A
B
C
E
D
A
-
SubgraphGG G'G''GG'''G
B
C
E
D
A
B
D
A
C
E
D
A
G
G'
G''
C
E
D
G'''
-
PathG A E {(A,B), (B,E)}{(A,B),(B,C),(C,D),(D,E)}
B
C
E
D
A
B
C
E
D
A
-
Simple Path
B
C
E
D
A
B
C
E
D
A
-
CycleG {(A,B),(B,D),(D,E),(E,C),(C,A)}A
B
C
E
D
A
B
C
E
D
A
B
C
E
D
A
-
ConnectedStrongly ConnectedVi Vj Vi VjVi Vj Vj Vi Vi VjG
-
Connected Component2
B
C
A
E
D
-
degreein degree/out degreeG A 4
V V A 1 3
B
C
E
D
A
B
C
E
D
A
-
6-1-3(multigraph) 2 ( 2 ) bipartite graphG = ( V , E ) V1 V2E e ( x , y ) x V1 y V2bipartite graph GV1={A C E G}V2={B DF H}
B
E
D
A
B
E
D
A
H
F
E
G
-
6-2 6-2-1(adjacency matrix)
-
(adjacency matrix)
1
0
1
2
3
5
4
1
2
3
4
5
0
0
1
1
0
1
1
0
1
0
1
1
0
1
1
0
1
0
0
1
1
0
1
1
2
3
4
5
-
(adjacency matrix)
2
3
4
1
1
0
1
2
3
4
0
0
1
0
1
1
0
0
0
0
0
1
0
0
1
2
3
4
-
6-2-2(adjacent list) 0 1 n e n 2 * e ( )n e O ( n + e ) struct list{ int val;struct list *next;};typedef struct list node;typedef node *link;struct list head[6];
-
(adjacent list)
2
3
5
4
1
Null
2
5
Null
2
V1
Null
1
3
4
V2
4
5
V3
Null
2
3
5
V4
Null
1
3
4
V5
-
(adjacent list)
2
3
4
1
Null
2
V1
Null
3
4
V2
Null
V3
Null
3
V4
-
6 . 2 . 4 ()
-
6-2-3(adjacency multilist)
MV1V2LINK1V1 V1 V1 NILLINK2V2V2V2NIL
M
V1
V2
LINK1
LINK2
-
(adjacency multilist)
2
3
5
4
1
M1
head
M1
M3
1
M4
M2
M1
1
2
M2
2
M3
M2
1
3
4
5
5
Nil
M6
M3
2
3
M4
M5
M4
2
4
Nil
M5
M5
3
4
M6
M7
M6
3
5
Nil
M7
M7
4
5
Nil
Nil
-
(adjacency multilist)
2
3
4
1
head
1
2
3
4
head
M1
M2
Nil
M4
1
M1
1
2
Nil
Nil
M2
2
3
M3
M4
M3
2
4
Nil
Nil
M4
4
3
Nil
Nil
2
3
4
Nil
M1
M2
M3
-
6-2-4(Indexed Table) n n n
A
B
D
1
C
A
B
4
C
7
D
10
B
C
D
A
C
D
A
B
1
2
3
4
5
6
7
8
D
A
B
C
9
10
11
12
-
6-3 V1V1
-
(DFS)struct list{int val;struct list *next;};typedef struct list node;typedef node *link;struct list* head[9];
void dfs(int current) /* */{link ptr;run[current]=1;printf("[%d] ",current);ptr=head[current]->next;while(ptr!=NULL){if (run[ptr->val]==0) /* */dfs(ptr->val); /* dfs */ptr=ptr->next;}}
Null
2
3
1
Null
1
4
5
2
Null
1
6
7
3
Null
2
5
4
Null
2
4
8
5
Null
3
7
8
6
Null
3
6
7
Null
5
6
8
-
6-3-1(DFS)
2
3
5
4
1
-
(BFS)struct list{int val;struct list *next;};typedef struct list node;typedef node *link;struct list* head[9];
void bfs(int v){node_pointer w;queue_pointer front,rear;front=rear=NULL;printf("%d",v);visited[v]=TRUE;addq(&front,&rear,v);while(front){v=deleteq(&front);for(w=graph[v];w;w=w-vertex]){printf("%d",w->vertex);addq(&front,&rear,w->vertex);visited[w->vertex]=TRUE;}}}
Null
2
3
1
Null
1
4
5
2
Null
1
6
7
3
Null
2
5
4
Null
2
4
8
5
Null
3
7
8
6
Null
3
6
7
Null
5
6
8
-
6-3-2(BFS)
2
3
5
4
1
-
6-3-3(connected)V (Connected Component)
-
6-4 (Spanning Tree)()(cycle)n n-1G=(V,E)TBT BS=(V,T)G (spanning tree)
-
DFS
Null
2
5
1
Null
1
3
4
2
Null
2
4
5
3
2
3
5
4
1
DFS
4
Null
2
1
3
3
4
4
1
5
Null
2
3
5
2
3
5
4
1
DFS
1
3
4
2
-
BFS
Null
2
5
1
Null
1
3
4
2
Null
2
4
5
3
4
Null
1
3
4
5
Null
2
3
5
2
3
5
4
1
BFS
1
3
4
2
2
3
5
4
1
BFS
2
3
4
1
-
MST Minimum Cost Spanning Tree(weight)(Weighted Graph)(distance)(Cost)Network)
1
2
3
5
4
1
6
5
3
2
4
2
2
3
5
1
1
6
5
2
3
4
5
4
1
1
5
1
5
-
PrimPrimeKruskalKruskalPrimePrimeT(u,v)uvTTTn-1GE(G)Oe*log(e)TVTGTU(G)EG(u,t)uU(G)tVT
A
B
C
D
E
F
6
10
10
12
A
B
A
B
E
D
F
C
5
9
6
12
16
8
11
3
7
6
A
C
D
E
F
3
10
12
A
B
6
B
5
8
C
3
A
C
D
E
F
7
10
12
A
B
6
B
5
8
C
3
D
5
-
Prim
10
A
B
E
D
F
C
5
9
6
12
16
8
11
3
7
-
Prim
0
6
2
1
3
4
5
28
16
12
18
14
10
25
24
22
VT
(4,5),(0,1)
(3,2),(3,6),(4,6),(0,1)
(3,4),(4,6),(0,1)
25,28
12,18,24,28
22,24,28
{0,5,4}
{0,5,4,3,2}
{0,5,4,3}
1
4
6
5
3
2
UG
{1,2,3,4,6}
{1,6}
{1,2,3,6}
(0,5),(0,1)
10,28
-
{0,5}
{1,2,3,4,5,6}
(1,2),(3,6),(4,6),(0,1)
16,18,24,28
{0,5,4,3,2,1}
{6}
-
-
-
{0}
{1,2,3,4,5,6}
(1,6),(3,6),(4,6),(0,1)
14,18,24,28
{0,5,4,3,2,1,6}
{}
-
Prim
VT
(1,3),(1,6),(2,4)(2,5),(2,6)
(1,3),(1,6),(2,6)(5,4),(4,6),(3,4)
(1,3),(1,6),(2,4)(2,6),(5,4)
19,21,6,5,11
19,21,1110,14,18
19,21,6,11,10
{1,2,5}
{1,2,5,4,6}
{1,2,5,4}
UG
{3,4,6}
{3}
{3,6}
(1,2),(1,3),(1,6)
16,19,21
-
{1,2}
{3,4,5,6}
-
-
-
{1}
{2,3,4,5,6}
(1,3),(1,6),(5,4)(4,6),(3,4),(3,6)
19,21,1014,18,33
{1,2,5,4,6,3}
{}
16
1
2
3
6
4
5
11
21
14
6
5
10
18
33
19
1
2
3
4
5
-
KruskalGnn-1TGE(G)Oe*log(e)v,wTunion_find()v,wv,wunion(v,w)
-
Kruskal
10
A
B
E
D
F
C
5
9
6
12
16
8
11
3
7
-
Kruskal
0
6
2
1
3
4
5
28
16
12
18
14
10
25
24
22
T'
(0,5)
(2,3)
(1,6)
(1,2)
(3,6)
(3,4)
(4,6)
(4,5)
(0,1)
10
12
14
16
18
22
24
25
28
{0,5}
{0,5},{2,3}
{0,5},{2,3},{1,6}
{0,5},{2,3,1,6}
{0,5},{2,3,1,6}
{0,5},{2,3,1,6,4}
{0,5},{2,3,1,6,4}
{0,5,2,3,1,6,4}
1
2
3
4
5
6
-
Kruskal
6
2
3
4
5
16
T'
(2,5)
(2,4)
(4,5)
(2,6)
(4,6)
(1,2)
(3,4)
(1,3)
(1,6)
5
6
10
11
14
16
18
19
21
{2,5}
{2,5,4}
{2,5,4}
{2,5,4,6}
{2,5,4,6}
{2,5,4,6,1}
{2,5,4,6,1,3}
1
2
3
4
5
1
11
21
14
6
5
10
18
33
19
(3,6)
21
-
SollinSollinGE(G)Oe*log(e)union_find
-
Sollin
10
A
B
E
D
F
C
14
9
6
9
16
8
11
13
7
-
Sollin
(0,5)
(2,3)
(1,6)
(1,2)
(3,6)
(3,4)
(4,6)
(4,5)
(0,1)
10
12
14
16
18
22
24
25
28
Forest
{0,5},{1,6},{2,3,4}
(0,5)
(2,3)
(1,6)
(1,2)
(3,6)
(3,4)
(4,6)
(4,5)
(0,1)
10
12
14
16
18
22
24
25
28
Forest
{0,5},{1,6,2,3,4}
0
6
2
1
3
4
5
28
16
12
18
14
10
25
24
22
{0,5,1,6,2,3,4}
2
2
1
1
1
1
-
Sollin
(2,5)
(2,4)
(4,5)
(2,6)
(4,6)
(1,2)
(3,4)
(1,3)
(1,6)
5
6
10
11
14
16
18
19
21
Forest
{1,2,3,4,5,6}
(2,5)
(2,4)
(4,5)
(2,6)
(4,6)
(1,2)
(3,4)
(1,3)
(1,6)
5
6
10
11
14
16
18
19
21
Forest
{1,2,3,4,5,6}
(3,6)
33
16
1
2
3
6
4
5
11
21
14
6
5
10
18
33
19
(3,6)
33
-
6-5G = ( V , E ) G W(Weight)GV0 W (The Shortest Path Problem)
-
6-5-1Dijkstra DijkstraS={Vi|ViV}ViV0 S w S Dist(w)V0 wwSuu V-Su u S V0uw DIST(w)DIST(w) Min{DIST(w),DIST(u)+COST(u,w)}Algorithm1 G=(V,E)D[k]=A[F,k]k 1 NS={F}V={1,2,......N}D N F A[F,I]F I V E S S={F}2 V S x D[x]x S3 D[I]=min(D[I],D[x]+A[x,I])(x,I) D I x 4 2 V S
-
6 . 5 . 1
8
14
12
16
0
5
4
1
12
2
3
6
10
15
20
-
Los Angeles
0
300
800
1200
1500
250
900
4
NewYork
5
1000
Miami
6
Chicago
Boston
3
New Orleans
7
Denver
2
SanFrancisco
1
1000
1400
1700
1000
- 6-5-2DijkstraFloyd Floyd Ak[i][j]=min{Ak-1[i][j],Ak-1[i][k]+Ak-1[k][j]} 1 i j nAk[ i ] [ j ] i j k A0[i][j]=COST[i][j] A0 COSTA0i j An[ i , j ] i j An for(k=0;k>n;k+=)for(i=0;i
-
6 . 5 . 2 Floyd
1
3
2
4
2
11
3
1
2
3
1
2
3
A0
0
4
11
6
0
2
3
0
1
2
3
1
2
3
A1
0
4
11
6
0
2
3
7
0
+3
+6
1
2
3
1
2
3
A2
0
4
6
6
0
2
3
7
0
+7
+4
1
2
3
1
2
3
A3
0
4
6
5
0
2
3
7
0
+6
+2
-
0
1
2
6
4
2
11
3
0
1
2
0
1
2
0
4
11
6
0
2
3
0
A-1
0
1
2
0
1
2
0
4
11
6
0
2
3
7
0
A0
0
1
2
0
1
2
0
4
6
6
0
2
3
7
0
A1
0
1
2
0
1
2
0
4
6
5
0
2
3
7
0
A2
+6
+3
+7
+4
+2
+6
- 6-5-3(Transitive Closure)(Single Source All Destination)(All Pars Shortest Paths)G i j (Transitive Closure)(path matrix)PG i ji j 0 1 P i j=0 i j Pi,j=1 i j 1 A1,A2,A3,A4...An An(aij)i j n A1,A2,A3,A4...AnB=A1,A2,A3,A4...An B 0 1 0 1 A+G nTransitive Closure A+Warshall for(k=1;k
-
6 . 5 . 3 4 Transitive Closure A+
1
3
2
4
1
2
3
1
2
3
A0
0
1
0
0
0
1
1
1
0
4
4
1
0
1
0
0
1
0
1
2
3
1
2
3
A1
0
1
0
0
0
1
4
4
1
0
1
1
0
1
0
0
1
0
&& 0
&& 1
&& 0
1
2
3
1
2
3
A3
1
1
1
1
1
1
4
4
1
1
1
1
1
1
1
1
1
1
&& 1
&& 1
&& 1
1
2
3
1
2
3
A2
0
1
1
0
0
1
4
4
1
0
1
1
1
1
0
0
1
0
&& 1
&& 1
&& 0
1
2
3
1
2
3
A4
1
1
1
1
1
1
4
4
1
1
1
1
1
1
1
1
1
1
&& 1
&& 1
&& 1
-
0
1
2
0
1
2
0
1
0
0
0
1
0
0
0
A-1
3
4
0
0
1
0
0
0
0
0
0
0
1
0
0
1
0
0
3
4
0
1
2
3
4
&&0
0
1
2
0
1
2
0
1
0
0
0
1
0
0
0
A1
3
4
0
0
1
0
0
0
0
0
0
0
1
0
0
1
0
0
3
4
&&0
&&0
&&0
&&1
0
1
2
0
1
2
0
1
1
0
0
1
0
0
0
A1
3
4
0
0
1
0
0
0
0
0
0
0
1
0
0
1
0
0
3
4
&&0
&&0
&&0
&&1
0
1
2
0
1
2
0
1
1
0
0
1
0
0
0
A2
3
4
1
1
1
0
0
0
0
0
0
0
1
0
0
1
1
0
3
4
&&1
&&0
&&1
&&1
0
1
2
0
1
2
0
1
1
0
0
1
0
0
0
A3
3
4
1
1
1
1
1
1
0
0
0
0
1
0
0
1
1
1
3
4
&&1
&&1
&&1
&&1
0
1
2
0
1
2
0
1
1
0
0
1
0
0
1
A4
3
4
1
1
1
1
1
1
0
0
1
1
1
0
0
1
1
1
3
4
&&1
&&1
&&1
-
6-6AOV (Activity On Vertex Network AOV )AOV
-
6-6-1AOV AOVVi VjViVj
Vi Vj ViVjAOV ()(Partial Order)(Linear Order)ij i j (Topological Order)AOVAOV AOV
-
6-6-2 1 2 3
A
E
B
G
F
C
H
D
I
J
K
A
E
B
G
C
H
F
D
I
J
K
A
J
E
K
B
G
C
C
H
F
D
I
J
K
ABEG
H
F
D
I
J
K
D
I
J
ABEGCFH
K
ABEGCFHDIJ
K
ABEGCFHDIJK
ABEGCFHDI
-
AOVC1,C2,C4,C5,C3,C6,C8,C7,C10,C13,C12,C14,C15,C11,C9C4,C5,C2,C1,C6,C3,C8,C15,C7,C9,C10,C11,C12,C13,C14
C2
C4
C5
C3
C7
C6
C8
C9
C10
C12
C13
C15
C11
C14
C1
-
6-6-3AOE (critical path)AOE(event)(action)(incident in edge)(incident out edge)AOE (critical path)(critical path)AOE (source)(destination)AOE
-
(Critical Path Method, CPM)(earlest time)TE(incident out edge)TE (latest time)TL(incident out edge)AOE (incident out edge)TL (critical vertex)TE=TL Delay
-
AOE
T
TL=25
TL=20
9
TL=17
TL=18
TL=13
1
TL=9
TL=6
TL=7
2
TL=6
TL=0
TL
3
4
a3
5
a2
6
a1
earlyTE
5
7
0
0
0
6
7
6
9
13
17
TE
20
0
5
4
6
8
13
16
V1V4V6V8V9V10
18
0
20
a4
25
4
a5
6
a6
8
a7
8
a8
13
a9
16
a10
18
lateTL-ai
6
0
3
1
7
6
9
8
11
13
17
18
18
late-early
1
10
0
3
1
25
3
0
1
3
0
1
0
a11
20
a12
20
0
V1
V3
V2
V4
V6
V8
V7
V5
V9
V10
a1=5
a2=4
a3=6
a4=3
a5=2
a6=7
a7=8
a8=7
a9=5
a10=3
a11=2
a12=5
T
TE=0
TE=5
TE=4
TE=6
TE=8
TE=16
TE=18
TE=13
TE=20
TE=25
-
AOE
V0
V2
V1
V3
V4
V5
V7
V6
V8
a0=6
a1=4
a2=5
a3=1
a4=1
a5=2
a6=9
a7=7
a8=4
a9=2
a10=4
T
TE=6TL=6
TE=4TL=6
TE=5TL=8
TE=7TL=7
TE=7TL=10
TE=14TL=14
TE=16TL=16
TE=18TL=18
TE=0TL=0
T
0
1
2
3
4
5
6
TE
0
6
4
5
7
7
16
7
14
8
18
18
a0
TL
0
6
6
8
7
10
16
14
V0V1V4V6V8V0V1V4V7V8
a3
a2
a1
earlyTE
6
0
0
0
a4
4
a5
5
a6
7
a7
7
a8
7
a9
16
a10
14
lateTL
6
3
2
0
6
8
7
7
10
16
14
late-early
0
3
2
0
2
3
0
0
3
0
0
top related